https://wiki.arcengames.com/api.php?action=feedcontributions&user=Keith.lamothe&feedformat=atomArcen Wiki - User contributions [en]2024-03-29T05:02:20ZUser contributionsMediaWiki 1.34.2https://wiki.arcengames.com/index.php?title=AI_War_2:The_Paradigm_Shift&diff=40512AI War 2:The Paradigm Shift2020-09-24T22:03:27Z<p>Keith.lamothe: /* Version 2.512 */</p>
<hr />
<div>== Known Issues ==<br />
<br />
* Any bugs or requests should go to our [https://bugtracker.arcengames.com/ mantis bugtracker]<br />
** 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.<br />
** 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:<br />
*** Windows: C:\Users\username\AppData\LocalLow\Arcen Games, LLC\AIWar2\Player.log<br />
*** macOS: ~/Library/Logs/Arcen Games, LLC/AIWar2/Player.log<br />
*** Linux: ~/.config/unity3d/Arcen Games, LLC/AIWar2/Player.log<br />
<br />
* '''Multiplayer is in public alpha, as noted below.''' There is a [[:Category:AI War 2: All About Multiplayer|detailed multiplayer guide]] that we are working on building up.<br />
<br />
* Feel free to [https://discord.com/channels/240637654717300736/242012213580136448 join discussions on discord]!<br />
<br />
== What Does Multiplayer Alpha Mean? ==<br />
<br />
[[:Category:AI War 2: All About Multiplayer#Initial Caveats And Related Resources|Please see this link for details on multiplayer.]] This wound up taking up too much space in this document, so all of the multiplayer-relevant bits have been moved to the other page.<br />
<br />
== What's this phase all about? ==<br />
<br />
We've been preparing for this for months, tightening up the codebase and getting everything ready as much as possible. Now it's time to start having machines actually talk to one another, and then refine from there. At this point, LiteNetLib, Steam, and GOG Galaxy are all fully working as communication frameworks, and the game is in an alpha state (as of September 9th) where not all of the functionality is there, but the game can be played together. <br />
<br />
It's important to remember what an alpha is! There are glitches and inefficiencies, and we'd like to know more about those. There are also glaringly missing features. Beta means feature-complete but not bug-free, and we're not there yet. Please don't assume that we will implement some feature you want, like the ability to share X between players. If you're testing the alpha and want something, please do drop us a message and ask for it, just in case.<br />
<br />
We expect to be into beta of multiplayer in late September. Hopefully the alpha and beta periods are both short due to all the work of the last phase, but we shall see how it shakes out.<br />
<br />
Once we get into a stable beta period for multiplayer, then we'll let the clock run a bit and Chris will work on adding interplanetary weapons to the base game as a free update (that's the last of the kickstarter stretch goals). This phase should wrap up all our kickstarter promises (including a laundry list of other smaller items).<br />
<br />
Badger has already done the bulk of his work for the second expansion, Zenith Onslaught. Chris has done none of his work for that, as yet. Once multiplayer is in the "let it exist in beta and have people bang on it" phase, then Chris can circle in and get his work done for DLC2 along with those base game bits for interplanetary weapons, etc. The full version of multiplayer should launch alongside of DLC2, but we're not sure exactly when. October?<br />
<br />
Either way, multiplayer will be in a solid state that is "beta but just because we want more time with more people testing it" for a month or so while the DLC2 work from Chris's end happens. None of the actual multiplayer stuff is delayed in any fashion for DLC2, it's been the other way around.<br />
<br />
== Version 2.512 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Fixed a bug where melee units given a load-into-transport order would keep trying to go back to their remembered melee anchor spot.<br />
** Thanks to Isiel, crawlers, fwiffoforce, and TechSY730 for reporting.<br />
<br />
== Version 2.511 "Last Lobby Settings" Robustness ==<br />
(Released September 24th, 2020)<br />
<br />
* Fixed literally a few hundred more places that the center color and trim color were being referred to by other names.<br />
** This doesn't fix the outstanding issue with the player trim being set to the center color, but maybe it will help us find it.<br />
<br />
* Found and fixed a really annoying case where player starting faction colors were still having the trim set to be the center color. Instrumentation for the win.<br />
** Thanks to folks for letting us know that was still there.<br />
<br />
* Fixed another seemingly-rare exception that could happen inside DoForSelected() when there was a lot of cross-threading competition.<br />
** Thanks to Daniexpert for reporting.<br />
<br />
* If you have serialization logging enabled, then now when the lobby writes out its "last settings" for savegames, it will write to the file WorldSerialization_LastSettings.txt<br />
** We were seeing some strange issues with only 92KB saves being written there, without properly being able to be loaded back in, in our internal build.<br />
** Loading into the lobby and then exiting immediately now lets you compare WorldSerialization_LastSettings.txt and WorldDeserialization.txt.<br />
<br />
* The world save method now takes a bool IsForLastSettings parameter, which lets us strip out yet some more data from the last settings.<br />
** In particular, this lets us forget what expansions or mods you had installed last time, so if you were changing that it will hopefully still load your settings properly.<br />
<br />
* When savegames fail to load from the "last lobby settings" file, it's supposed to just give you a blank fresh copy of the lobby, which it has been doing and still will do.<br />
** But now it also logs some errors silently to the log, so we can see what is happening if that is of interest.<br />
<br />
* The stripped-down lobby settings files are definitely by design, but they were dying in SetGuardPostAndCommandPlacerFromPlanetStats(), which is no longer called when loading them (as GetCurrentDefensePlacer() is no longer called, too).<br />
** This saves time on map generation in general, in addition to fixing the ability for last lobby settings to load.<br />
** The nice thing is that the last lobby settings are sometimes as small as 92KB instead of 1.5MB, but it just depends on when you were saving it. Exiting out of the lobby via the quit button gives a very different result from it saving after you go into a game from the lobby, when they should be identical or close.<br />
<br />
* When saving for the "last settings" for the lobby, the "externaldata" is no longer saved at all.<br />
** The details of PermanentSerializationIndicesForThisWorld are also not saved, which makes us have to be extra vigilant with SerializeByIndex... but on the plus side, it should throw errors immediately on game start from the lobby when we mess that up.<br />
*** AICounterattackForces on planets no longer saves in the "last settings" path, since this would break (and is useless).<br />
*** Same with Player_AddedToCommandStation_Permanent and Player_AddedToCommandStation_Current on the World.<br />
*** Also same for the ChatLog, journal history, and fleets on the world.<br />
*** Also for TechUpgrades, FreeTechUpgrades, SpeedGroups, HackingHistory, TechHistory, on factions.<br />
*** Also for the entities of all types on planetfactions.<br />
** So far this seems to properly do the job of getting you into the game faster, and it SHOULD prevent issues with "my last settings were from having three mods on, but now I disabled those mods and want to load a savegame and it just throws me to the default settings."<br />
*** Worst case, it should just throw you to the default settings like before in these cases, but hopefully that happens at least a lot less frequently, if at all, now.<br />
<br />
* In the event that the "last settings" file is unrecoverably messed up (probably from trying to load the data from a mod that is not on at present), then it no longer has the chance of throwing a bunch of errors when you go into the lobby. Instead it logs a couple of errors silently to your log, and gives you a fresh lobby with default settings.<br />
** The other changes in this release to make it less likely for "last settings" files to be unrecoverably bad are the second part of this solution, but there's always some edge cases (or suitably old data) that we can't work around.<br />
** Thanks to Puffin for reporting.<br />
<br />
== Version 2.510 Astro Train Safety Training ==<br />
(Released September 23rd, 2020)<br />
<br />
* Fix a bug where games with astro trains would crash<br />
** Thanks to CRCGamer for the bug report<br />
<br />
* Some additional improvements toward helping hunter fleet ships not suicide<br />
** Thanks to a save from Burner that let me reproduce this<br />
<br />
* Fix several typos in the game lobby/settings.<br />
** Thanks to Fenrakk101 for reporting<br />
<br />
* Hacking a conquest mode VG will cause it to transform into a regular VG<br />
** Thanks to crawlers for the suggestion<br />
<br />
* Fix a bug where the AI was not sending reconquest waves to unexplored planets<br />
** Thanks to Burner for reporting<br />
<br />
* Over the years, internally in our code we've had a variety of different terminologies for the "center color" for a player faction, which is sometimes the "main color" or "text color" or other things, and the "trim color" or "border color" that goes around the edges.<br />
** Apparently this has led to an error somewhere where we are inverting the main and border colors, so we're taking this chance to standardize all of the naming since it was something we were clearly making an error somewhere in, but couldn't see it in the code.<br />
** Now these are universally in the code referred to as the "faction center color" and "faction trim color".<br />
<br />
* As part of the above refactor, found a spot in GetDefaultFactionConfigurations() where we were assigning the player's trim color to also be their main color.<br />
** Thanks to Puffin for reporting.<br />
<br />
== Version 2.509 Melee, Stacks, And Fireteams ==<br />
(Released September 22nd, 2020)<br />
<br />
* Fixed missing descriptions for the Damage modifiers of TargetHullPercentageMissing, MyHullPercentageMissing, TargetShieldPercentageMissing and MyShieldPercentageMissing if not used in combination with the MultiplesOf comparison type.<br />
* Instead this was displaying Unknown DamageModifierBasedOn.TheModifierName twice in the tooltip.<br />
** Thanks to NR SirLimbo for fixing.<br />
<br />
* Fix a problem introduced recently by my hunter fleet performance improvements that was causing the Hunter Fleet to just sit around<br />
** Thanks to a number of people for pointing this out, including ArnaudB, CRCGamer and Minotaar<br />
<br />
* Tweak the journal messages about exogalactic war front units<br />
** Thanks to Ovalcircle for reporting<br />
<br />
* Fix a very longstanding bug with fireteam histories, where they would report the planets they were lurking on incorrectly<br />
** This won't apply to previously existing histories, just new histories<br />
** Thanks to a save game from Minotaar for making this really obvious to me<br />
<br />
* Make it harder for players to trigger exogalactic war units without allied factions<br />
** Several people have had thoughts about this<br />
<br />
* Some buffs to the stronger astro train variants<br />
** Thanks to crawlers for requesting<br />
<br />
* Tweak the stacking/splitting code to make it harder for ships to decide to stack and split themselves over and over<br />
** Reported by Gott365 and TechSY730 for reporting<br />
<br />
* Fixed some issues with the new-ish melee unit behavior of flying out to attack nearby enemies when otherwise idle:<br />
** Fixed a bug where a melee unit would go back to its prior location after a direct order from the player (like a normal move order).<br />
** Fixed a bug where a melee unit's memory of where to go back to after no targets were in range would persist across wormhole jumps (causing it to try to go to that location on the new planet, which doesn't make sense).<br />
** Fixed a bug where melee units wouldn't use their implicit attack-move behavior if their internal behavior flag had been changed away from default and then back. So new melee units would use the behavior, but ones that had been around for a while often would not.<br />
** Thanks to OzoneGrif for reports revealing these.<br />
<br />
=== Data Dump Improvements ===<br />
<br />
* Fixed a couple of problems that were leading "cmd:dump data tables" to actually crash the game rather than exporting things nicely. Sometimes the crashes were only intermittent, which was doubly "fun."<br />
** This obviously made this far less useful in terms of actually debugging anything!<br />
<br />
* In general with our data dumps, we've been using ObjectDumper in a customized fashion. But now that we're moving to use it in more places, we're customizing it even further and making it more efficient.<br />
** For the largest export, the GameEntityType, this makes the data go from 35.8MB down to 29.2MB<br />
** More importantly, it makes the data a lot more legible.<br />
** For all of the various lists and dictionaries and other collections, this also now gives us counts of how many items are in each one, which it did not do before.<br />
<br />
* Fixed a variety of other things that would be different in those exports on different machines, or at different runtimes, that thus would have been in the way of our log comparisons.<br />
<br />
* In our exports, a variety of cases of contents that would just have empty brackets now do not export the useless empty brackets. A good example is ArcenPoint, which was saying its coordinates and then four lines of empty brackets.<br />
** Additionally, a bunch of default values that would be "None" or "-1", or collections that are empty no longer export at all. This is consistent with things already not exporting that were 0 or false or an empty string.<br />
** This gets our GameEntityType down to 24.8MB, and even easier to read.<br />
<br />
* Fixed several places where the ExternalData was still keeping a parentobject reference on an object that was meant to be used by all the parents.<br />
** This then caused some of the calls in the mods and externaldata to need to slightly change again.<br />
*** Really this is just an easy search and replace for GetCollectionByPatternIndex() to have a first parameter of ParentObject now.<br />
<br />
* Added a new "dump external data" command:<br />
** This causes all computers involved in the current game (so not just the local machine in multiplayer) to immediately dump all their 'external data' from all entities (World, Factions, Planets, Player Accounts, and Ships) into the ExternalDataExports subfolder in the PlayerData on each machine. <br />
<br />
* Added a number of improvements to the dump logging, for attributes like: SkipWritingNullEntries, NotForDumpingWithDataTables, and NotForDumpingWithExternalData.<br />
** These help us control the way that dumping works, making for more readable and legible output.<br />
<br />
* For better exported data in general (both in terms of the external data dumps and the data table dumps):<br />
** We've now implemented to ToString() method on ArcenSparseLookupPair, Pair, RefPair, ThreeTuple, RefThreeTuple, FourTuple, and RefFourTuple.<br />
*** This lets them actually show whatever their contents are, rather than just the semi-gibberish of their outer type (which is also not informative in general).<br />
** Also implemented ToString() on DeathEffectType and DeathEffectType.OffenseTier, so that they actually show real data rather than just writing their names.<br />
** Also implemented ToString() on ArcenDynamicTableRow so that those say their InternalName rather than just what type of row they are.<br />
*** Of the many things this improves, you can now actually read which expansions or mods tables were modified by.<br />
** Also implemented ToString() on all of the various inheritors of IDeathEffectImplementation, to make the exports more brief and clear.<br />
*** Well, this one didn't actually make any difference, even with making ToString() a required thing for the interface to implement. Not sure exactly why this last one didn't work, but it's ok.<br />
<br />
* ArcenSparseLookup now implements ICollection, making itself render its contents properly in logs.<br />
** Both ArcenOverLinkedList and ArcenLessLinkedList now do the same.<br />
** Now all three of these expose IEnumerable, which lets them be iterated-over and render their contents in a sensible fashion too.<br />
** With the various changes here, we are back up to 28.8MB of data on the GameEntityTypeData export in the data tables export, but it's actually meaningful data that is using that space.<br />
<br />
* Added a new INeverDumped that can be used to make an entire class or struct not dump.<br />
<br />
* In all of our data dumps, when it is dumping lists and dictionaries and other collections it now gives some commentary after them that you can search for to look for problems:<br />
** If more than 1 million items, it will say BIGLIST-E.<br />
** If more than 100k items, it will say BIGLIST-D.<br />
** If more than 10k items, it will say BIGLIST-C.<br />
** If more than 1k items, it will say BIGLIST-B.<br />
** If more than 100 items, it will say BIGLIST-A.<br />
** This lets anyone use any standard text editor (Notepad++ is great) to search for either "BIGLIST" in general, or one of the larger-format ones.<br />
** If players in multiplayer suspect that there is a performance degradation on a client via a memory leak, then having anyone type "cmd:dump external data" and the client-who-seems-to-be-having-troubles search for BIGLIST-E and BIGLIST-D in particular in the resulting files should help find anything suspicious. Or people can send those exports to us to look at.<br />
** Quite aside from this, however, it lets us get a general idea of how much externaldata we are actually using, and what is attached where, which is useful for developers and modders anyway.<br />
<br />
==== How To Use The New Log Dumps To Help Find Multiplayer Errors ====<br />
<br />
* New explanations on how to use the log dumps for multiplayer debugging purposes are in here:<br />
** This one is less likely to be useful: https://wiki.arcengames.com/index.php?title=Category:AI_War_2:_All_About_Multiplayer#cmd:dump_data_tables<br />
** Whereas this one is very likely to come up as something to check: https://wiki.arcengames.com/index.php?title=Category:AI_War_2:_All_About_Multiplayer#cmd:dump_external_data<br />
<br />
== Version 2.508 Waverider ==<br />
(Released September 19th, 2020)<br />
<br />
* Fixed a couple of places in the metal flows tooltip where it was stating the left and right mouse buttons backwards. (There were three places in all, and we had only changed one of them).<br />
** Thanks to Daniexpert for reporting.<br />
<br />
* Fixed a rare exception that could happen inside GetControllingOrInfluencingFaction() when exiting the game either to the OS or to the main menu.<br />
<br />
* Fix a bug where waves were not spawning any units. This affected regular waves and hacking responses.<br />
** Thanks to weapon master, CRCGamer, DaniExpert, ArnaudB, Gott365 and probably others for reporting<br />
<br />
* The Zenith Trader no longer sells AIP-increasing black hole machines to the player<br />
** Thanks to TechSY730 for reporting<br />
<br />
* The Zenith Trader will no longer sell things to dead AI factions<br />
** Thanks to GreatYng for reporting<br />
<br />
* Really fix that Macrophage null reference in LRP bug that's been annoying badger<br />
<br />
* Some performance improvements for fireteams in general (and some extra improvements for hunters) in late game scenarios<br />
** Thanks to a giant save from crawlers for letting me see what was going on<br />
<br />
* When you see the name of a song in the Escape Menu, it should now be formatted in a more readable way. For example, it now shows "Waking To Darkness" instead of "WakingToDarkness"<br />
<br />
* Improve the text of several "You can't hack this because of...." messages<br />
** Thanks to GreatYng for reporting<br />
<br />
* The experimental "Astro trains get stronger after you kill some of them" code is now enabled for everyone, and the setting is removed<br />
** I've heard reports that it works okay<br />
<br />
* Allow the HRF to flush enemies from command stations and guard posts<br />
** Thanks to GreatYng for requesting<br />
<br />
* The "This faction has no allies, not even itself" message is cleared up; this was being triggered by dead AIs, usually after the civil war started<br />
** Thanks to a number of people for reporting<br />
<br />
=== Dark Spire Tweaks ===<br />
<br />
* Fix a bug that was preventing the Dark Spire from being suitably aggressive in late game situations<br />
** Thanks to crawlers and Gott365 for the bug reports<br />
<br />
* Other factions will now actively go after Dark Spire Conquest mode VGs<br />
** This should give some counterplay against the Dark Spire<br />
<br />
* To compensate for the fact that Conquest Mode VGs will be targeted more, they are also tankier<br />
<br />
* In conquest mode, the Dark Spire will get a bit more energy<br />
<br />
== Version 2.507 Bugfixes ==<br />
(Released September 16th, 2020)<br />
<br />
* Fix a bug where player-allied nanocausts that aren't allowed to kill command stations weren't properly expanding. Add a journal entry to point out to the player that this leaves their allied nanocaust vulnerable<br />
** Pointed out to me on discord<br />
<br />
* Fix a bug where the render vengeance generator hack wasn't completing<br />
** Thanks to a number of people for reporting, including jradishurr, Magiik and Gott365<br />
<br />
* Fixed several cases where cross-threading issues could lead to some issues in the selected-ships counter.<br />
** Thanks to MasterGeese and GreatYng for reporting.<br />
<br />
* Fixed several cross-threading bugs that could happen in GetIsWithinRangeOf() or GetIsWithinRangeOf_VeryBasicCheckOnly().<br />
** Thanks to GreatYng for reporting.<br />
<br />
* Fixed a bug introduced in the prior build that made it impossible to save most games that had outguard in them (all of them...?), and probably was messing with initial multiplayer sync, too. This was not seeming to affect every last save, but nonetheless was not good.<br />
** Thanks to Badger for reporting.<br />
<br />
* The "long range planning" code for the Macrophage now includes a lot more instrumentation for more detailed error messages. We started having some sort of error in at least some games starting the last release.<br />
** But after putting in the instrumentation (and having fixed the outguard serialization bug that also manifested in the same savegame), we no longer can duplicate the problem. So for now there's nothing more to do, but if it comes up again we'll at least know where it is.<br />
** Thanks to Badger for reporting.<br />
<br />
== Beta 2.506 ExternalData Overhaul Two ==<br />
(Released September 15th, 2020)<br />
<br />
'''This is kind of a nasty one, in that we're fixing a ton of things but potentially also breaking more things. External code-based mods are definitely broken again (sigh). But a bunch of things that were question marks for multiplayer are either now working properly for the first time (a few dozens of things), or are now verified-correct (even more dozens of things). So we're dropping back to beta briefly, to let people test things and let us know if there are any bugs that make this unplayable for some reason. Once folks have been through it sufficiently, we'll move back to the non-beta branch.'''<br />
<br />
* Previously, the dark spire ships that you could hack for had a starting mark level of X, and a max mark level of 4. Now they all start at mark 1 and level up like normal, but have a max mark level of 7 (because why not).<br />
** Essentially, tech unlocks for players probably did not work terribly well when the starting mark level of a player unit is greater than 1. And having a low mark cap on top of that can be frustrating for folks.<br />
** Specter used to start at mark3, now is 1.<br />
** Phantom was already mark1 at the start, but still is.<br />
** Okay, wraith was already mark1 at the start, and still is.<br />
** Anyhow, the level caps were a big part of what was messing with people, probably.<br />
** Thanks to crawlers and CRCGamer for reporting.<br />
<br />
* Fixed a potential nullref that could happen in CheckForInternalShipDeployment_DroneProducers_FromSimBGThread(), probably more likely on multiplayer clients than elsewhere, but definitely possible anywhere.<br />
** Thanks to Puffin for reporting.<br />
<br />
* Fixed a strange capitalization issue in the logging for faction deserialization where MinFIreteam and MaxFIreteam would thus show up as diffs.<br />
** Thanks to Puffin for the report.<br />
<br />
* New debugging command added: <code>dump data tables</code><br />
** This causes all computers involved in the current game (so not just the local machine in multiplayer) to immediately dump all their data in the same way that happens from "Dump All Data Tables After Load" from the debug section of the settings menu. <br />
** ''Please be advised that this will cause all of the computers involved in this game to freeze for something like 20-60 seconds, depending on their relative speeds, how many expansions and mods are installed, and so on. It's a good idea to warn people before you run this comment.'''<br />
** Aka, this writes a text file for each in-memory data table into a DataTableExports subfolder in the PlayerData folder. <br />
*** The purpose of this is mainly to use with diffing tools between one run of the game and another, to see what sort of data changes happened. If you are modding and made changes to some ships and want to see how those changes cascaded, this would be one way to do that. This is also a way for us to verify correctness when we make structural changes internally.<br />
*** In multiplayer, this can also be used to compare the contents of these folders between the host and various clients, to check for things that might be amiss thanks to mods or other local changes.<br />
*** To compare folders at a time, you'd need to share the contents of these folders between machines (zip and email, etc), and then run a folder-wide diffing tool like WinMerge to find any discrepancies.<br />
*** Lastly, if you're a mod author and concerned that your mod is adding to the data tables incorrectly over time, then you can use this to get snapshots of what those look like as you are playing. Normally this data should not be changing after the initial load of the application.<br />
** Never considered a cheat.<br />
<br />
=== Multiplayer And ExternalData Continued Improvements (Breaks Code-Style Mods Temporarily) ===<br />
<br />
* There are some issues with the data table dumps now actually dumping some game data.<br />
** To combat this, the ArcenOverLinkedList and ArcenLessLinkedList both no longer dump their firstItem and lastItem fields.<br />
** Hopefully we will still see the count of items in these, but that's really all we can do right now without getting into circular references by the very nature of these linked lists.<br />
<br />
* This also finally pushed us over the edge when it came to IArcenExternalDataPatternImplementation, and this is now becoming an ArcenExternalDataPatternImplementationBase abstract class that we can control a bit better in several different ways.<br />
** In general this will be a help for us with multiplayer sync, among other issues.<br />
** This class should never be directly inherited-from by things in External or mods, however.<br />
** Added a new ArcenExternalDataPatternImplementationBase_World, which is for use with things being attached to worlds.<br />
** And also a new ArcenExternalDataPatternImplementationBase_Faction, for things being attached to factions.<br />
** And a new ArcenExternalDataPatternImplementationBase_Squad for things being attached to ships.<br />
<br />
* Took this chance to fix a number of data structures that might not be multiplayer client-sync safe based on the fact that MP sync data might be missing and might need a catch-up:<br />
** AIReservesData (constructor updates, DeserializeExternalData updates).<br />
** Okay, 33 other classes needed the same update pattern, so we'll save you the list of going through all of those again.<br />
** Added a new ArcenExternalSubManagedData class, which all 34 of those classes now inherit from.<br />
*** This lets the increasingly-complex central logic from DeserializeExternalData be written only once, not 34 times.<br />
**** This is all handled, for the default case, via the new generic method DeserializeExternalDataAsArcenExternalSubManagedData().<br />
*** Also worth noting, we can no longer use constructors with arguments on this, because of how the logic is centralized. The default constructor is always called now, and then DeseerializeIntoSelf() is called after that if needed.<br />
**** This is doubly worth noting, since it makes sure that there are no cases where object initializations from the default constructor are not called.<br />
<br />
* While we are at it, we're marking the various lists and other collections as readonly in ArcenExternalSubManagedData-inheriting classes.<br />
** This helps us avoid ambiguity and extra code, and is a double reminder for us to review places where we could get into infinitely-expanding lists on multiplayer clients.<br />
*** Fixed the following infinite-expanding collections for multiplayer clients:<br />
**** The FinalComposition dictionary on PlannedWaves was going to infinitely expand while waves were incoming.<br />
*** Fixed the following "accidental data churn from throwing away collections on multiplayer clients":<br />
**** The DZPerUnitData ConversionList and ConversionBag.<br />
**** The metalByTier on DysonData.<br />
<br />
* Added a new ArcenExternalSubSubUnmanagedData abstract class for classes that is for the sub-data types that a few things use, like DarkSpirePerPlanet.<br />
** This adds some structure, but is not as fully managed as the main classes above it. These again help us to avoid some bad habits that can lead to memory leaks on clients.<br />
<br />
* Fixed a general cross-threading issue that could happen with Loci_ForUI in the dark spire. This could happen in single player or multiplayer, and we found it because of the new code rigor enforced by these new abstract classes.<br />
<br />
* The DeserializeDictionary utility method, and a few similar ones, no longer take their dictionaries as a ref parameter. That's now allowed syntactically for readonly dictionary fields, and it's not needed logically at all for dictionaries as a whole, which are reference objects and thus always passed by reference no matter what.<br />
** Same deal with ArcenRandomDrawBags, for the same reasons.<br />
** And same for some various working methods that were passing generic List<>s with ref explicit. It doesn't matter if the contents of the list are a value type, the list itself is still a reference type.<br />
<br />
* Fixed a client-only bug where certain things were being cleared incorrectly on the DLC2 "ZM" faction data object during faction sync, but now are not.<br />
** In that same faction, fixed another of the "ForUI" list cross-threading issues.<br />
<br />
* Added a ClearAndCopyFrom() method onto ArcenSparseLookup, which does what it says on the tin.<br />
** This is useful in places where we are no longer shuffling around sparse lookups by reference (think pointer), but instead are now keeping the lookups but needing to copy from one to another.<br />
** The need for this is pretty rare, but it's used in wave planning.<br />
<br />
* Discovered a rather dire issue from the last week or so, and have fixed it.<br />
** Essentially, the objects that previously inherited from IArcenExternalDataPatternImplementation (and now from a descendant of ArcenExternalDataPatternImplementationBase) are NOT UNIQUE per object.<br />
** So the fact that we were starting to store the ParentWorld and ParentSquad and so on on those was actually a major problem, and probably a source of some sort of random bugs in single player and multiplayer.<br />
** We were mostly saved by the fact that we ignored those properties and were using the Source object cast properly, which is what was supposed to happen.<br />
** But upon refactoring things, we ran into increasing problems with this. It has now been corrected, and this should hopefully also prevent us (or a modder) from making the same error in the future.<br />
<br />
* With the new way that we are using readonly for collections on the ArcenExternalSubManagedData and ArcenExternalSubSubUnmanagedData, we have to initialize all those collections properly in the constructor, which was not always happening before.<br />
** We now are just initializing them as part of their definition itself, which is easier to check for correctness and has the same end result and performance.<br />
** If we missed any of these, or heck if we made any typos in the many many other changes list above, then there will be errors when loading certain savegames or when during certain parts of gameplay.<br />
** We should be able to fix such issues very quickly, and for now we're not seeing any issues, but we'd definitely appreciate testers in both singleplayer and multiplayer.<br />
<br />
* It goes without saying, perhaps, that this breaks all of the code-style external mods again. We will probably break those a few more times in the coming weeks as we get things multiplayer-safe, and then will stop that.<br />
<br />
== Version 2.505 Multiplayer Alpha Starts, Take Two ==<br />
(Released September 14th, 2020)<br />
<br />
'''Let's try this again! This is one big reason we did a "soft launch" into MP alpha. If anyone is able to test tonight and let us know how it goes for you, then we will probably make the official "hey there's multiplayer alpha now!" posts tomorrow, unless new showstoppers are found. At this point there's the periodic minor "waiting for players" micro-hitching annoyance, but beyond that being a small thing, Chris was able to play for 18 minutes between two computers across Valve's network tonight. No permanent sync issues, no degradation in performance, nothing that seemed glaringly off. There will be more bugs, but the core stuff -- knock on wood -- seems to be working. [[:Category:AI_War_2:_All_About_Multiplayer#Selected_Short_Term_Todo_List|There's a good list of things that need to be done in the near term here]], and that's just in terms of general functionality, not MP-specific features.'''<br />
<br />
* Fixed a bug where "??? Name" was showing up incorrectly in the factions list in the prior build.<br />
** Thanks to Badger for finding the typo.<br />
<br />
=== Multiplayer Sync Initial Implementation Now Tests Out Initially Working ===<br />
<br />
* Followed several paths of code trying to fix the ship sync, but ultimately wound up reverting a lot of that code after we found the actual cause.<br />
<br />
* Found a one-line typo that was leading to infinite duplication of every fleet on the client every few seconds.<br />
** Essentially every fleet was trying to match to fleet 0, and never finding it, and then creating a new one.<br />
** This was leading to a really devastating amount of duplicate data, and confusing everything on the client.<br />
<br />
* Manually reviewed the code for all similar things, including factions and planets, and all of those seem good for now.<br />
<br />
* Discovered that it was possible for extra fleets to wind up on the client just hanging around after a full fleet sync. Those extras (usually were only one or two) now delete themselves.<br />
<br />
* The clients no longer automatically add 1000 to all of the PKIDs that they are syncing from the host. We welcome the extra conflicts at this point... maybe... as it will also lead to some sometimes-correct things that don't need to sync.<br />
** This was something we were doing as of a couple of versions ago in order to try to prevent things from fighting over the same dictionary spot.<br />
<br />
* At this point we have far fewer syncs needing to happen between the host and client, which is awesome.<br />
** The number of ships and fleets is consistent between the client and host, and the energy usage is also consistent, and so on (though energy usage may be misleading since that gets synced from the host as part of the ultra-frequent processing).<br />
** A bunch of ships are showing up as invisible on the client for whatever reason, we know for certain, but those ships that are showing up maintain sync properly.<br />
** There are still some extra ships in ship fleet lines on the client that should not be there, and may just be duplicate references to existing ships.<br />
** Overall the total stats on the number and size of messages sent and received on the clients and the server seem to be incorrect, although sub-parts are often correct.<br />
<br />
* The "Deletion Time!" header in the ship sync details log now only appears when there is actually something to delete, which is not all that frequently anymore.<br />
<br />
* Fixed a bug on the client and host in multiplayer where the total messages received, and the total bytes of them that were received, were far too low. A filter based on message type was incorrectly being applied to these overall counts, where no filter should have been applied.<br />
<br />
* Fixed the remainder of the network messages still not being properly logged, in size or number. There are two places where filters applied, and we missed the second one at first.<br />
<br />
* Fixed an issue where ships that were network-synced were properly added to fleets and the global registry, but NOT to the planet faction (and thus faction) registries. So they were showing up as invisible, despite syncing properly as of today.<br />
** Now the ships show up just fine!<br />
<br />
* Previously we had put some logic in place to not delete ships too fast on the client if they were not discussed by the host in a sync pass. But now that the sync passes are working, this is no longer needed (and in fact actively makes things look wrong for seconds at a time).<br />
** The game now does a much quicker job of removing these extras, and consequently there are not as frequently extra ships that should not exist in the fleet memberships sitting around.<br />
** It's worth noting that for 3ish seconds at a time right now, it is possible for these ships to hang around (but they only appear on the client, and can't be given any orders, which is confusing and annoying but a comparably minor thing and will be tamed soon when we improve how PKIDs are allocated so that fewer clashes happen.<br />
<br />
== Version 2.504 Clarity And Fair Play ==<br />
(Released September 14th, 2020)<br />
<br />
'''We're no longer on the beta branch, because we don't think that this will negatively affect the single player experience. However, multiplayer's alpha is still not ready to go. This build is focused on fixing things up to get things back working properly for single player (which of course also affects MP), and we'll be resuming work on getting MP ready now that this is out.'''<br />
<br />
* If a player-allied faction kills something that would grant rewards (science, hacking, metal), the game now sees if there were player ships on the planet too. If so then it grants the rewards to the strongest player on the planet.<br />
** This seems the path of least frustration for players<br />
** Thanks to Ymir for the bug report, and others for a spirited discussion on steam.<br />
<br />
=== Bugfixes ===<br />
<br />
* When placing wormholes on a planet, the game now makes an effort to make sure they aren't on top of eachother. In very rare cases, some map types could wind up with wormholes that basically overlapped eachother, which was very hard to work with.<br />
** Thanks to Mac for pointing this out.<br />
<br />
* Fixed a longstanding issue with the number of entities contained within a ship where it was showing much lower numbers than appropriate, because we were indexing into the wrong array of display numbers. Above 100 units, it should now show much more appropriate numbers.<br />
** Thanks to TechSY730 for the report that finally tipped us off to the potential cause of his strange area.<br />
<br />
* Fixed an issue that could cause exceptions in the target list sorting if ships died at just the wrong moment.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
* Fixed a very unexpected bug that our recent extra-strict ExternalData checking logic let us find. Essentially it was somehow possible to get a second Praetorian Guard faction for a single AI, although we're not quite sure how. The game now actively clears those out when it is loading a savegame or settings as a template, to keep you from having double-strength PG forces for no apparent reason.<br />
** Thanks to Deathlymad and Metrekec for reporting, and for providing the savegame that let us practice testing and fixing the issue.<br />
<br />
* Fixed an exception that could happen at various times if the spire debris data was null when it was thinking about making notifications relating to them.<br />
** Thanks to jradishurr for reporting.<br />
<br />
* Fixed a minor visual error where it would say "ERROR: my FleetMembership is null!" if you were viewing a tooltip or popup window with a ship in it that had died. It now will say "This ship has died." instead, if the ship properly died (which is likely to be the case).<br />
** Thanks to GreatYng for reporting.<br />
<br />
* Preventatively 'fixed' theoretically-possible-but-not-encountered bugs (that might not actually have been bugs in the end relating to the following, all based on the new ExternalData changes:<br />
** Winning a game and getting a superterminal achievement (probably not likely).<br />
** Exceptions in notifications about wormhole invasions (this one probably would have been hit eventually).<br />
** Exception in notification tooltip about spire debris (again was likely to be hit).<br />
** Exception in notification tooltip about instigators (very unlikely).<br />
** Two exceptions in notification tooltip about astro trains (somewhat likely).<br />
** Exception in notification tooltip about relic trains (unlikely except maybe for multiplayer client).<br />
** Exceptions in five tooltips for DLC2 (likely to be hit).<br />
** One other exception relating to DLC2.<br />
** Possible exception with the Shark B plot on.<br />
** Several possible exceptions in writing out the list of AI factions and their subtypes (most were very unlikely, except maybe in multiplayer on clients).<br />
<br />
* Fixed a pretty huge bug where if certain entities died to remains (rather than permadeath), they would give AIP every time they died to remains, but when the normal permadeath setting was on they gave no AIP. This was the opposite of our intention and has apparently been incorrect since July 23rd.<br />
** This meant that things like GCAs, etc, would not give their proper AIP on death.<br />
** Thanks to ParadoxSong, Strategic Sage, crawlers, Isiel, and Puffin for reporting and helping track this down.<br />
<br />
* Regular engineers are no longer part of the fleet membership selections for anything that you can get via battlestations or citadels. Instead, combat engineers are used for those cases.<br />
** This will not affect existing savegames, only new ones.<br />
** Thanks to ultamashot for the report.<br />
<br />
* On September 6, we added the following: "QoL tweak for repair. Any ships on a planet where you outnumber the enemies 10 to 1, or the enemies have less that .2 strength are eligible to be repaired immediately. The previous rule was 'Any ships on a planet without enemies'"<br />
** This now only applies to ships and structures of factions that are friendly to the humans. Any neutral or enemy factions will now use the old style of logic that existed prior to September 6th.<br />
** This prevents the AI and Exos in particular from developing invincible shields when they have overwhelming firepower against you, among some other unintended consequences.<br />
** Thanks to TechSY730, crawlers, and MasterGeese for reporting.<br />
<br />
=== Fireteam dynamic resizing ===<br />
<br />
* In the late game, powerful factions can have hundreds or thousands of fireteams, which can make LRP threads run very slowly.<br />
* Each faction using fireteams has some variables that control 'how large should my fireteams be'. <br />
* Now for every 50 fireteams a faction has, it will require future fireteams be larger 1.5x larger. If a faction starts losing fireteams, the size requirements will go back down<br />
** The end result is fewer but larger fireteams, which should be a nice performance boost. Note this won't really help existing games as much as it will help new games to never have that many fireteams at all. Applies to all factions that use fireteams except the Imperial Spire, since that ends the game quickly<br />
<br />
=== AI Difficulty Description Rewrites ===<br />
<br />
* The tooltip descriptions for AI difficulties have been updated after folks have given us indication that there was some confusion based on the old ones (particularly sometimes players felt bad for playing too low, or did not understand the true purpose of difficulty 10, etc):<br />
** Difficulty 1:<br />
*** Old: So easy it might be asleep.<br />
*** New: The AI is effectively dormant; this difficulty is good for practicing the game without any real opposition.<br />
** Difficulty 2:<br />
*** Old: Actively does stupid things.<br />
*** New: The AI will only utilize its most basic subroutines. Retaliation will be minimal in response to your efforts.<br />
** Difficulty 3:<br />
*** Old: Excellent if you're just wanting to mess around with no stress and you've never seen an RTS, ever, before.<br />
*** New: The AI is conscious, but will operate primarily in a reactive capacity. Most of your opposition will be in the form of defensive AI forces in enemy territory.<br />
** Difficulty 4:<br />
*** Old: If you're only vaguely familiar with RTS games, this might give you an interesting time. But bear in mind all the cool and clever tricks aren't remotely here for the AI yet.<br />
*** New: If you’re ready for a little push-back from the AI and some confrontation on the homefront, this will be a good introduction to some of the behavior you can expect from higher difficulties.<br />
** Difficulty 5:<br />
*** Old: If you're here for the first time, but know your way around RTS games, this isn't an awful place to start. The AI is partially brain-dead still, but it should give you an interesting time. But if the game seems too easy, you'll know why.<br />
*** New: The AI takes your presence a bit more seriously. You may find your attention split from time to time and will have to more carefully consider the repercussions of your choices and how the enemy will react to them. Ongoing reckless expansion on your part has the potential to incite a deadly response from AI.<br />
** Difficulty 6: <br />
*** Old: If you're solid at RTS games, then this is what would typically be considered 'Normal' for you... potentially. The AI doesn't have its full bag of tricks yet, but it's still pretty crafty and is starting to have some of its tricks. This difficulty is also great to use if you're really wanting to have the AI be there, but some other factions be the MAIN threat. This will keep the AI interesting but not on your back all the time.<br />
*** New: Against a Difficulty 6 opponent, your choices are really starting to matter. You will notice more devious tactics being used by the AI and will need to watch your back as you claim assets and territory. Other factions have the potential to be more threatening depending on how you set them up, but the AI will continually make its presence known.<br />
** Difficulty 7:<br />
*** Old: Players in the first game had a saying, that 'the real game starts at difficulty 7.' And while that is kind of... rude?... there is also some truth to that, in that the AI is finally fully unshackled. There are a few truly nasty things for the AI that you would still need to turn on in the AI Behaviors section of the Options tab if you really want full pain, but this is a fully competent AI. This is also the difficulty that Chris, the original developer of the games, plays at. It's fun and he can play in a relaxed fashion and not be super focused on every detail, but still win only about a third of the time playing that way. So if that gives you some measure. He plays most other RTS games on their max difficulty or close, not that that's always saying much.<br />
*** New: This is where the AI stops holding back and utilizes all of the strategies and resources at its disposal to try and keep you at bay as your power grows. Its economic power is still somewhat limited, and while you can still get away with being a bit of a nuisance early on, the enemy won't hesitate to put you down if you make yourself too much of a threat.<br />
** Difficulty 8:<br />
*** Old: This is the sweet spot for veteran players. The AI has all its tricks, and has a bit of a stronger economy and stronger responses, too. You COULD make the argument that the economy of the AI at difficulty 7 is a bit on the weak side, so it's not that this is a cheaty AI or something. For players who are really paying attention and managing all the small things and want to have a drag-out battle, this is the difficulty of choice. If Chris really wanted to white-knuckle it, he could probably maintain his 30% winning streak at this level. But he's not into that kind of stress. There's a good chance you're better at RTS games than he is, though, if you're a veteran in particular, so maybe that's not so much stress for you.<br />
*** New: If you take the fully-functional Difficulty 7 AI, provide it with a bit more fair allotment of assets, and make it more sensitive to your actions, this is where you end up. Ideal for veteran players really looking to test themselves.<br />
** Difficulty 9:<br />
*** Old: Are you super awesome at RTS games in general, and this one in particular? Difficulty 8 is just proving too passe? This keeps all the tricks from before, but cranks up the economy and some of the frequency with which the AI will harass you. You could argue that at this point it is getting to be slightly a 'cheating AI,' but frankly things are so lopsided it is hard to make that kind of distinction. If you're so much better than the average player at managing your empire, then... I guess this is kind of taking away that advantage that would otherwise let you roll the 'fair' AI? We get into murky waters here, but a subset of veteran players enjoy this difficulty, so here it is.<br />
*** New: Making for an exceptionally tough adversary, Difficulty 9 stacks the odds in favor of the AI. Armed with a robust economy, the enemy will be ruthless in their attacks and relentless in their harassment of your defenses. To overcome this challenge, you will always need to be on full alert to prevent the AI from exploiting any weakness in your strategy.<br />
** Difficulty 10:<br />
*** Old: This difficulty level is not meant to be fair. It's using all of the AI's legitimate tricks, and it has its economy and whatnot cranked up to 11. If you win against this level of AI, that's something that we traditionally consider 'a bug.' You are supposed to lose, every time. Please file a bug report with how you won so we can fix it. So why do we have this difficulty level? There are some players who are just THAT GOOD, and they spend their time trying to find weaknesses in the AI despite its unfair advantage. A lot of improvements to the AI have come about because of players on difficulty 10 telling us how they won. We usually adjust unit balance or AI logic in response to difficulty 10 victories, we don't just make difficulty 10 harder. That would defeat the point.<br />
*** New: Economically, the 'SuperCat' AI gets a substantially unfair advantage. Militarily, they still play fair but will be able to bring overwhelming force against you in most every situation, all the time. A subset of dedicated players enjoy this difficulty level, but it is not fun for most. Beating the SuperCat even once is considered a crowning achievement, and usually involves a player discovering an unbalanced tactic. If you find yourself in the enviable position of being able to have your name added to those who win a 'pure' difficulty 10 win, please file a bug report with any tips you have on how we can (legitimately) upgrade the AI to counter your winning strategy. This back-and-forth arms race between the players and the developers has led to some of the most interesting innovations for all levels of AI for the game (and its predecessor), and it is also a very specific style of brutal gauntlet that certain dedicated individuals enjoy throwing themselves into.<br />
** Thanks to Tzarro for writing the new descriptions for us, except for the new difficulty 10 description.<br />
<br />
== Beta 2.503 Multiplayer Not Quite Ready ==<br />
(Released September 11th, 2020)<br />
<br />
'''This remains on the beta branch in case there are more singleplayer issues. As far as multiplayer goes, things are not stable enough to do any real testing. There is an issue of some sort that causes fleets to infinitely multiply copies of themselves on the client, which leads to a lot of lag and other problems. There's also an issue with various ships syncing in and out of existence in funky ways, which essentially makes multiplayer unplayable. This is something that is going to take more hunting, but it's all one cluster of issues, and once it's resolved multiplayer should be pretty ready to go. Really glad we did a soft launch! It would have been awesome to have people able to play multiplayer over the weekend, but we're just not quite there at the moment. Hopefully in the first couple of days of next week we can figure this out, but for the moment our brains are fried. More to come soon!'''<br />
<br />
* There's now extra error handling in the "stage 3" faction logic, to keep that from ending the entire game when those happen. It reads:<br />
** DoPerSecondLogic_Stage3Main_OnMainThreadAndPartOfSim Error for faction [name] (index [a number]). Consider restarting the game, as many other things may now go wrong because of this first error. And please report this! Error: [error text]<br />
** This will probably solve things like paralysis counters not counting down when there are such errors, but you're still likely to have a strange time.<br />
** Thanks to StarKelp, Mac, and gigastar for reporting.<br />
<br />
* Fixed a bunch of places in notifications where it was still looking to the old locations for an out of date icon. We will have real icons in the future for those, but for now the placeholder will no longer throw an exception.<br />
** Thanks to jrad for reporting.<br />
<br />
* Fixed an exception that could happen when killing instigator bases, in the notification tooltip for them.<br />
** This is another regression... kind of... from the last few betas. This actually will make clients more robust in multiplayer, though, so it's better than just a straight regression fix.<br />
** Thanks to TechSY730 and jradishurr for reporting.<br />
<br />
* The Civilian Industries mod has been updated to be compatible with the new versions of the game.<br />
<br />
=== Multiplayer Ship Sync Fixes ===<br />
<br />
* Added a setting to the networking section of the settings menu: Log Human-Readable Ship Network Syncs To Disk<br />
** Only relevant on multiplayer clients, not the host. Will majorly slow the game down, but dumps a huge amount of networking info to the disk in the NetworkHumanReadablyShipSyncLog.txt file in the PlayerData folder. This gives a message for each ship that was changed or deleted and why that was done, as well as what planet it was on and who owned it. When syncs are doing funky things, this is a way to manually review it and find out why.<br />
** This required us putting in a LOT of extra code to handle log<br />
<br />
* The current sync cycle is now sent with the divergent data sets, hopefully leading to clients not deleting things they just fixed (because that was totally happening before. Logs are a magical thing.).<br />
<br />
* Discovered a major oversight in our sync code, where basically once something had been synced once it was then being synced every sync cycle forever after that.<br />
** This was a huge cause of lag for multiplayer, and made things disappear inappropriately, probably.<br />
** There are still other things wrong with the ship sync, though, that we can see in the new logs.<br />
<br />
* The sync code has been made more robust in general, now syncing the type of entities as well as what faction they belong to.<br />
** These are often incorrect, when there are catastrophic different uses of primary key IDs anyhow, so getting those right is a good thing.<br />
** It occurs to us that maybe this is overkill, since if these are wrong then probably the planet or at least the location would also be wrong? But... let's leave it in for now, and maybe make an option later for skipping it. It's not a lot of data to transmit or a lot of extra processing.<br />
<br />
* Fixed a couple of issues with reusing entities as different ship types, where it will now properly add or remove or reassign system types on them.<br />
<br />
* Fixed some issues with reusing entities during sync where they were not being added back to the central lookup of entities, leading to future syncs to fail on them forever.<br />
<br />
* Put in some logic to improve the number of loops before we remove something that isn't being synced properly, to make it based on the number of loop counts rather than the amount of time something has been alive (since things that have been alive for a while can get fully synced later).<br />
<br />
* Fixed some conflicts that could happen with entities in the central lookup on the client in multiplayer, if the order of registering and unregistering entities gets out of sync.<br />
<br />
* Intentionally desyncing the PKIDs of ships, wormholes, and fleets on clients compared to the host.<br />
** Trying to reuse entity IDs was often causing some notable problems, and they were rarely in sync as it was.<br />
** This forces a sync cycle for every new ship and fleet that is created, but makes conflicts on the client a lot less likely.<br />
** This may not be a good long-term solution, but a refactor to avoid the conflict space is potentially where we're at, honestly. That will take days, and add a lot of bugs temporarily, so it would be great to avoid it.<br />
<br />
* At the moment the game creates infinite extra fleets on the client, slowing it down progressively. This makes it effectively unplayable.<br />
** There are also about a thousand ships that it will routinely delete from the client, then re-add, then delete again. Also making things unplayable. Still looking into it, but this is likely to be a Monday thing, as this is not a simple matter.<br />
<br />
== Beta 2.502 Regression Fixes ==<br />
(Released September 11th, 2020)<br />
<br />
'''Note that this build is still in beta in order to let people have a chance to run into any more regressions that we may have introduced. So far none of the regressions have indicated any errors in older builds, which is a nice thing. Though in the process of making the prior beta build, we did fix a number of "useless extra data" things, so even if we don't find any new bugs that were older, these regressions were still worth it to ensure data accuracy. It is quite annoying in the short term, though, and we really appreciate the folks taking the time to test it out.'''<br />
<br />
* Add some new voice lines when the player is attacked by the Nanocaust<br />
<br />
* Hopefully Zenith Forcefield Generators will now return after being pushed<br />
** Thanks to GreatYng for reporting, and Puffin for reminding us of the fix<br />
<br />
* Fixed a bug from the last couple of builds where chat commands were failing in general.<br />
** Thanks to Magiik, MasterGeese, gigastar, and Richard333 for reporting.<br />
<br />
=== Fixes To Regressions From Prior Beta Build ===<br />
<br />
* Fixed a bug in the latest beta build that was causing new games to constantly error out with autosave data not being added properly.<br />
** This is one of those "externaldata is now more explicit" things, but this is an example of us choosing the wrong explicit option this time around.<br />
** Thanks to Puffin for reporting.<br />
<br />
* Fixed an exception that could happen when trying to generate notifications about AI reserves before their data was initialized. This was caused by the last beta, but is better to have it handled this new way (so, yay error, this time).<br />
<br />
* When there are errors in generating a galaxy, it now no longer lets you into the galaxy to play (since that leads to many random errors after the real one with the map not generating).<br />
** Random things might include lots of planets belonging to no one, among other things.<br />
<br />
* SeedStartingEntities_LaterEverythingElse during mapgen now has a lot of new exceptions it can throw if various data is missing that it is supposed to have.<br />
** Mostly these are related to the AI and its subfactions (hunter, warden, and PG), but there's also one for if risk analyzer data is missing.<br />
** Prior to the last beta, it seemed to have been just using blank data, although it's impossible to be sure. And in the last beta, it was throwing an exception.<br />
** We then tested all of the factions in the game and the first two DLC, and the only three types that threw exceptions in this area were the AI subfactions (hunter, warden, and PG).<br />
*** We could use more robust testing of the game starting with various factions and them having various settings, though, to make sure that it's all going across properly (this is just in single player, not even multiplayer).<br />
** Thanks to Puffin and jradishurr for reporting.<br />
<br />
* Fixed four typos in the last beta that were not properly having the "related AI and subfactions" properly reach for one another, which led to missing or misapplied settings on game start.<br />
** This then left the Praetorian Guard still not working properly, because they have no custom fields in the lobby and thus were never having a reason to initialize. That probably was not a problem, but to keep things consistent and safe we are now initializing it when the general "AIDifficulty" field is processed.<br />
** For the record, prior to the most recent beta this means there were not actually any errors, but now we do have protection in place in case such an error pops up in the future. But for the time being, these errors were just in the most recent beta, which is gratifying to know.<br />
<br />
* Fixed a couple of logic errors with risk analyzers in the most recent beta that was causing their notification to show up wrong as well as also firing them immediately on game start.<br />
** They now should work properly again, and if the notification is going to be wrong, it will be more informative in its wrongness.<br />
** Also fixed the fact that this could happen when AI Risk Analyzers were not even enabled as a faction.<br />
** Thanks to Puffin for reporting.<br />
<br />
== Beta 2.501 First Raft Of Multiplayer Fixes ==<br />
(Released September 10th, 2020)<br />
<br />
'''This one is on the beta branch on Steam and GOG because of how much we changed with the "ExternalData Accidental Creation Avoidance" section. There may be legitimately new bugs that we introduced from that, or there may be old bugs that now simply show themselves with error messages. Either way, we don't want to inflict that on everyone, so please use the beta branch to help us test this one out.'''<br />
<br />
* There is a '''list of known issues with multiplayer''' here: https://wiki.arcengames.com/index.php?title=Category:AI_War_2:_All_About_Multiplayer#Selected_Short_Term_Todo_List<br />
** It's debatable how playable the alpha is at the moment, given the issue with the client ships deleting themselves rather than syncing, and given some of the (essentially) client-side memory leaks. Those two things will be my main priority tomorrow, unless something else more pressing comes up (like fixes to things broken by the ExternalData stuff).<br />
<br />
* A new button has been added on the main menu above the forum link that links directly to the AI War 2 discord channel.<br />
** Thanks to Metrekec for suggesting.<br />
<br />
=== Better Default Screen Resolutions! ===<br />
<br />
* Fixed a bug where the fullscreen resolution was still being saved into newsettings.dat rather than graphicssettings.graphics.<br />
** This meant that the fullscreen resolution was being sent over cloud sync, when really that should not be, since that is a machine-specific setting.<br />
** This may wipe out your prior values for the fullscreen resolution, requiring you to set it again.<br />
** Thanks to jrad for reporting.<br />
<br />
* At long last, added a startup feature that folks have been wanting for a while: better default screen resolution, for a better first impression as people start the game for the first time.<br />
** Previously, this particular game was just having a default of opening in windowed mode and 1024x768px, since that will fit on most monitors.<br />
** One of the reasons for this is that opening directly in fullscreen mode can cause bugs, particularly when settings are copied from one machine to another. But we are using fullscreen windowed mode, which reduces the chance of fullscreen bugs, and we also have our graphics settings not set to cloud sync for the last year or so.<br />
** With that said, now the game will automatically (first time opening it on this or future versions on any given computer) set itself to be fullscreen mode with your desktop resolution.<br />
*** It also will set your windowed mode defaults to be your desktop resolution minus 80px width and 100px height. So if you do flip it back to windowed mode, it should be at a size that feels sensible for your machine.<br />
** If you are using a very high-DPI monitor on an underpowered machine (for instance how Chris is testing with a late 2013 MacBook Pro 15" that is below minimum specs for the game), then you may want to lower the fullscreen resolution to something that machine can handle more gracefully (for instance, with ship graphics off and only running at 720p, that below-specs machine runs the game great).<br />
** Note: if you are already in fullscreen mode, then unity just reports what your current fullscreen resolution is. So it will save itself to that, and then set your windowed mode resolutions to be a bit smaller than the current fullscreen mode. Normally this game opens for the first time in windowed mode until this logic kicks in, so this only applies if you already have a current fullscreen setting active.<br />
<br />
=== Multiplayer Fixes From First Alpha ===<br />
<br />
* If there is a null result from FindArcenSteamClientConnectionByConnectionID in OnMessage on a Steam host, it now will write a more detailed and informative message as to why.<br />
** Additionally, in general OnMessage on the Steam server and client is now far more instrumented if those wind up with issues.<br />
** This won't actually solve any problems, but for the case where there was a client disconnect on connect, this should tell us what is going on more.<br />
** Thanks to StarKelp for reporting.<br />
<br />
* The numerical order of the detailed networking sync logs is now better regardless of OS file sorting, as it gives leading zeroes where needed.<br />
<br />
* While in the lobby, or while players are still connecting, the game no longer tries to run the general sync-correction code. This was an oversight in general, and was leading to various errors that would keep popping up until the host saved in-game and clients disconnected and reconnected.<br />
** This was the chief cause of the ""Fixed attempt to read more faction data than we had factions" error on the client.<br />
** Sync was already being handled as well as it needed to be in the lobby in particular: all it needs to do is make sure that your UIs are consistent, which it does. The actual underlying data about incomplete factions and such that can't be seen yet are really quite irrelevant at that point, and so it actually skips a lot of that data, which was incompatible with the full main-game-style sync. As soon as you start a game from the lobby, it already doing a much more robust generation and transmission of the data.<br />
** After loading into the game from the lobby, however, it seems that that initial sync is not as complete as we had hoped, so that's another area for us to now investigate.<br />
** Thanks to StarKelp and his play group for reporting.<br />
<br />
* Fixed a bug in deserializing player accounts, which was something that was leading to the immediately-after-lobby sync being broken.<br />
<br />
* Fixed a harmless extra blank fleetID that was being sent as part of the PeriodicWorldExtrasSync, which made them look inconsistent but did not cause other problems.<br />
<br />
* Fixed a larger bug that was actually preventing deserialization of divergent ships from working properly if the ship did not already exist on the client.<br />
** We had fixed this the other day, but made a mistake in the fix and had to do it over. Now it works!<br />
<br />
* There are still some more issues with syncing divergent ships that have external data on them, and we're not sure why yet.<br />
** The deserialization code for external data now has extra error handling in general, so that we can be more informed if something like that happens during sync or a load off of disk.<br />
<br />
* On the ArcenSerializationTester, added AppendIfActive() and AppendLineIfActive(), which are basically like Append and AppendLine().<br />
** These return a ArcenSerializationTesterWriter so that they can be chained into concisely readable calls like other parts of the code.<br />
** We want to be able to write more complex data in for informational purposes without it being the full WriteHeaderStringIfActive(), and without having to do string concatenations that hit the GC.<br />
<br />
* Several pieces of new logging are now in place to help us more easily identify problems syncing unit data, and external data in general.<br />
** We were seeing some mighty funky stuff on ExternalData syncs failing in multiplayer, and are trying to understand what is happening and why.<br />
<br />
* A WHOLE lot of extra error handling and instrumentation has been put in place around ships and externaldata in general.<br />
** Basically if something goes wrong, we don't want it to do so semi-silently. The various problems that most people were seeing in the first multiplayer alpha version were really downstream issues from the real errors, which were largely silent.<br />
<br />
* Found and fixed a part of the externaldata serialization that could be null in some cases, requiring us to instantiate it even on a partial sync.<br />
** This is something that we had already guessed we would have to do, based on us doing the same thing with ships themselves last version, but the silent errors happening here took us several hours to figure out what was going on. It's fixed now, but there will be more cases of this, probably.<br />
** With this fixed, the divergent ships no longer throw any errors. However, there are still some major differences between the client and the host that need to be looked at.<br />
<br />
=== ExternalData Accidental Creation Avoidance ===<br />
<br />
* Put in several fixes to potentially remove ScourgePerUnitExternalData from accidentally being created on any unit that was part of a fireteam.<br />
<br />
* This is going to break code mods temporarily.<br />
** GetCollectionByPatternIndex() on externaldata now takes a new ExternalDataRetrieval enum, which can either be CreateIfNotFound or ReturnNullIfNotFound.<br />
** The default used to always be CreateIfNotFound, which was nonobvious and was causing things like scourge data to appear on non-scouge units. But very likely it was also causing all sorts of other data to be erroneously initialized. This wouldn't have broken anything, but was certainly bloating savegames prior to this version.<br />
** For reference, all of the methods for getting these are expected to follow this sort of pattern: GetScourgePerUnitDataExt( this GameEntity_Squad ParentObject, ExternalDataRetrieval RetrievalRules )<br />
*** In the main game and first two expansions, this led us to having to correct 112 locations in 26 files. That in turn required another 705 secondary fixes.<br />
**** This may seem excessive, but being able to verify that we are correctly initializing data only when needed is a worthwhile goal, and it makes code clarity so much greater.<br />
*** There are a variety of places that this may make a difference based on our changes thus far (aside from whatever bugs we have introduced):<br />
**** Reinforcement spawning may be more correct now. There was previously some logic that may never have been hit if it was originally pointed at a non-sentinels faction, but now it will hit it.<br />
**** AI sentinels data will no longer be put on every faction during the post-victory achievement check. That was likely causing some problems (which someone had put a mantis report about post-victory slowdown and exceptions, so it's possibly related).<br />
**** When checking faction intensity in general, a whole host of wrong data collections are no longer created on random factions.<br />
**** Several things about astro trains can no longer cause accidental data on wrong factions.<br />
**** If astro trains that should be spawning AI waves or adding to the AI budget are pointed at a wrong faction, the data no longer goes into the void but instead an actual error pops up.<br />
**** Several hacks will now show exceptions rather than throwing their data into the void if they are pointed at wrong factions.<br />
**** There are a wide variety of places where the AI difficulty or AIP of an AI were referenced, and which might now throw a nullref exception. If any of those DO, then that is actually a good thing, because in the past those have silently been returning 0 for both rather than using real numbers. If neither of those cause any errors, then that's even better because we know our other code has been correct already. Fingers crossed for more of the latter than the former.<br />
**** Any time any fireteam was disbanded, all of its units were assigned blank scourge external per-unit data. Fixed. Oh, actually every time it looped over the units in a fireteam. Fixed that, too.<br />
**** ExoData is no longer added to every last faction in the game (notifications checks were causing that).<br />
**** It's possible that some tooltips or notifications might throw exceptiosn now, particularly if you load a savegame and mouseover them before unpausing. If these throw exceptions, then basically this is a case where it would have been gibberish data previously, so it's still useful.<br />
**** Various pieces of code like "don't run the nanocaust info if it's not set up" will now work as their programmers likely originally intended.<br />
** This probably introduced a number of new bugs from typos, along with whatever bugs it uncovered, so this is why we're heading back into the beta branch temporarily.<br />
<br />
== Version 2.500 Multiplayer Alpha Begins Now! ==<br />
(Released September 9th, 2020)<br />
<br />
* Removed some extra code that was accidentally included that was preventing the new findp command from being able to cycle through planets properly if there were multiple matches.<br />
** Thanks to cml for reporting.<br />
<br />
* PlayerAccounts are now also passed to cheats/commands (not to be confused with gamecommands), so that now if there are multiple people in charge of a single faction, commands that are sent can affect just one of the players if needed.<br />
** This is now used for the findp command, which lets two players share control of a single faction without the findp of one player affecting the other.<br />
<br />
=== Multiplayer Readiness In The UI ===<br />
<br />
* The multiplayer button on the main menu now has a small bright "Now in public alpha!" tag on it, to make sure no one misses that.<br />
<br />
* In the multiplayer section of the main menu, a new "Alpha Testers: Please Read!" button has been added.<br />
** This has a tooltip that says:<br />
*** Click to open a web browser that explains the current state of the multiplayer alpha (that changes almost by the day), as well as questions for testers (also get frequently updated), a history of recent improvements to multiplayer categorized by date, and a list of work items that are upcoming.<br />
*** Most important of all: if you are running into problems, please take the time to report them to us, rather than assuming someone else will report it. That is absolutely the most helpful thing we can ask for.<br />
** And its link goes here: https://wiki.arcengames.com/index.php?title=AI_War_2:Multiplayer_Alpha_And_Beta#What_Does_Multiplayer_Alpha_Mean.3F<br />
<br />
* At the top of the networking section of the personal settings menu, there used to be an option called "Enable Multiplayer Alpha"<br />
** This had warnings about how multiplayer alpha was not ready, but that you could click this to enable it anyway.<br />
** This option has, happily, been removed!<br />
** Previously, if that option was not enabled, then clicking the Multiplayer button on the main menu would show a popup with a message from Chris explaining the current state of multiplayer and projected timelines.<br />
*** That message has been removed, and clicking the multiplayer menu now just opens it, again, happily.<br />
<br />
=== Included Mod: Civilian Industries Pre-Multiplayer Finalizations ===<br />
<br />
* Final optimizations for Multiplayer, touching up loose ends.<br />
<br />
* Many nerfs in regards to AI Raids.<br />
** A 20-40%, based on intensity, reduction to AI Raid strength.<br />
** A roughly 100% longer warning before they fire.<br />
** They now only spawn a singular wormhole per planet.<br />
<br />
* Large scale Trade optimization<br />
** The Grand Station will now output a larger amount of cargo ships on demand.<br />
** Many more Cargo Ships can accept trade routes every second.<br />
** Trade Stations will no longer be built on planets that construction ships couldn't safely reach from the Grand Station's planet.<br />
** They are now much smarter about stockpiling resources for local militia use before exporting them.<br />
<br />
* Additionally, a large number of undocumented bugfixes that were lost in the surge of all these multiplayer-based updates.<br />
** The most notable fix is a fix to the Exception that could pop up when mousing over the Raid notification.<br />
<br />
=== Multiplayer Sync V1.0 ===<br />
<br />
* Added AddBytesWithFormatAndColor() and AddBytesWithFormat() for writing bytes nicely to an ArcenDoubleCharacterBuffer.<br />
** This cuts down on our repeat code for easy formatting of things that might be in bytes, KB, or MB.<br />
<br />
* There is now some basic sync stats that will show in the escape menu during multiplayer, and then more detailed sync stats that can be turned on at will.<br />
<br />
* New setting in the network section of personal settings: Show Network Sync Details In Escape Menu<br />
** Only applies when you are in multiplayer, and has different outputs on the host versus clients. Gives statistics on how much the game has had to correct in terms of divergent data between the client and the host.<br />
** Note: The PKIDs and squads are actually checked for divergences, and those are shown in more detail on the client than the host. All the other things are sent in a periodic overwriting fashion, without checking for divergences, as the bandwidth used (which you can see with this setting on) is less disruptive than the CPU cycles required to do divergence checks.<br />
<br />
* The width of the columns in the escape menu are now a little wider.<br />
<br />
==== Fixes Based Off Testing Initial Implementation ====<br />
<br />
* Fixed a bug where the client in multiplayer was incorrectly calling a host-style method when trying to tell the host about divergences in squad sync.<br />
<br />
* Fixed a bug in multiplayer sync where the squad sync stage would never complete or advance beyond the first 20th of the squads, instead just doing those ones over and over again.<br />
<br />
* Fixed a minor bug in multiplayer where the client was telling the server about mismatches even when there were none (just sending an empty list to them).<br />
<br />
* Fixed a one-line bug in multiplayer sync that hilariously just caused all of the ships on the client to be deleted within a few seconds of playing.<br />
<br />
* Put in extra debugging for Client_AcceptDivergenceDataFromHost(), since it was having some exceptions happen.<br />
** In general at the moment, actual divergent ship data is coming across slightly garbled.<br />
<br />
* Temporarily disabled the planet and world-extras sync steps in the multiplayer sync code, as those both were throwing errors on the client side.<br />
** With those disabled, we can see that the ship sync, fleet sync, and "ultra frequent" sync all seem to be not only working great, but also not sending too much data and not slowing the game simulation down.<br />
** The garbled divergent ship data is a bummer and does mess with things, but in general it just speaks to our need for better instrumentation in that area, and is not entirely unexpected.<br />
<br />
* A new setting has been added to the networking section of personal settings: Log All Decoded Network Sync Data To Disk<br />
** Will majorly slow the game down, but dumps decoded sync messages to the disk in files inside the PlayerData/NetworkSyncMessages folder. This only covers sync-style data, but with this logging enabled on both the client and host, this is a great way to see why serialization is failing, if it is. <br />
** Enable with care! Since this data is being actively decoded as it is written, it is far larger (and in plain text) than the actual data being sent across the network. A typical ratio might be 40MB of decoded data for 500kb of actual network traffic. You can have a few GB of data on your disk after just a few minutes of letting the game run in this fashion.<br />
<br />
* Using this hefty new tool and some extra instrumentation, we were able to locate and fix the problem with the sending of divergent ship data from the host to the client.<br />
** We were simply omitting the primarykeyID for entities that were different, not deleted. Things like that are easy to miss but almost impossible to find without a logging mechanism like this. Manual code review just leads you to look right past it, especially if you've been staring at it for days.<br />
<br />
* Did a bit of an overhaul on how some of the network sync data is logged, so that we can do a folder-at-a-time comparison to find differences where any may exist.<br />
<br />
* Server_SendBatchOfSyncsBasedOnCurrentSyncStage() now has extra debugging going on in itself, because we're experiencing some sort of errors in there on the host after a certain amount of time in multiplayer, now.<br />
** Thus narrowed the problem down to Server_SendPeriodicFactionSyncDataThatJustOverrides(), and so instrumented that a lot more thoroughly... except actually the problem was in Server_SendBatchOfDivergentSquadsToFix(), we just read it wrong. So that also got extra instrumentation.<br />
*** And that was, in turn, just a simple typo on one line. Logging and instrumentation makes the impossible and time-consuming very fast and easy -- after the initial setup time cost. Very much worth it.<br />
<br />
* Found ourselves back with another error in Client_AcceptDivergenceDataFromHost-DivergencesSection. But we can't quite use the logging as it currently exists to easily diff these on a folder level.<br />
** In order to make that possible, we are switching away from using a central LogIndexThisSession Int64 for all message types being sent to StartNetworkSyncDataMessageLoggingIfNeeded, and instead are having an individual index for each FilenameBase string.<br />
*** This puts things slightly out of chronological order when we're talking global messaging, but that's because the client and server can be talking back and forth and have some different ordering between message types. We need the message types to always match up, and now they will.<br />
<br />
* Discovered that we were not properly sending the TypeData of the ships in the divergent ship fixes messages from the host. This was then causing nonsensical errors later in the deserialization of those messages.<br />
** Another great example of something we would not have found, potentially at all, without the new instrumentation.<br />
<br />
* Discovered a harmless logging artifact that we introduced into the last few versions where the header for fireteam data was behind its id on one machine, but in front of it on the other.<br />
<br />
* Thanks to the logging, also discovered an inconsistency in how fleet data was being updated, which was causing those to choke and die on the client side.<br />
<br />
* Went ahead and re-enabled the world-extras and planet syncing, since those go wrong so quickly but we now have logging on for them.<br />
** That immediately errored, but that is just fine for our purposes. Can you tell logging makes us happy?<br />
** This quickly revealed that there was something funky and inconsistent with how we were reading the planet's type. That has been fixed to be consistent.<br />
** That then revealed something a lot more complicated was wrong with how the external data patterns were being read in general, most notably on the world but definitely not limited to that.<br />
*** We improved the logging and instrumentation on the external data pattern serialization in general, and this then solved the issue on the world and the larger issue as a whole that would have come back to bite us in many other areas later.<br />
*** Then put in some more logging related to MDCExoDataExt, since it seemed to have an inconsistency. We now are marking when ExternalData is complete in the log, to make that mistake harder to make.<br />
** Then found and fixed yet more inconsistencies in how we were syncing squads.<br />
*** Also we then stopped syncing some stuff that was set to "only save on the network" (and not to disk) for squads, but it was data that really really should not have been synced because it was working fields from other threads.<br />
** And then also fixed a random extra float that we were sending after "world extras" sync. It's the sort of thing you only see in a log, as it was invisible in the code.<br />
<br />
* We are no longer syncing the IncomingShots on entities except during the initial world sync, because in general we are not syncing shots.<br />
** This is going to take some refactoring for targeting, possibly, but then again existing code will very possibly just adapt to it. <br />
*** "Catastrophic" or "planet switch" styles of sync fixes are probably not frequent enough during combat for it to be too very wrong, but either way things will fix themselves within a rolling 3-4 second window. It's interesting, because its constant attempts to heal itself in various places, while "in battle" with attrition is reminiscent of a scene with Wolverine in X-Men 3. That's an amusing thing to realize about one's code. (Let the record show that the devs really don't like X-Men 3, but that one scene was visually neat).<br />
<br />
* Fixed some potential nullref exceptions in CalculateSpeed() on ships, which really at this point mainly would happen when ships or fleets or speedgroups or some combo of that were being updated at the same time as they had something going on in the background threads.<br />
** Basically there's a whole new nest of cross-threading errors that we can run into, but there's not much we can do about them except to harden individual methods as they come up with problems, and in general also add extra instrumentation to methods if we think they have the potential to be a problem again (this one does).<br />
** This is kind of an unavoidable element of the loose way that we handle threading, which is needed in order to get the maximum speed out of the simulation and all the various threads that are involved. The client side of network sync is now a new source of these issues, but it's not remotely the first of them. We'll probably be swatting this sort of thing down throughout the alpha and beta of multiplayer. And then SirLimbo will somehow find a way to run into exceptions that no one else sees for the next two years. ;)<br />
<br />
* At this point we can confirm, based on our detailed logging, that multiplayer is able to successfully run for a solid four or five minutes of gametime (at 5x sim speed) and come out with consistent results the entire time.<br />
** This leads to about 2600 network log files for the sync messages, which are about 100MB per computer, and this substantially slows down the game from running at an unencumbered pace (the disk writes are heavy).<br />
** Of course, as soon as we turned off the logging, we ran into some sort of new gameplay thing which caused issues in the ship sync code. So there are still some goblins in there, probably related to certain types of data that are not on every ship.<br />
<br />
* Added a new setting to the network section of personal settings: Log Decoded Network Ship Sync Data To Disk<br />
** Same as the 'Log All Decoded Network Sync Data To Disk' setting, but only writes data for actual divergent ship fixes. Since that is one of the more-likely-to-break areas of sync, but only something like 1/15th of the actual data being passed around, being able to isolate it to this is helpful.<br />
<br />
* Fixed an issue where the current galaxy map display mode, and the current planet index you were viewing, would be reset by the sync data on clients in multiplayer.<br />
** It now takes in that sync data only for non-local player accounts. Clicking to another planet only to have your view bumped back a second or two later was MILDLY frustrating, heh. And also slightly hilarious.<br />
<br />
* Discovered and fixed an issue where if a partial sync was sent from the host to the client about a ship that the client had no knowledge of, then the client would try to read it as if it was an off-disk sync and thus read things incorrectly and fail.<br />
** This will probably be elsewhere in the code as well, so we will potentially need to review a lot of other data structures.<br />
<br />
== Beta 2.134 Searching For Planets ==<br />
(Released September 7th, 2020)<br />
<br />
'''This one is still on the beta branch on Steam and GOG, since we have continued making lots of substantial changes to the central serialization logic for the game in service of the multiplayer sync code. We're now done with what would constitute V1 of the MP sync code, so we can come out of the beta branch tomorrow so long as no one runs into any problems with single player on this build. As for multiplayer itself, we have a fair bit of testing to do to make sure that the MP sync code is doing its job and not exploding RAM usage on the clients or harming performance, etc. Once that's verified and all the bugs we find in testing the MP sync code are fixed, then we're officially into an alpha status with multiplayer. Given that the V1 of our sync code turned out to be far more thorough than we originally planned, the multiplayer alpha period should hopefully be shorter than it would have been.'''<br />
<br />
* Extragalactic war ships are no longer classed as 'small' when hovering the Planets Under Attack notification<br />
** Thanks to crawlers for the bug report<br />
<br />
* The Dyson Sphere produces a small number of drones, as well as its usual ships. Those few drones no longer leave the sphere's planet<br />
** Thanks to GreatYng for reporting<br />
<br />
* Update the time estimates for releasing multiplayer and DLC2<br />
** Thanks to ParadoxSong for reminding<br />
<br />
* There's now a Journal entry for when the AI can send extragalactic war units, so they won't come as a surprise<br />
** Suggested by zeusalmighty<br />
<br />
* Fix a bug where the Helping Hands 2 quickstart was broken<br />
** Thanks to Spook for reporting<br />
<br />
* QoL tweak for repair. Any ships on a planet where you outnumber the enemies 10 to 1, or the enemies have less that .2 strength are eligible to be repaired immediately.<br />
** The previous rule was 'Any ships on a planet without any enemies' which could be frustrating if you were trying to hunt down a few cloaked ships.<br />
** Thanks to crawlers and Isiel for suggesting<br />
<br />
* Some minor tutorial tweaks<br />
** Thanks to MasterGeese for reporting<br />
<br />
* The extragalactic war spawning notification message now uses 'a' and 'an' appropriately<br />
** Thanks to Ovalcircle for reporting<br />
<br />
* Update the Description for the snake map to mention that it's very hard<br />
** Prompted by a discussion on the forums<br />
<br />
* When you have the galaxy setting for Adjacent Planets Watched, it now takes that as the baseline and is increased by things like Economic Command Stations and Spy Cradles.<br />
** So if you have "Watch 1 adjacent planet" then a military command station will watch 1, but an economic will watch 2<br />
** Thanks to ParadoxSong for suggestion<br />
<br />
* Small update for MoreStartingOptions by AraudB:<br />
** Inordinate had 10 plasma turrets rather than 2. Fixed the number of stations in the mod description too.<br />
<br />
* Removed a blank "Fleet Experience" section from the tips window.<br />
** Thanks to Isiel for reporting it.<br />
<br />
* Several different spots that could throw errors if fleet membership was null now no longer do.<br />
<br />
* DoEntityStepLogic_Ship now has better debug logging.<br />
<br />
=== Multiplayer: Sync Correction V0.90 ===<br />
<br />
* Added a new SerializationCommandType, which has three values:<br />
** NormalFullType, Network_ContinuousPersistentSync, and Network_DuringDetailedNetworkSyncStage.<br />
** This is now used on Factions in order to differentiate the three major types of serialization that we might be doing.<br />
<br />
* The ExternalData on factions is no longer synced as part of the "every frame" IsForNetworkContinuousPersistentSync.<br />
** And actually a bunch of other stuff on factions is now limited out so that it's not over-saturating certain data while it IS still sending other things every frame auth.<br />
** This is also of relevance because it means that any faction externaldata that is not fully optimized to not thrash the GC will inherently do less thrashing of the GC. So that makes mods a little more safe in general in multiplayer.<br />
<br />
* Fixed several parts of the faction object to be efficient and not thrash the GC in the way that we were doing for the ExternalData last build:<br />
** TechHistoryEvent, HackingEvent.<br />
<br />
* FromServerToClient_SendAllOtherSyncDataThatJustOverrides has been renamed to FromServerToClient_SendUltraFrequentSyncDataThatJustOverrides, because it no longer is "all the other data." It's just the most common stuff.<br />
** Added new new messages for time-sliced sending of the following: FromServerToClient_PeriodicFactionSyncDataThatJustOverrides, FromServerToClient_PeriodicFleetSyncDataThatJustOverrides, FromServerToClient_PeriodicPlanetSyncDataThatJustOverrides, and FromServerToClient_PeriodicWorldSyncDataThatJustOverrides.<br />
<br />
* The full-faction-data sync even has been implemented on the client and the host, and now includes speed groups (which previously we felt like were too heavy to send on the ultrafrequent channel -- which was correct).<br />
** This also means that we needed to make the SpeedGroups be nice to the GC on deserialization, so that's done.<br />
** Also fixed several oversights that would have led to hard-to-diagnose endless inflation of array contents for various faction items. Yow. These sorts of things will be hard to find any other way than manual code review, and can be in mods or the main game and can cause massive slowdowns with no central way to diagnose it. These will be "fun" to find in the future.<br />
*** Essentially lists like FactionIndicesIAmAlliedWith were being added to each frame without ever being cleared before the new set of data was put in. This would only happen during multiplayer, and only on the client, but would start causing all sorts of problems.<br />
<br />
* Planets and planetfactions and their externaldata have now gotten the same treatment that factions did.<br />
** Here again there were a couple of infinitely-expanding lists that are now fixed.<br />
<br />
* Whew, okay, fleets and their memberships have also been updated to the new style.<br />
** This... is going to be very problematic, the way it currently exists. This first checkin of the fleet memberships in particular is going to be very problematic indeed, for a whole lot of reasons, but it's a good start for refactoring.<br />
** Essentially, fleets are so bloody complicated the way that they exist right now (in terms of data structure under the hood) that they can't work cleanly in multiplayer without a bit of refactoring. The positive news is that we can make potentially even single-player slightly more efficient with this refactor, but it's going to require redoing drones and a few other things along those lines.<br />
** Edit: the below solves our issue for the time being, although we may still make some changes in this area in the future to make things easier. We're no longer FORCED to, though, which is nice.<br />
<br />
* Came up with what is hopefully a clever use of our existing sync infrastructure to handle the cascading wrong data that can happen from the current fleet structure. This was something that has us stumped for a bit, because doing the most efficient sync style for fleet memberships could lead to units that were in the wrong membership after that.<br />
** The simple solution is the fact that we do know when we are hitting such a case, and so we can just tell all those units to kill themselves on the client. They will then naturally and fully re-sync from the host within 2-3 seconds.<br />
** This is the sort of thing that we want to minimize, of course, but the worst case is having something be permanently wrong in a MP game and us not being able to fix it. Later logic can always do something to sync these back quicker, or to minimize the number of times these are being hit if it is frequent, etc, etc.<br />
** For now we're just monitoring (in the UI) how often it happens, and we can make decisions based off of that... as people choose to share that data about their sessions with us. We may implement some sort of automated data reporting that people can opt into if things seem problematic, or if we think we're not getting reports on things like this but it does seem to be a problem for people.<br />
** At any rate, priority one is making it work properly in the long term of a game even if there is a snafu for a few seconds on a client, and priority two is minimizing or erasing the snafus.<br />
<br />
* Various central world data is now synced from the host to clients every few seconds/<br />
** Among other things that were more intentional, this actually lets clients know the status of other clients pretty rapidly (aka, seeing that someone else is disconnected or connected).<br />
** This should have all the central items of relevance nicely synced, although we are skipping the "world history" and "journal history." For those, if they are really needed, we may just introduce a new sync stage to time-slice the processing of those. But frankly they are not likely to get out of sync.<br />
<br />
* At this point it will be time for us to test our sync code, which is utterly untested at the moment. But the design and implementation of V1, except for actually testing it, is complete.<br />
<br />
=== "Find Planet" Command ===<br />
<br />
* Added a new extension in our central ArcenStrings which lets us do a case-insensitive Contains() call (for purposes of searches, etc).<br />
** This is useful for a variety of purposees, and lets us do partial comparisons (not just Equals()) calls) without having to cast to lowercase.<br />
<br />
* Implemented a new [https://wiki.arcengames.com/index.php?title=AI_War_2:Cheats#Debugging command], "findp", which lets you search for planets via the chat command:<br />
** Formatting is like this: "cmd:findp,gear" (minus the quotes).<br />
*** This example would search for the text "gear," and would bring up results "Geary" and "Gearworld" and "geaRson" if all three of those existed in one galaxy.<br />
** It tells you how many results there are, and if there is more than one result, then repeat entering of the same command (just press up and enter) will cycle you through them. It tells you that it will cycle you through them if there are more than one.<br />
** If you are on the planet view, it switches you to the planet view of that other planet. If you are on the galaxy map view, it centers the galaxy map on that planet.<br />
** Thanks to cml for the initial implementation of this as a mod.<br />
<br />
* Added a new "Quick Tip" item, which shows up randomly on the starting screen as well as in that section in the tips section: Searching For Planets By Name<br />
** During the game, if you hit enter/return to bring up the chat window, and then type 'cmd:findp,yoursearchhere', you can search for planets by name. If you type part of the name of a planet, then you can hit up and enter to issue the command repeatedly and cycle through multiple hits if there are any.<br />
<br />
== Beta 2.133 Hotfixes ==<br />
(Released September 4th, 2020)<br />
<br />
'''This one is on the beta branch on Steam and GOG, since there were a number of problems with the prior build that prevented adequate testing. Once we have confirmation of more people able to play this new version without incident, we can move back out of the beta branch.'''<br />
<br />
* Fix typo in Full Badger tooltip<br />
** Thanks to Breach for reporting<br />
<br />
* Nanocaust now uses a darker border colour<br />
** I forget who mentioned that this looks much better<br />
<br />
* The Nanocaust might now play a bit of defense<br />
<br />
* Improve the way a player's Overall Power Level is calculated<br />
** A player can now have a high enough Overall Power Level to trigger Extragalactic War Units without allies if they are on difficulty >= 7<br />
<br />
* Dark Spire ship line hacks no longer destroy the VG<br />
** Thanks to Sol for reporting.<br />
<br />
* In Steam, the default launch style is now OpenGL, rather than Vulkan.<br />
** As noted, this is the preferred launch style, and more stable.<br />
** Thanks to TechSY730 for suggesting.<br />
<br />
=== Fixes Relating To Prior Beta ===<br />
<br />
* Fixed several areas where trying to check a non-existing setting (potentially because it was from a mod or expansion you don't have installed) was causing issues.<br />
** This is a problem dating back months to when we changed how lookups to missing settings worked, but we're only now seeming to hit it in the most recent betas.<br />
** Thanks to Badger and others for reporting.<br />
<br />
* A variety of extra debugging info has been put into some of the high-level world serialization areas for our logs when problems happen.<br />
** Also put in a bunch more into fleets and fleet memberships for debugging purposes.<br />
<br />
* Identified two fields from fleet memberships that were not properly translated over into the new format in the last beta build, causing all new savegames in that beta to fail to load.<br />
** Now that this is fixed, the broken savegames all seem to load just fine, which is always nice when that happens.<br />
** Thanks to StarKelp, Sol, and ArnaudB for reporting.<br />
<br />
* The "Civilian Industries" mod by StarKelp has been updated to function in the new code framework we introduced last build.<br />
** All of the mods we distribute with the game are again working at the moment, to our knowledge, now. Code-style mods from other sources (forums, etc) may not be updated yet to compatibility with this latest set of builds.<br />
** Please note that we broke compatibility on purpose (not a typical thing), to add multiplayer functionality to mods and make sure that no mods would cause unpleasant spikes in memory usage on client machines in multiplayer.<br />
<br />
== Beta 2.132 Exterior Leviathan ==<br />
(Released September 3rd, 2020)<br />
<br />
'''This one is on the beta branch on Steam and GOG, because we made so many changes to some fundamentals of how the game works. These are driving at improvements for multiplayer, for the partial syncs to be able to happen, but they break code-style mods for the game (including Civilian Industries as included in this version), and it's possible that they temporarily are breaking something else since we've changed several thousand lines of code in a few dozen files and may have made an error in any one of a number of places. Some bits of multiplayer sync are a bit more hefty than we'd been thinking they might be for V1 of that, but then again we're getting more of it done upfront rather than later. We'll be able to start actually testing the sync maybe tomorrow, unless a bunch of other things are broken by our changes.'''<br />
<br />
* Dyson Spheres now must kill all the guard posts on a planet before they can kill a reconquest command station. This should prevent a buildup of guard posts. <br />
** Thanks to TechSY730 and Khankar for reporting<br />
<br />
* Fix some bugs with Usurpers owned by praetorians or other AI subfactions<br />
** Reported by GreatYng<br />
<br />
* Try harder to make sure waves against minor factions have ships<br />
** Reported by GreatYng<br />
<br />
* Fixed some minor typos<br />
** Reported by GreatYng<br />
<br />
=== Multiplayer: Sync Correction V0.75 ===<br />
<br />
* New setting in the network tab of personal settings: Network Logging Includes Sync Checks<br />
** During gameplay there are messages sent by the network as frequently as several every 100ms, and these are one of the largest sources of data usage. This lets you see the timing and payload size of those messages, if you think that potentially they are what is slowing things down in a networked environment.<br />
<br />
* Stripped out a lot of old code that was related to an old style of sync (aimed at desync detection), and started building in the new sync framework (aimed at detecting micro desyncs and correcting those).<br />
** Decided to move this to a new AIWar2NetworkSync static class in its own file, as after just getting about a third of the way through this logic, it was clear that it was pretty sizeable and overwhelming the rest of the networking code's readability.<br />
<br />
* Added in the logic for the server keeping a list of ships that the various clients have told it are divergent.<br />
** The server could be getting overlapping reports from several clients, but we need only one copy of this, because we're going to err on the side of caution and tell every client about each bit of sync data that needs fixing.<br />
** We could always change this in the future if there seems to be a bandwidth benefit to this, but it would probably just mean extra processing on the host for more unique sends per-client. At the moment we judge that to be the resource that is more scarce.<br />
<br />
* The logic for removing ships on a client that were not part of the last sync cycle, but also not new during that cycle, has been put in place.<br />
** The idea here is that these ships probably died on the server, and the client didn't know for some reason.<br />
<br />
* The logic for having the server do send check data for 1/20th of its ships (or stacks or whatever, as the case may be), but no more than 9000 per 100ms, is now in place.<br />
** This is the meat of the desync detection code, and it is based around only a very few factors:<br />
*** Health lost, shields lost, extra ships contained within (of ANY fashion), current planet, and current location.<br />
*** We are generally making the assumption that if all of those things match between the client and the host, then the ship is probably in sync.<br />
**** In the case of certain faction ships that do things like gather resources or whatnot, that will obviously be very incorrect, but it is correct for most combat ships.<br />
**** For those cases where faction-specific data is potentially going to be wrong, it would be prohibitively expensive to add a bunch of checks based on that extra faction data, so we will build in separate tools for forcing sync of these non-combat factors.<br />
**** Frankly, other things like fireteam history, which would be missing on the clients, could be synced via other methods later on if we really want to. Though that's generally only used for debugging in most cases, so seems not to be worth doing.<br />
<br />
* The logic for clients checking for mismatches with their local data compared to the server is now in, and it sends back the requests to the server to have divergent units corrected.<br />
<br />
* On PlanetFactions, there is now FactionIndex and PlanetIndex directly in order to make it easier to quickly find those in case they have been reassigned.<br />
** Additionally, their Faction and Planet member variables are now exposed as get-only properties to keep unexpected things from happening there.<br />
<br />
* The way that squads deserialize has been updated substantially to allow for several levels of partial deserialization for various sync scenarios.<br />
** The sync fix code allows for normal-level same-planet sync fixes (which should hopefully look very nice with things sliding visually into new positions if positions differ).<br />
** The sync fix code then also allows for normal-level different-planet sync fixes, which instantly disappears the old spot and puts it somewhere new.<br />
** And finally, the sync fix code allows for catestrophic-level sync fixes, where the two entities aren't even the same (not matching faction or type), and it destroys the old one instantly and as invisibily as possible, and then puts in the new one where it should be.<br />
*** This last category is for basically when the primary key ID generators are out of sync between the host and one or more clients. These will be hit with some regularity, but they should not be hit over and over for the same unit.<br />
<br />
* The deserialization logic for "fleet memberships" has been split in such a way that we can now sync just some of the data into them (for network purposes).<br />
** We are not using this yet, but will once we get into the fleet sync phase of the sync cycle (outlined below).<br />
<br />
* CalculateContentsCount() on squads now takes a required parameter IsForNetworkSyncCheck.<br />
** If that is true, then it ignores any data that is not on the squad (but is usually on the fleet or the "fleet membership" areas.<br />
** This is things like drones or transported ships, and city sockets. These will be something we sync at the fleet level.<br />
<br />
* Network_CurrentSyncCycleNonSer has been moved off of the World_AIW2 object and into the AIWar2NetworkSync class.<br />
** Same with the OnServer_SquadsNeedingSyncFixes dictionary.<br />
<br />
* The server now cycles through a series of "sync stages," where it will sync different things other than just squads.<br />
** This is useful for us to be able to time-slice syncing of data of different sorts... for instance fleets and fleet memberships data.<br />
** We actually are now going to use this for separating out the squad sync checks and the divergent squad fixes, too, since time-slicing that is good for smooth gameplay as well as also making sure that multiple clients with partially bad sync cause as few excess sends as possible (that's a ms timing thing).<br />
*** The code for syncing the squads that were divergent is now in, as noted above.<br />
<br />
* The data for factions, and for some of the Primary Key info, is now synchronized from the host to all of the clients every authorized network batch.<br />
** On average this is probably anywhere from 10kb to maybe 40kb, at most. It's easier just to keep this in sync.<br />
** At the moment, for ExternalData on factions and squads, there is a huge amount of inefficiency on the clients in that it is completely recreating objects every network sync right now. We are looking into various refactoring options.<br />
<br />
* At the moment we are explicitly not syncing SpeedGroups, since those are complicated and may tend to diverge.<br />
** We are probably going to wind up refactoring these to be by faction, or something along those lines. In fact, there are several major refactors coming, and one of those may be that a lot of the PKIDs may become faction-specific in general.<br />
<br />
* Turns out that adding the NetworkSyncStage as a concept was a really good idea, because we not only need to sync squads and fleets, but also planets and some data off the world, too.<br />
** The faction sync is happening once every sync frame, but it's possible we might back off the frequency of some of that if it becomes too harsh. Mainly for ExternalData stuff. But for now we'll see how it does.<br />
<br />
* Planet has now had its data split out like squads and fleet memberships and factions and some other classes to have its own DeserializedIntoSelf() method.<br />
** Also PlanetFaction. Whew, wow. For this it doesn't sync the entities during the partial sync, of course, unlike during disk or main network sync.<br />
<br />
==== "ExternalData" Updates That Affect Mods ====<br />
<br />
* The ExternalData framework has gotten a few updates to allow for us to do partial-syncs like we now do with squads and such, versus always just creating something new.<br />
** Any mods that use ExternalData will need to be updated to use the new pattern, although it's not a huge change.<br />
<br />
* FireteamRequiredTarget has been updated to have a DeserializeNewFrom and DeserializedIntoSelf, to ensure that what we are doing is intentional.<br />
** Since this is a class, not a struct, it's highly efficient for us to be able to write to an existing class rather than always replacing it, even in single-player.<br />
<br />
* The following "external data" has been updated to be dramatically more efficient with syncs during multiplayer, employing a variety of strategies that we're using in the main game stuff:<br />
** WormholeInvasionDataExternal (this one is basic and simple)<br />
** AI_PlannedWave_Data (this one is complex in that it has a list of sub-objects and shows how to handle that properly. It even gets rid of theoretical extras on the client machines)<br />
** DoomData (this is really old style in terms of the data, and is not used actively, but does show a way to handle the multi-part sub-data well).<br />
** ExternalData_AIFactionCommon (this one is ridiculously complicated and used for a couple of factions)<br />
*** ExtragalacticBudget and AIPChange as a part of this, and are good simple examples. These don't even have the new bool passed to their sub-objects, because both the DeserializeNewFrom and DeserializedIntoSelf() methods can both validly be used as part of one during-game sync (depends on relative list length, see code).<br />
*** StoredAIPurchaseCostByBudgetForSpecificUnits is a good example of where it's better to just use a bit of extra GC (especially with the new time-sliced GC unity now has) instead of doing extra CPU processing to be a hair more efficient with that memory.<br />
*** Fireteams themselves have changed from having a constuctor for deserialization to having a DeserializeNewFrom method that makes it a bit more explicit what is happening. We also pulled out the id deserialization so that we could reuse Fireteam objects as much as possible if they are being updated.<br />
** DysonExternalData and DysonAntagonizerExternalData (another two examples of the simplest possible cases for updating a modder might have)<br />
** MacrophageGlobalData, MacrophagePerTeliumExternalData, MacrophagePerSporeExternalData, and MacrophagePerHarvesterExternalData, which are also very simple examples.<br />
** RiskAnalyzerData is even simpler, with no sub-objects to modify.<br />
** AIReservesDataExt is seemingly simple, but is dodging accidentally creating two sparse lookups internally on each sync.<br />
** AstroTrainsGlobalExternalData, AstroTrainsPerDepotExternalData, and AstroTrainsPerTrainExternalData are all pretty straightforward, although we saved ourselves a lookup load on AstroTrainsPerDepotData.<br />
** AutosaveDataExt, even though it's not really even needed on the clients at all. Since it has some sub-data that is in a list, and in string format, we're just not bothering to send that to clients at all during syncs since it is a waste of bandwidth.<br />
** DarkSpireData, which has some complexities with the sub objects DarkSpirePerPlanet. It has special notes in the code for any similar cases with a sparse lookup and sub-objects.<br />
** Two "DZ" items for DLC2, which was wildly complicated to convert compared to most things. It involved sub objects DZResourceConversion, and DZUpgrade, among other nested objects. Mostly it was a good example of just following the existing principles on down, but there is one ConversionBag that was tricky enough that we're just clearing and refilling it in a somewhat GC-wasteful way rather than going into the extra complexity and perhaps incorrectness of doing it another way.<br />
** AntiMinorFactionWaveDataExt, ExoDataExt, and MDCExoDataExt, which thankfully were all trivial examples of the common case.<br />
** ExternalData_GroupTargetSorting, which has nothing formal to save or send.<br />
** InstigatorPerUnitDataExternal and InstigatorDataExternal, which again the simple common case.<br />
** SpawnAnimationData and DespawnAnimationData were very old and probably not used, but simple to upgrade.<br />
** MarauderOutpostRaiderSpawnData is again the simple common case.<br />
** MercenaryUnitExternalData and MercenaryGlobalExternalData, which had some more notable complexity. MercenaryBeaconState upgraded with WorkingHasBeenUpdatedThisDeserializationCycle to handle its situation. MercSpawnRequest just does it the inefficient way since these rarely exist, and only exist for a short period when they do. SingleMercenaryGroupState is a strange bit of data, and gets handled in a novel way. Thankfully MercenaryUnitData was a trivial case.<br />
** ExternalData_FactionCommon is old and strange, but was not too hard to update.<br />
** ExternalData_MinorFactionCommon was super old in its styling, but already was efficient enough.<br />
** NanocaustMgrData, NanocaustPerUnitDataExt, and LastSpawnTimestamp are all extremely simple. The old FrenzyFleet stuff is still kinda-sorta there, but never has data since it is legacy, so that shouldn't cause any GC churn.<br />
** FallenSpireGlobalExternalData and FallenSpirePerUnitExternalData had a few quirks, but mostly were the common case with some minor array clearing and preservation.<br />
** One "NP" item from DLC2 required pretty minimal updates to work with this, hooray.<br />
** ScourgeGlobalExternalData and ScourgePerUnitExternalData were both the common case with a tiny bit of list/dict management.<br />
** Two "ZA" items from DLC2 are mostly the common case but with some collection management added in.<br />
** Two "ZM" items from DLC2 are also mostly the common case with a bit of collection management.<br />
** HRFDataExt and MarauderDataExt both were also mostly the common case with a bit of list management. There is a question mark about the regiments aimed at planets, on this and a few other locations, but they are at worst going to be inappropriately blanked out over and over again on clients in MP, which we can fix later.<br />
<br />
* In general, any of the usages of IArcenExternalDataPatternImplementation in mods should be updated to follow the new examples in the main code. The changes are not severe.<br />
** The most important changes are the ones above, relating to SerializeExternalData() and DeserializeExternalData() taking an extra parameter, and then each handling a graceful DeserializedIntoSelf() sub-method (and choosing if there's some data not to sync across during gameplay if required). But beyond that, there are some more changes:<br />
** RelatedParentTypeName has been removed, as it was never used. Same with GetShouldInitializeOn.<br />
*** During InitializeData, the object ParentObject is being cast into an appropriate-type Parent object for general usage, (aka GameEntity_Squad, Faction, whatever) that people can then later use. If the type is wrong, it will just come across as null, and we have it complaining if that's the case. You can do the same or omit that part if you don't care.<br />
<br />
=== Third Off-By-Default Mod: More Starting Options By ArnaudB ===<br />
<br />
* The More Starting Options mod by ArnaudB is now included with the game by default (with permission), but disabled.<br />
** Requires The Spire Rises expansion (DLC1).<br />
** Pick between seven starting fleets and twenty starting battlestations for your custom games. These choices are balanced for regular play and are acceptable to use for achievements.<br />
** The eight starting fleets will offer you a more varied combination of ships so you may explore more varied combinations of technologies and playstyles than those incentivised by the default options.<br />
** The twenty starting battlestations will let you play and test every of the many turrets brought by The Spire Arise DLC, which are otherwise completely absent from the default starting options. You’ll find multiple combinations for both offensive and defensive playstyles, balanced for your enjoyment and giving you hints as to what synergies you could make with a few turrets or ships.<br />
** This mod is off by default as to avoid paralyzing the player by offering too many choices. <br />
** You can activate this as a new player unsatisfied with the default options, or as a veteran wishing to vary your experience of the game.<br />
<br />
=== Mod: Civilian Industries Updates ===<br />
<br />
* Civilian Industries 0.6.4<br />
** Full update notes may be found on the forums: https://forums.arcengames.com/ai-war-ii-modding/civilian-industries/msg222774/#msg222774<br />
*** A large number of code optimizations, directly mostly at performance and multiplayer readiness.<br />
*** An overall nerf to Mobile Ship counts, but a simplified formula will allow easier future modification.<br />
*** A rework to the Barracks. Now scales with Mark Level, Command Tech, and can even let you get more Protectors at mark 7.<br />
*** Buffs to many Protectors. Balance for them is still being worked on.<br />
*** Resources renamed across the board, and structures now state what technology works for what resource.<br />
*** A notification will now show when a Raid is about to fire against your civilians, thanks to Chris' recent changes on the notifications front.<br />
<br />
== Version 2.130 Redux: Dutch Cities and Softer Eyeballs ==<br />
(Released August 31st, 2020)<br />
<br />
'''We accidentally forgot to increment the version number in game. So this would have been 2.131, but is just called 2.130 in the game. Sorry about that, this is perhaps a first?'''<br />
<br />
* New planet naming style added, with over 4000 names in it: Cities (Dutch)!<br />
** Most Dutch cities, villages, and hamlets shorter than 10 characters; also includes many local spelling variations. Created by GreatYng.<br />
** Thanks to GreatYng for creating!<br />
<br />
* Added a new xml tag, external_invulnerability_unit_required_count, which works with external_invulnerability_unit_type or external_invulnerability_unit_tag.<br />
** This basically lets us say that a unit of whatever sort is still protected by others (such as guard posts), but only if there are more than the number specified.<br />
** The default number is 0, which means the previous behavior of "any guard posts present make this invulnerable."<br />
** For AI Eyes, the number is now 3, which means that if there are not at least 4 guard posts remaining on a planet, you can go kill the eye.<br />
*** This is pretty huge, because you can now kill just part of the planet and then kill the eye before going to kill everything else.<br />
** If we need to make further adjustments to the Eyes based on the relative ratios of strength of them versus enemies, we can do that in the future, but for now this is a solid start.<br />
** Thanks to Lord Of Nothing and CRCGamer for reporting.<br />
<br />
* Further balance adjustment: all AI Eyes are no longer Mark 7 at minimum. They are now Mark 5 at minimum, and if their planet would have a higher mark (6 or 7) then they will instead have those higher marks.<br />
** This should help to make a bit more variance with them, and eyes to be a bit less of a pain in general.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fixed HRF Nucleophilic Defenders as well as other defender types not being loadable into transports. Additionally they now count as Frigates and benefit from their hull/shield/damage settings.<br />
** Thanks to Darkshade for reporting and -NR- SirLimbo for fixing.<br />
<br />
* Fixed a couple of issues relating to getMostCommonPlanetForRegiment() with fire teams, which were likely leading to who knows what other errors.<br />
** The PlanetsForRegiment Dictionary was declared as static, and so all of the regiments were trying to use the same dictionary at once, leading to exceptions as well as probably wrong results. Exactly how much chaos this could have caused is unclear, but with some of the LRP threads stalling out this is certainly not going to help (fingers crossed it was the whole thing).<br />
** Now if getMostCommonPlanetForRegiment() is called again on the same regiment before it finishes, it will throw the error "BUG: called getMostCommonPlanetForRegiment() again for a fireteam regiment before the last call finished. Will break both calls." Hopefully we don't have people getting this, but if we do we need to know about it to fix that. In that case, the workingPlanetsForRegiment dictionary can't work as a member variable at all.<br />
** Additionally, if there's an exception in getMostCommonPlanetForRegiment() it will now throw an exception but then exit more gracefully, letting whatever calling code keep doing its thing.<br />
** Thanks to CRCGamer and TechSY730 for reporting.<br />
<br />
* A few versions back, we made some changes to how the icons are rendered on the galaxy map, including planet icons. We made them keep their orientation better, but one of the things that was an unfortunate side effect of this is that the colliders on the lines between planets were often taking precedence over the actual planet or the ships at the planet. That is now fixed.<br />
** Thanks to TechSY730 and CRCGamer for reporting.<br />
<br />
* Heavily reworked how Journal_TooMuchAIP calculates both how many planets you have paid AIP for, as well as how many planets are neutered. It was triggering the journal entry far too early, previously.<br />
** Please see the code or here for details: https://bugtracker.arcengames.com/view.php?id=23609<br />
** Thanks to Sigma7 for reporting, and Badger for helping figure out what was wrong.<br />
<br />
* Fixed old wording on the AI Eyes that still said "when there are enough fleets present on this planet" to instead read "when it is sufficiently outnumbered on this planet."<br />
<br />
== Version 2.130 Civilian Industries ==<br />
(Released August 29th, 2020)<br />
<br />
* For determining what your performance is like, the game now uses only one second of data instead of ten seconds.<br />
** This makes the sim speed average a lot more responsive and natural-feeling.<br />
<br />
* The "suppress upgrade prompt" setting and keybind now both work on fleet upgrades and not just science tab upgrades.<br />
** There is some extra info in the tooltips and popups to reflect this, as well.<br />
** Thanks to Fritz1776 for suggesting.<br />
<br />
=== Second Off-By-Default Mod: Civilian Industries By StarKelp ===<br />
<br />
* The Civilian Industries mod by StarKelp is now included with the game by default (with permission), but disabled.<br />
** This lets people simply enable the mod by clicking a button in the settings menu, rather than having to find and download the mod from elsewhere.<br />
** StarKelp has been a volunteer contributor to the main codebase off and on for a while, and this mod contains both code and xml.<br />
** Full description of the mod is included in the tooltips in the game, but also here:<br />
*** Every empire is only as strong as the people within.<br />
**** Protect your people, and they will help your empire flourish.<br />
**** From collecting and processing various resource around the galaxy to bolster the economy, to taking up arms on their own to aid your survival, you'll find their help invaluable in the long term.<br />
**** As they flourish, so do you.<br />
*** Adds in the Civilian Industry faction, a potent defensive faction that can be allied to either a player, or a faction team.<br />
**** They will expand alongside their respective ally, and produce a large number of defensive forces to aid their team.<br />
**** They gain a new resource type per planet they expand to, and will work diligently to spread these resources throughout their empire.<br />
*** When allied to the player; you will find your command station and battlestations have access to a few new structures that you can invest in to greatly incresae the power of your civilian economy.<br />
*** Please check Galaxy Settings for many tweaks in regards to how they behave.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fixed a bug in GetIsWithinRangeOf() that could happen in the selection logic (and probably other places) if a background thread marked a unit as deleted as it was doing the range check.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
* It is now possible that your logs will wind up having the message "BUG: overriding speed limit for group X to [a negative number below -1]. Overflow? Setting to -1 instead."<br />
** If this is frequent, it may slow down your game, but the stack traces will let us know where we are going wrong and causing this to happen.<br />
** We fixed one area where MAYBE this could be caused, but probably that was not possible in the place we fixed it. Most likely the problem is in something that is calling GameCommand_CreateSpeedGroup with a command.RelatedIntegers[0] that is greater than the 32767.<br />
*** With that in mind, anything that is larger than that being passed into that method is now automatically corrected down to 32766. This may lead to some turbo speed groups, not sure, but at least they won't be erroring... and that IS what the calling code is asking for, so maybe it's intentional?<br />
** At the same time, in some other places in the code where it was checking to apply the speed only if it was "not -1", it is now checking to apply the speed limit if it is "greater than 0." This seems more like the correct intent, and hopefully won't break anything.<br />
** And beyond that, prior to serialization, any speed groups with an OverrideSpeedLimit less than -1 will automatically just set their value to -1 silently and thus avoid popup errors that could be really annoying in savegames for folks. This has been an issue on and off since July 24th, apparently.<br />
** Thanks to Lord Of Nothing (twice over), TechSY730, GreatYng, and Apthorpe for reporting.<br />
<br />
* Add a new time_must_have_been_on_planet_before_transforming_if_outnumbered_or_outnumbering, for use with transform_when_outnumbered and transform_when_outnumbering.<br />
** This defaults to 0 seconds, which has been the behavior in the past.<br />
** But now for all of the ships (mostly AI Eyes, but also some guardians) that use transform_when_outnumbering, it now has a value of 2.<br />
** For those that use transform_when_outnumbered, it has a much higher value of 30, to keep them from downgrading their alertedness too easily.<br />
** The AI eyes will still switch between alerted and unalerted status every so often in a general battle, since their alerted status increases the balance of battle in their favor so much, but now it won't be a constant thing and ships can continue targeting them in a reasonable fashion.<br />
** Thanks to whakomatic, Ovalcircle, MasterGeese, Gdrk, and GreatYng for reporting.<br />
<br />
* Additionally, previously anything that was transforming via one of those two methods was having its health and shields and cloaking points all reset to full.<br />
** Now, however, when transformed via these two cases ONLY, it keeps the health and shields and cloaking point losses after transformation.<br />
** This makes it so that battles with AI eyes are actually something you can win, even as they cycle back and forth between statuses. And in general this just makes sense, and is important on the dire guardians that use this same sort of mechanic, too.<br />
** Thanks to whakomatic, Ovalcircle, MasterGeese, Gdrk, and GreatYng for reporting.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* GameCommandTypes are now serialized by index rather than name, which chops off the vast bulk of size from most GameCommands, leading to even snappier networking.<br />
** Honestly this is a very small boost in most cases, but this also took like two minutes to add.<br />
<br />
* The network traffic logs have all been updated to be able to actually report how many bytes were read in for each message that the host or clients receives. Before it was saying ?? because we were checking prior to doing the reading.<br />
** Note that depending on the networking platform in use, there is sometimes extra buffer data that was read from the socket, but if it wasn't part of the game, we just ignore all that. This is also ignoring packet header sizes, so we're just talking payloads here (but that's consistent with the send records, too.<br />
<br />
* In the escape menu, on clients and the host, it now has a new Multiplayer Stats section when you are in multiplayer mode only.<br />
** At the moment, this shows how many messages have been sent or received in total, and how many bytes/kb/mb have been sent.<br />
*** These all apply to the current session only. So if you are the host, it is the stats since you loaded up the server and people started connecting. If clients come and go, it's including all of that. If you're the client, it's the amount since the last time you connected; if you disconnect and then come back, it starts over.<br />
** This is pretty important information in terms of figuring out just how much data is actually being sent back and forth, and how it changes during gameplay, so that we can react to any unexpected spikes if there are any.<br />
<br />
== Version 2.129 No Shrooms For Ships==<br />
(Released August 28th, 2020)<br />
<br />
* Nanocaust now prioritize holding planets adjacent to their homeworld<br />
** Thanks to crawlers for reporting<br />
<br />
* The nanocaust units now prefer to spawn a bit further from their centers; it looked kinda weird when a giant Nanocaust ship would spawn right on top of a nanobot center.<br />
<br />
* Added a lot of extra instrumentation to the deserialization and serialization of factions, since there seems to be some sort of error in there with savegames from specific versions.<br />
** Essentially with this sort of thing on, we can now manually look through the deserialization log and see if we notice where field data stops making sense. It was obvious that it was getting something like "I am hostile to 20 thousand factions," which is nonsense data, but it was not clear where the data was going wrong prior to that.<br />
** From this, we could then see that most of the data reads in the player faction seemed reasonable, but the faction right after them was immediately messed up. This is after a lengthy code review turned up nothing wrong, so it's always possible that it's some sort of edge case that has been around for longer than we thought.<br />
** Added in code to make it so that if an exception is thrown while deserializing a faction, we will now repeat that error better and stop doing further deserialization attempts. It turns out that was what was happening, and a more careful reading of the log could have saved about an hour and a half of work (oh well, things in the future will be easier to debug).<br />
** Thanks to Lord Of Nothing for a very challenging save that led to these changes.<br />
<br />
* Fixed an issue with some savegames that had hacked dyson or dark spire ships, where the HackToGrantShipLine_DontDestroyTarget hack had been removed and split into several versions a few versions back.<br />
** We now have added HackToGrantShipLine_DontDestroyTarget back in, in a deprecated fashion, so that old savegames with this data in it can load.<br />
** Thanks to Lord Of Nothing for the save that let us find this.<br />
<br />
* Fixed a bug in the prior build where the "flair" overlays for ships in the main view were either black (some machines) or a rotating color set of insanity (others).<br />
** One line was accidentally omitted in the new build of the shader that we made.<br />
** We also updated some calling code to the shader in a way that is harmless but not actually needed for this fix.<br />
** Thanks to Strategic Sage, Isiel, CRCGamer, and TechSY730 for reporting.<br />
<br />
* The "Icons Disappear When Camera Lower Than" setting in the main camera window has been updated as follows to have this note<br />
** Note: this setting does nothing (icons always draw) if you have 'Skip Drawing Ship Models' turned on in the Performance section.<br />
** (Also, this is how it actually now works).<br />
<br />
* If a player is already on a planet viewing that planet, and a further command was sent to view that planet again (as if they were not already there), then funky stuff happened in various places, including the wormholes getting half-initialized and not drawing properly in scale.<br />
** To solve this, it simply doesn't do anything if you try to re-open your view to the existing planet you are already on.<br />
** Thanks to StarKelp for reporting.<br />
<br />
== Version 2.128 Don't Lie About Distant Future Waves, AI ==<br />
(Released August 27th, 2020)<br />
<br />
* Fix a bug where the scourge would sometimes suicide into multiple layers of defensive planets in the (foolish) hope of hitting the weak target on the other side.<br />
** This is an intelligence improvement for all factions using fireteams (Hunter, Warden, Nanocaust, Scourge, etc etc).<br />
** Thanks to Crawlers for reporting<br />
<br />
* Add some defensive code to the Fallen Spire.<br />
<br />
* Put in extra logging for the SpeedGroup serialization and deserialization, to figure out where there are occasional exceptions being logged.<br />
** Thanks to TechSY730 for reporting.<br />
<br />
* Sniper Energy Wave on the Dark Spire Eidolon has been renamed to just be Energy Wave, since this is not an infinite-range weapon.<br />
** Thanks to crawlers for reporting.<br />
<br />
* DoForKnownWavesAgainstHumanHomeworlds in WaveUtils has been renamed to DoForKnownWavesAgainstHumanWorlds, which is what is accurate.<br />
<br />
* A whole bunch of extra array indexing calls into QueuedWaves have been made more efficient in the AI HandleWavesForAI() method.<br />
<br />
=== Interface Improvements ===<br />
<br />
* The planet's tooltip has been updated to show the owner on the same line as the planet name, but positioned way over to the right.<br />
** This keeps things pretty condensed, but avoids some clashes of words where it seemed to be saying something like "Permanently Watched Owner:" as one phrase.<br />
<br />
* Previously, there was a chat message going out as soon as a wave was queued, but before it would become visible to the player in the actual interface (based on their chosen galaxy map settings for how much warning to get).<br />
** Now it only shows the actual chat message from the AI as the wave is being revealed to players.<br />
** This also fixes an issue where it was for some reason actually giving the wrong planet name that it was going to attack in some cases, since the announcement came before it finished changing its mind about the real target it wanted to hit.<br />
*** This latter one may have been more common in multiplayer, but it's hard to be sure. At any rate, it just tells you real information now.<br />
<br />
* The second chat message that goes out (with the audio taunt) when waves are launched now also happens when they are revealed, and no longer duplicates when in multiplayer mode.<br />
<br />
=== Mod Compatibility Improvements ===<br />
<br />
* There is a new DoPerSecondNonSimNotificationUpdates_OnBackgroundNonSimThread_NonBlocking() method that gets called on each faction each frame, and which takes in a note which says if it is the first faction of its type this frame or not.<br />
** This lets us move notifications for factions into their own files, which makes notifications modding-compatible.<br />
** There are some other supporting methods that have been added to handle this, but understanding them is not required for using this,.<br />
** It is worth noting that ALL of the existing DoPerSecondNonSimNotificationUpdates_OnBackgroundNonSimThread_NonBlocking() calls do happen in a loop prior to the new DoPerSecondNonSimNotificationUpdates_OnBackgroundNonSimThread_NonBlocking() being called.<br />
** As an interesting side effect, this actually makes it so that notifications will now work for people in spectator mode in multiplayer for the first time.<br />
** The nanocaust data has been moved out of the human file as an example of how to do the others.<br />
*** Same for antagonized dyson spheres, and the dark spire. It would be great to get the other factions moved over to their own files for the sake of cleanliness, but functionally there will be no difference for our things in the main game and expansions now.<br />
** Thanks to StarKelp for requesting the ability to add notifications in mods.<br />
<br />
* Added a new method DoPerSecondLogic_Stage0Clearing_OnMainThreadAndPartOfSim_OncePerFactionTypeEvenForFactionsNotInGame().<br />
** This is called on the GetDefaultImplementationForLobbyOrClearingOnly() from the faction TYPES, which means it happens even for the factions not in a game. Great and easy place to clean up, and we know it happens only once per cycle per faction type, and we also know that it happens even if a faction is not in the current campaign.<br />
** This is useful for factions that had some data in a prior campaign, but the player loaded a new savegame and they are not in this one.<br />
** All of the various data from these that was previously in the Human class and in DoPerSecondLogic_Stage1Clearing_OnMainThreadAndPartOfSim() has been moved to the new stage0 for each of the specific class types, which again is more mod-friendly and should prevent the issue of certain mods being unable to clean themselves up between campaign loads.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* When the host is waiting on a client that is behind, it now shows a message saying which clients are behind and being waited on.<br />
<br />
==== Bugfixing ====<br />
<br />
* The galaxy map spacebox background is no longer serialized into savegames. Instead it is deterministically calculated based on the map seed.<br />
** This makes very little difference for single player, although you will notice that reloading the game or going back and forth to the map, or hitting regenerate map on the lobby no longer changes the space background.<br />
** But for multiplayer, this keeps things consistent between all players.<br />
** For existing savegames, you will notice that the spaceboxes become something new and stay that.<br />
<br />
* It turns out that the planet spaceboxes were not being serialized at all in savegames before, but their rotations were.<br />
** This was leading to very different planet background views in multiplayer, to a very distracting degree.<br />
** This has been made deterministic, and we no longer store even the rotations in savegames.<br />
** For single player there is no real change except that the savegames are a tiny bit smaller.<br />
** For existing savegames, you will notice that the spaceboxes become something new and stay that.<br />
<br />
* Fixed inconsistent sorting between runs of the game (and between differnt clients) for rows in the following tables:<br />
** AIGuardPostAndCommandPlacerTable, FleetDesignTemplateTable, AIShipGroupCategoryTable, and SpaceboxDefinitionTable.<br />
** These led to various MP inconsistencies, including the spaceboxes still being divergent on planets despite the math lining up.<br />
<br />
* Fixed an issue where the home planets of other players in multiplayer games just looked like normal planets instead of homeworlds.<br />
<br />
* There were a bunch of cases where human factions were still named wrong during multiplayer (and differently on the host and client), saying the wrong player's name or Unknown Player in various cases. Fixed all of those.<br />
** Additionally, in the case of multiple players owning a faction, if they did not choose an empire name, it now says all of their names together (but no more than three) as the faction name.<br />
** If there are more than three players controlling a single faction, that gets too wordy, so it just says "and X more".<br />
** When loading the single player games of other players, you will now see their chosen account names (from in AI War 2, not Steam or whatever) instead of your personal profile name.<br />
<br />
==== Seeing Where Other Players (Or Spectators) Are Looking ====<br />
<br />
* The way that the gimbal icons decide which diffuse color to use is now more efficient on the GPU (this is minor, but hey).<br />
<br />
* It is now possible to have a secondary diffuse color for the flair (really used for selection circles now), which is multiplied by the main "other diffuse color" of the icon.<br />
** This lets us do things like change the opacity or color of the selection ring around a ship or planet.<br />
<br />
* When you are viewing a planet, the game's way of showing the selection circle around it is the same as it always has been.<br />
** However, when someone else in multiplayer is viewing a planet other than the one you are viewing, it now shows a dimmer and more-transparent selection circle to show you that someone else is looking there.<br />
** If someone else is looking at the same planet you are looking at, then it will show the normal bright selection circle in a faint green rather than white.<br />
** This is something that is deceptively important, because we need to make sure that we know which planets are "tier 1" planets on clients and the host, which lets us verify that ViewedByPlayerAccounts_DuringGame is being set properly on all machines (it is). This keeps the game in the sync, which we can now tell is working properly.<br />
** But also this is just a helpful indicator for players to help with coordination. ("Check out this planet I am looking at in the northeast" is so much easier to say than trying to direct them to a name).<br />
<br />
* As an added help, in the galaxy map view when you hover over a planet, it tells you which other players are viewing a planet. This may be players in exclusive control of a faction, or one of several player players controlling a faction, or just a spectator, so it shows you their name as it would appear in chat.<br />
** For games with more than two players, this is fairly important for purposes of clarity. In a two player game it's easier to just infer what is going on.<br />
<br />
* When a client is disconnected, other clients and the host can still see what planet that client WAS looking at, and that planet still counts as a Tier 1 planet for processing, but hovering over it will show the name of the player with (Disconnected) behind it on the host.<br />
** Presently clients cannot see the status of other clients.<br />
<br />
==== Disconnection And Re-connection Verified ====<br />
<br />
* We can now verify that after a client disconnects in a disorderly way, the host notices a bit later and then continues on without them (they can choose to pause or not).<br />
** We can FURTHER verify that the client can reconnect to that running game with only a few-seconds interruption to other players who are still going. Even if the client had crashed and had to restart the game or their computer, they are able to get right back in there.<br />
** The original AI War did not remotely have any of these capabilities, but this works on all three networking platforms.<br />
<br />
== 2.127 Cranky AI Exceptions ==<br />
(Released August 26th, 2020)<br />
<br />
'''This was originally released as a beta on the 26th, but then changed to a main branch release on the morning of the 27th.'''<br />
<br />
* The Dark Spire now responds properly to being hacked by being cranky<br />
** Thanks to crawlers for the bug report<br />
<br />
* Fix a bug where the AI was incorrectly combining some Hostile To All factions when spawning extragalactic war units.<br />
** This was leading to more extragalactic war units than one would want.<br />
<br />
=== Exception Fixes ===<br />
<br />
* Added new debugging instrumentation into ImportIntoDynamicTable_XMLDirectory, so that we can find errors that may happen in there from time to time on some machines.<br />
** Also put in some code that should make it load faster for mods and expansions that don't have certain folders.<br />
** Thanks to Ovalcircle for the report of something mysterious in this area on his system.<br />
<br />
* Also expanded the debugging instrumentation on ReadXmlFileIntoBatchProcessingLists, same reason.<br />
** Ditto DoForXmlFolders.<br />
** And finally, ditto ActuallyImportAllOfTheBatchedRows.<br />
** Thanks to Ovalcircle for the report of something mysterious in this area on his system.<br />
<br />
* ArcenXMLElement.GetNewFor has had its debugging instrumentation greatly expanded, and also has been split into one version that expects a data table, and a new GetNewForNonTable variant that does not expect a table.<br />
** The idea here is to catch various forms of errors early.<br />
** This in turn caused a cascade of other changes to other methods needing variants of each other along these same lines, and having better instrumentation.<br />
** Thanks to Ovalcircle for the report of something mysterious in this area on his system.<br />
<br />
* Fixed another rare race condition that could happen with the vis code, this time in SetFormationPositionFromSquad.<br />
** Thanks to NRSirLimbo for reporting.<br />
<br />
* If for whatever reason the game was not able to proeprly write your settings data, it was still overwriting your settings file previously. It will no longer do that.<br />
** Additionally, a lot of extra instrumentation has been put into GameSettting.SerializeGraphicsTo and GameSettting.SerializeTo, so that we will know better what is wrong if it is trying to save improperly. These should also be more resistant to saving incorrectly in the first place.<br />
** Thanks to Isiel for reporting.<br />
<br />
* If a savegame has somehow been made that has a blank savegame in it, then it will try to load it with the info of the current version of the game, with a warning in the log that this may fail very badly.<br />
** Thanks to Isiel for reporting, and providing a save that was probably made while the game was in an invalid state.<br />
<br />
* Fixed a case where trying to load certain saves could fail silently as far as the interface was concerned. Now it actually shows you a proper error message.<br />
** And then fixed a whole bunch of cases where certain code paths on almost-certainly-broken saves would return very genric and unhelpful errors when you tried to load them.<br />
** This doesn't really help us actually load the savegames in question, but tells us more about what is wrong with them.<br />
** Thanks to Isiel for reporting, and providing a save that was probably made while the game was in an invalid state.<br />
<br />
* Suppressed a harmless popup that could happen in ReactToShotHittingSquad during cross-thread race conditions. Now it just fixes the data and moves on.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
== Beta 2.126 Dark Spire, Eyes, and Fixes ==<br />
(Released August 22nd, 2020)<br />
<br />
'''To play this version, please be sure to choose the current_beta branch on Steam. The central game loop changes we made in the prior version did not blow up, but a few other things did, so we're glad we went the beta route. If for some reason this beta has problems but the prior one worked for you, we have temporarily made the most_recent_stable_beta active and pointing to 2.124. But this version should actually be more stable (knock on wood). We'll be back out of beta by mid-week the week of the 23rd.'''<br />
<br />
* Fix a bug with DS Conquest VGs and the new hack<br />
** Thanks to gigastar for reporting<br />
<br />
* Fix a bug with the Full Metal notification<br />
** Thanks to a screenshot from Oval for making me aware of this<br />
<br />
* The AI should now attempt to play voice lines for Exogalactic Strikeforces, and when you spot the Nanocaust.<br />
<br />
* The DS is no longer allowed to spawn Loci on planets with Dark Spire Wards<br />
** Thanks to crawlers for reporting<br />
<br />
* Make the Dark Spire more aggressive about spawning Loci<br />
** Thanks to crawlers for suggesting<br />
<br />
* The player can now choose the starting armory for player-allied scourge<br />
** Thanks to crawlers for suggesting<br />
<br />
* Improve the hovertext for some scourge units just a bit.<br />
<br />
* Fix a bug where new games in the beta weren't starting correctly<br />
** Thanks to Keith and Tynendir for reporting<br />
<br />
* Capturing an AI homeworld no longer generates AIP. This only applies to games creates on 2.125 or above.<br />
** Thanks to GreatYng for suggesting<br />
<br />
* AI Eyes now trigger based on whether you have more Strength on a planet, not off the number of fleets<br />
** This is not necessarily the final state for Eyes, but having them trigger off of 'number of fleets' didn't make any sense anymore. This is a functional stopgap until someone has a better idea<br />
** Thanks to a number of people for discussing, including Flypaste, Asteroid, Democracy, GreatYng and others<br />
<br />
* Fixed typo in multiplayer message.<br />
** Thanks to fwiffoforce for reporting.<br />
<br />
== Beta 2.124 HRF Pacekeeping ==<br />
(Released August 18th, 2020)<br />
<br />
'''To play this version, please be sure to choose the current_beta branch on Steam. If this isn't blowing up in major ways, we'll move it back to the main branch within a few days. If it is blowing up a lot, then it may be into next week before we come back from beta. We changed too many fundamental things with the game loop to just release this with no beta, even though we were careful.'''<br />
<br />
* Minor rework to minor faction hacks. Its now more expensive (in line with the previous hacks). The description no longer mentions an AI response. The DS and Dyson units are now upgradable, but not very much. These are intended to be 'cool little tidbits' but nothing to really swing the game<br />
** Thanks to GreatYng and Lord of Nothing for bug reports and comments<br />
<br />
* Add a 'Full Metal' indicator in the metal bar<br />
** Thanks to Nyarlathotep. Iä! Shub-Niggurath!<br />
<br />
* The hovertext prompt that describes when swapping ship lines will scrap your units has been modified to describe the current behaviour correctly ("Your ships are scrapped if they are loaded, or the flagships are on different planets"). <br />
** Thanks to StrategicSage and Ubifan for reporting<br />
<br />
=== HRF Changes ===<br />
<br />
* The HRF ships now have some unique names.<br />
<br />
* The HRF now create a structure at game start time that you can hack for a new ship line (using the backported DLC2 tech) and for 1K science<br />
<br />
* Fix a longstanding bug where the Human Resistance Fighters would only say their 'defeat' voice lines, not their 'victory' voice lines.<br />
** Thanks to Nyarlathotep. Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn.<br />
<br />
* The HRF should now pack a bigger punch when they arrive, but they are a bit less likely to show up.<br />
<br />
=== Bugfixes And Tweaks ===<br />
<br />
* Some minor improvements to the ability of vulnerable Vengeance Generators to be killed<br />
** Hopefully this helps. Thanks to Lord of Nothing for reporting, and Puffin for suggesting the improvements<br />
<br />
* Better enforce the 'can't repair ImmuneToRepairs' unit interactions. Still a bit weird.<br />
** Thanks to MasterGeese for reporting<br />
<br />
* SerializeByInternalName and SerializeByIndex both now accept FieldName as an optional parameter so that we can see what is happening within them from a serialization logging standpoint.<br />
<br />
* A bunch of extra serialization logging has been added into the world and the faction configuration objects, to make finding errors there easier.<br />
** However, it turns out that there were no public errors on this, just an error in a working copy on one developer machine that had a save from between two updates from that same developer.<br />
<br />
=== Milestone: Multiplayer Pacekeeping Functional ===<br />
<br />
* In the event of a campaign switching which player is the host (this probably means one player manually emailing the game to another), the game now tries to do a better job of handling that.<br />
** In the end this should work fine, but we haven't bothered testing this yet as this is probably kind of an edge case compared to most other things we're working on right now.<br />
<br />
* All of the "frame number" information for sim frames is now just serialized on the network and never to disk.<br />
** This information is really only useful within a single run of a campaign (aka after loading it off disk and playing until you exit to the main menu or the OS).<br />
** Even if you go just back to the main menu and load back into the game directly after, there's no reason not to start those numbers off fresh again.<br />
** We've thus switched to a number format for serializing these that will "only" allow for 160 hours of continuous realtime play in a given campaign, without exits to the main menu. This is the definition of excessive, and could always be changed in the future if it was needed.<br />
<br />
* A variety of variables that really are only for the network, and serialized but not to disk, now have the prefix Network_ so that we can tell those apart with ease.<br />
<br />
* In multiplayer, the basics of "host waiting for clients to catch up" is now in place. This prevents the strange lag that clients were seeing, which was happening because they were back in time.<br />
** However, also in multiplayer, unlike the original AI War, it will not definitely wait around for players who are missing. If those players are not connected, then you can unpause and play without them until they arrive. Only once they are present do you have to wait for them to sync up.<br />
*** If this latter choice turns out to be problematic for some reason, we can always add a toggle for that or change it. But it seems friendly. Chris remembers nights where 1 person out of 4 player game couldn't make it, so just keeping on playing without them would have been so nice versus having to go in and change the status of their account before playing.<br />
<br />
* Various of our "simulation profile" variables that were set a loooong time ago in a different way for multiplayer and single player were making multi-player feel sluggish. We've tightened up this some in order to feel better under a pretty general set of networking conditions.<br />
** We may need to revisit this in the future (during alpha or beta) to make these things that people can configure if they are in a situation of, for instance, high packet loss or extremely high or low pings, to get the best possible experience at any given time.<br />
<br />
* Various other changes have been made in order to make the client send over commands to the host as soon as possible, and then to make sure that the host causes those commadns to be executed on the FIRST simulation frame of the next batch, not the last frame of that next batch.<br />
** All in all, the game now stays in time sync, across Valve's server relays and back, and things are snappy and responsive on both the client and the host. There are moments of delay that cause a brief "waiting" message to flash up for maybe a quarter of a second every so often, but it's really a minor thing and is something that we can improve with tuning in the future.<br />
** The overall functionality is there to the point that if background threads and floating point math were not knocking things out of sync, this would be a perfectly playable alpha. As it stands, it's quite playable for a few minutes at a time, at least on Chris's two test machines, without things becoming noticeably off.<br />
** It's also worth noting that the simulation speed on the host shows up as being something like 80% right after starting the game, which is misleading because it had one very long frame where it was waiting on the client to connect and sync up. That will be fixed in the future, but it self-resolves the visual artifact within something like 20 seconds of starting, anyhow.<br />
<br />
== Version 2.122 Empire Names ==<br />
(Released August 17th, 2020)<br />
<br />
* *Makeshift Drones now once again self-destruct when attacking instead of only self-attritioning slowly.<br />
** Thanks to NR SirLimbo for fixing.<br />
<br />
* The lobby now once again allows for you to zoom in and pan around, since some maps can be larger than you can comfortably see on a single screen.<br />
** However, every time you generate a new map, it will default to showing you the entire map completely zoomed out.<br />
** It also no longer EVER allows edge-panning in the lobby, as just general usage of the lobby will wind up with you accidentally panning the lobby around if that is in place.<br />
** Thanks to CRCGamer for confirming our suspicion that we'd need to do this.<br />
<br />
* Fixed ANOTHER bug with the lines being offset from the planets in the galaxy map, this time when you were zoomed in. The more zoomed in you were, the more off they got.<br />
** This bug was caused by our latest fix to the lines being off when you were zoomed out. Now it should work at all zoom levels. This was an annoying one, to be sure, but we're glad to have it finally lining up all the time.<br />
<br />
* Fix a bug where player-allied scourge weren't building properly<br />
<br />
=== Multiplayer Progress ===<br />
<br />
* Added a new Human Empire Name setting on player factions:<br />
** If left blank, will be the name of the first player controlling this faction. If you want your empire to have a different name than your personal name, you can do that here. If multiple players are sharing a faction, then they can give it a name that represents their shared interest in it.<br />
** This can be edited during the game (like player colors can be), or in the lobby.<br />
<br />
* When a new player joins as a client to a game, it now creates a slot for them and puts them in charge of it instead of them defaulting to spectator mode.<br />
** It assigns their colors properly, and all of that sort of thing, too.<br />
<br />
* Player accounts beyond the first are now removable, which lets players go back into spectator mode, or (later) control a single faction via multiple players helping.<br />
** This makes the default case (everybody has their own faction) set itself up by default, but then lets players back things out into the less-usual cases (shared factions, spectator mode, etc).<br />
<br />
* Players beyond the first are now auto-assigned a starting planet somewhat at random, letting them choose something on their own later.<br />
** A whole lot of logic that was very not-MP-safe is now MP-safe.<br />
<br />
* When loading a savegame or quickstart into the lobby, or loading the last settings for the lobby, it strips out all human players beyond the first.<br />
** This is consistent with it then recreating player accounts as those come in, too.<br />
<br />
== Version 2.121 Savegame Hotfix ==<br />
(Released August 17th, 2020)<br />
<br />
* Fixed a deserialization bug in the prior version that made any games saved with a dyson sphere in them not able to be loaded if they were saved in the prior version.<br />
** The nature of the issue was such that those savegames will now load without issue, thankfully.<br />
** Thanks to Lord Of Nothing, CRCGamer, fatcat__25, GreatYng, Djri123, Djri123, mekolab, and goz for reporting.<br />
<br />
== Version 2.120 Improved Lobby Map Experience ==<br />
(Released August 14th, 2020)<br />
<br />
* Fix a bug where sometimes the AI's ships wouldn't be allowed to retreat<br />
** Thanks to Sigma7 for reporting<br />
<br />
* Hopefully fixed a problem where sometimes allied scourge could kill AI Command Stations immediately after a game load<br />
** Thanks to GreatYng and ZeusAlmighty for reporting<br />
<br />
* Fix a typo with the Spire and Marauder Beacons<br />
** Thanks to Apthorpe and Ovalcircle for reporting<br />
<br />
* Fix a bug where hovering the Hacking resource bar entry would give a negative number during the superterminal hack<br />
** Thanks to GreatYng for reporting<br />
<br />
* Improve the Hacking Resource bar hovertext for the case where you have multiple hackers. Note it still doesn't show hacks against planets.<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* The MDC hovertext no longer mentions Exos<br />
** Thanks to Strategic Sage for reporting<br />
<br />
* Exogalactic Strikeforce speed updates:<br />
** Previously, Exos had travelled at 1800 speed (as of a few patches ago. Before that they didn't have a consistent speed).<br />
** Now Exos travel at "Average speed of their units + 20%" or "800", whichever is higher. This should feel less like they are speed-racing to your homeworld. For speed-context, 800 is the speed of a Parasite.<br />
*** Thanks to GreatYng and Lord of Nothing for discussion<br />
<br />
* Fix a typo in the hovertext for larger numbers of planets <br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Remove a mention of Fleet Exp in a tooltip<br />
** Thanks to Lord of Nothing for reporting.<br />
<br />
* Take safest path through galaxy now uses the modifier key alt, while take shortest path now uses the hotkey ctrl.<br />
** The prior hotkeys of X any Y conflicted with other functions and changed your unit stances or sidebar status, etc.<br />
** Thanks to Sigma7 for reporting.<br />
<br />
=== Ability To Reset Camera View To Default ===<br />
<br />
* New hotkey in the camera section: Reset Camera Rotation And Tilt<br />
** Default ctrl+R.<br />
** Press this button combo to reset the camera's rotation and tilt to the default values.<br />
** Thanks to dv, Ovalcircle, Bobtree, and many others for requesting.<br />
<br />
=== DLC2 Backports ===<br />
<br />
* The Dyson Sphere Golem can now be hacked like an ARS for one of a small selection of Dyson ships. You only can use this hack once.<br />
<br />
* The Dark Spire Vengeance Generators can now be hacked like an ARS as well<br />
<br />
* This is a backport of a DLC2 feature that allows for a minor faction to have a structure which can be hacked like an ARS for unique ships. This is usable by modders with only some XML. <br />
<br />
* Approximate usage: in the minor faction GameEntity XML, for the ARS-equivalent, set the following<br />
** Assign it the HackForShipType tag<br />
** Make it eligible for the HackToGrantShipLine_DontDestroyTarget or HackToGrantShipLine hacks<br />
** Then add the following additional fields<br />
*** grants_stuff_to_be_added_to_player_fleets="true" <br />
*** grants_stuff_to_be_added_to_player_fleets_strikecraft_options="X" <br />
*** grants_stuff_to_be_added_to_player_fleets_frigate_options="Y" <br />
<br />
* Then for the ships you want to have available, set one of these<br />
** <fleet_membership name="AddedToFleet_MinorFaction" ship_cap_group="Strike" weight="100" min="30" max="35" faction="factionName"/> <br />
** <fleet_membership name="AddedToFleet_MinorFaction" ship_cap_group="Frigate" weight="100" min="1" max="1" faction="factionName"/><br />
*** Note the FactionName in the fleet_membership must match the name of the faction (I believe it checks the TracingName for the faction, which is set in C#)<br />
<br />
=== Dark Spire Improvements ===<br />
<br />
* There's now a preliminary Journal Entry for the Dark Spire when you first see them.<br />
<br />
* There's now a Journal Entry for when the Dark Spire enter conquest mode (ie from the Fallen Spire campaign).<br />
** This explains what Conquest Mode is, and it's much harder to miss.<br />
<br />
* The tooltip for the Locus now prints different text in Conquest Mode.<br />
<br />
* Thanks to crawlers for the bug report that prompted these enhancements<br />
<br />
=== Galaxy Map And Camera Display Work, Lobby Map Overhaul ===<br />
<br />
* The galaxy object now has a a FindSpatialCenterOfGalaxyInGalaxyCoordinates() method, which lets us find the center point of the galaxy based on however the planets were seeded.<br />
** Also added FindSpatialBoundariesOfGalaxyInGalaxyCoordinates() to let us find the overall bounds easily.<br />
** But actually we're going to not bother using this, turns out.<br />
<br />
* We were also working on a CenterGalaxyOnAllPlanets() method, but we've abandoned that for a different approach. The code is mostly complete and left in for now so that we can revisit it if we find a use for it.<br />
<br />
* The old-style cameras have been disabled for a long time (years) in xml, but we've now removed them from the code as well.<br />
<br />
* Added extensions GetWorldSpaceBottomLeftCorner and GetWorldSpaceTopRightCorner for UI RectTransforms.<br />
** The chat window in the right hand side of the lobby in multiplayer now uses this and a world space to camera transform to calculate its ScreenSpaceLeft, which lets us, regardless of your screen resolution, DPI, aspect ratio, or custom settings in this game itself, figure out where the UI ends and avoid underlappig it.<br />
** Same thing with a ScreenSpaceRight on the map tab left sidebar.<br />
** Same with ScreenSpaceTop on the footer controls, and ScreenSpaceBottom on the header controls.<br />
<br />
* For the galaxy map camera, the zoom now lets you go out farther in the lobby, and even farther in the multi-player lobby, so that it can always fit the map entirely in the main view screen.<br />
** Tested this with the game at 900px wide, 1800px wide, and 2560 pixels wide. In all cases we now come out with a consistent result.<br />
<br />
* Fixed up a bit of logic for the dynamic zoom for resolutions smaller than 1200px x 900px.<br />
<br />
* In the lobby, the galaxy map camera no longer responds to mouse or keyboard input at all. This is an overhaul that has been requested for years and years.<br />
** Now the lobby always has the map as zoomed out as it can.<br />
** It is also centered in whatever the available space is (depending on if the right-hand sidebar is there or not, that may or may not be centered on the actual screen).<br />
** This is extraordinarily useful, in that it lets you cycle through maps with ease, and there is typically not too much detail that you need to see in them like you would during an actual game.<br />
<br />
* The math for how much the galaxy camera should be able to zoom out has been entirely re-coded from scratch, and is now vastly more efficient as well as something we can actually follow.<br />
** Instead of taking something like a thousand loops to get a kinda-bad answer, it now takes typically under 60 loops (often under 20) to get a highly accurate answer.<br />
<br />
* In the galaxy map display calculations, and number of strange magic numbers were removed, now that we have the proper math in here. Wow this was unexpectedly hard.<br />
<br />
* At very long distance zooms, the planets were STILL being visually offset from their lines that they were above, it turns out.<br />
** This had to do with how we were offsetting the icons in order to avoid z-fighting, and how that was getting magnified by us scaling up the planets at further zoom distances.<br />
** The fix for this might introduced some z fighting, but probably will not because of the way that we are rendering these as "cutout" style transparency, and with GPU instancing determining the order of draw.<br />
<br />
* In the lobby, the planet you own is no longer ringed in white selection, as the in-game "planet you are on" is done. Now it just shows the planet color, plain and simple.<br />
<br />
* In the lobby, if you have the setting "always show planet names" on, it still won't do that, because that will make the fixed-size galaxy map potentially impossible to read.<br />
<br />
* The galaxy map in general shows planet names that are un-owned as being far less blinding white in their text.<br />
<br />
* In the lobby, it no longer shows the first owning player name under the name of the planet.<br />
<br />
* The visual scale of the actual planet spheres in the lobby is now about a two thirds what it previously was, but the text is almost as large as it was before. If the text is too small, we can adjust it up.<br />
<br />
* In the lobby, hovering over a galaxy map link no longer highlights the two planets adjacent to it, since that is visually confusing in that context only.<br />
<br />
* Added ShowTooltipNarrow() and ShowTooltipWide() to the IPresentationLayer and IBattlefieldHandler, so that we can trigger tooltips super-directly from deeper-in code.<br />
<br />
* In the lobby, hovering over planets now makes it show a tooltip at the mouse cursor that says the name of the planet (since that might be obscured by being very near the top of the screen, now), but also some other information.<br />
** It says how many wormholes there are, and gives a comment if that will be extra hard to defend.<br />
** It also shows the name of any human players who are going to have that as their starting planet, in their appropriate colors based on their faction color.<br />
** There was some funky stuff in the hover logic for the galaxy map that made this super difficult.<br />
<br />
* Fixed a funky bug relating to tooltips that were showing the same text as before, but had themselves cleared and then wouldn't keep showing the text anymore until it was given different text.<br />
** The first time this ever manifested was in giving tooltips on the lobby galaxy map, but it's an old old bug.<br />
<br />
* Fixed an issue in the lobby where it was not showing the names of planets automatically for planets owned by players other than yourself.<br />
<br />
* The map types list in the lobby has always been kind of randomly organized, which was annoying. More recently, it has been in a different order every time you start the game.<br />
** Now it is in the order Realistic, Simple, and then all the others alphabetically.<br />
<br />
* Fixed a bug when loading directly into the game and not visiting the lobby where it did not set the dynamic zoom properly in the last few internal builds.<br />
<br />
* Also fixed a boneheaded typo in the very most recent internal versions that was making the height of the dynamic zoom calculation slightly off.<br />
** There is still something a bit off with the squares map type and how it displays in the lobby (it is offset upwards and also shown too small), but all the other map types work and so this seems to be some sort of data issue with that map type and not a problem with our central algorithm.<br />
<br />
== Version 2.117 Ion Cannons And Melee Units ==<br />
(Released August 11th, 2020)<br />
<br />
=== Balance Work ===<br />
<br />
* Ion Cannon Shots can now:<br />
** Damage both the personal shields and hull of a target in one shot (including killing it outright).<br />
** Kill multiple ships in the same stack in one shot.<br />
** Thanks to GreatYng for pointing out the oddity of Ion Cannons not being able to do these things.<br />
<br />
* AOE shots can now hit any enemy bubble shield overlapping the explosion, rather than only being able to hit the shield if the generator (or something it's protecting) were physically within the explosion.<br />
** Thanks to NRSirLimbo for reporting and RocketAssistedPuffin for the save.<br />
<br />
* Crippled units (i.e. player flagships) can now pass through enemy bubble shields and traverse wormholes covered by them, to avoid being stranded in hostile territory.<br />
** Thanks to tadrinth for reporting and RocketAssistedPuffin for the save.<br />
<br />
* Melee units in attack-move mode will now go after units within a limited range (equivalent to a weapon with range=Normal1), so you have a middle-ground between "only attack your direct target or things actually touching you" and "pursue anything on the planet".<br />
** Also, even when not in attack-move mode, player melee units without orders (and not in hold-fire mode) now automatically move to attack nearby targets. If all such targets die or move away, the melee unit goes back to where it was.<br />
** Thanks to OzoneGrif, wm46, RocketAssistedPuffin, and Ubifan for the suggestions and saves leading to this change.<br />
<br />
* Fixed a bug where deathgrip tackle drones had a gun that could shoot immobile targets, greatly confusing their logic. That gun now has the only_targets_mobile_units flag.<br />
** Also fixed a bug where tackle-drone-launchers could give their spawned drones a direct attack order to go after an immobile unit.<br />
** Thanks to tadrinth and RocketAssistedPuffin for the reports leading to these discoveries.<br />
<br />
=== Bugfixes ===<br />
<br />
* Scourge: fix a bug where player-allied scourge were building tons of Builders but no Fortresses (they were mistakenly thinking they were minor faction allied)<br />
** A number of people on discord noticed the lack of Fortresses<br />
<br />
* Potentially fix a bug where Regenerator Golems were regenerating things while crippled<br />
** Thanks to crawlers for reporting.<br />
<br />
* AI Reserves now will create anti-player zombies.<br />
<br />
* Take another stab at 'adjacent planets watched'. Sigh.<br />
<br />
* Fixed an issue where on computers without GOG Galaxy installed, they would get a harmless-but-annoying error message at game startup.<br />
** Thanks to Badger for reporting.<br />
<br />
* Minor tweak to target list planning; use a case insensitive comparison for zombification.<br />
<br />
* The 'total units' count should now include stacks.<br />
<br />
* The AI "Great-Turrets" are now simply called "Turrets" again, as at this point balance-wise the player turrets and AI turrets are similar.<br />
** Thanks to GreatYng and RocketAssistedPuffin for bringing this to our attention.<br />
<br />
* Exogalactic War Units now use a better spawn-in message than before<br />
** Thanks to zeusalmighty for reporting<br />
<br />
* Fix a problem with the Custodian description text<br />
** Thanks to GreatYng for reporting<br />
<br />
* The semicolon was previously not supported by our chat log format (our "condensed ascii"), but now is.<br />
** Thanks to Badger and Sigma7 for reporting.<br />
<br />
=== Multiplayer And Lobby Work ===<br />
<br />
* Heartbeat messages from the client to the server and vice-versa are now omitted from all of the networking logs. They were making things far too cluttered for us to be able to see real information when we had network logging of various detail levels turned on.<br />
<br />
* Some excessive logging on GOG and Steam with regard to their send result statuses has been removed, as again this was clogging up our network logs.<br />
<br />
* The clients now have a secondary FromClientToServer_SignalDoneButHasNoCommands that they can send in place of the FromClientToServer_SendMyNextCommandBatch when they don't have any commands to send (which is most of the time, statistically).<br />
<br />
* GameSpecificNetworking now has a DoPerFrameLogic() method, which lets us efficiently set some per-game settings like we do for the arcen debugging stuff.<br />
<br />
* New setting in the Network section of the settings menu: Network Logging Includes Frame Auths.<br />
** In the lobby and during gameplay, there are messages sent by the network every 100ms or so to keep themselves in sync, and if you have them included they will tend to crowd out the rest of the messages that are sent. So by default these are disabled.<br />
<br />
* New setting in the Network section of the settings menu: Network Logging Includes Command Batches.<br />
** In the lobby and during gameplay, there are messages sent by the network as frequently as every 100ms, but more often some sporadic multiple of that. This is how factions tell everyone what they want their ships to do, and how human players say the same. There's very little that we can say about this in a meaninful way in the networking log level, and again this will tend to crowd out the other messages that happen. So by default these are disabled, but bear in mind that most things that players actually cause to happen are being caused through these batch messages.<br />
<br />
* Found and fixed a general issue where the player accounts were not properly being cleared (and fully resetting the player account IDs) during all cases where a game is loaded into the lobby. At a bare minimum, it was affecting the "open a custom game with my last settings."<br />
** That would have eventually led to out of bounds exceptions, over time, and in general was cluttering up some areas important for multiplayer, but it had not had a negative impact on anyone so far.<br />
<br />
* Fixed a bug that was causing all sorts of craziness on clients in multiplayer in the lobby, with them not getting their galaxies full cleared.<br />
** This was leading to things not being properly in sync between the client and host, like planet names or locations, and things like extra planets or planets in old locations, or noninteractive planets at a whole other scale visually from the real planets. It was quite messy! All of that is now corrected, thankfully.<br />
<br />
* In the lobby, when you change the number of human factions, it now regenerates the map immediately. For other factions it does not bother, never has, because there's nothing different to see at this point in the galaxy.<br />
<br />
* The WorldSetup objects now have a readonly SetupTypeName on themselves, so that we can tell what they are.<br />
** ChangedSinceLastMapGenCall on this same object is now a property, which lets us throw out debugging messages when it is being triggered for whatever reason.<br />
** Something has been causing extra calls to be sent through the map generation pipeline in a redundant fashion that makes everything slower than it needs to be.<br />
<br />
* Removed the ability to send a WorldSetup object via GameCommand, as that is actually highly antithetical to the way we edit that data as of the last year and a half or so.<br />
** We specifically try never to adjust the entire thing, because several players at once could be editing different parts of it and we want those bits to all merge at once.<br />
** Got rid of the SetupOnly_ChangeSetup GameCommand, which was set to use this sort of thing.<br />
** Got rid of the LobbyWorking_HasBeenChangedAndShouldTransmitChanges() method on WorldSetup, which was being used by a loop in the footer to keep clients up to date.<br />
*** The problem with this is that this was far older code, back from perhaps 2017, and it was using an older and more sledgehammer-y approach to try to keep clients and the host in sync. When the lobby was redone in 2019, this became obsolete but was still hanging around and so caused some nontrivial chaos.<br />
** LobbyWorking_HasBeenChanged() has also been removed, as it seemed duplicative and was no longer in use perhaps?<br />
*** Oh goodness, this was actually how we were ever updating the long-term stored version of the game (as opposed to the lobby working copy). This was not a good way to do it, but it was not quite as antiquated as we thought.<br />
<br />
* Fixed a rare nullref exception that could happen in the ships sidebar if you were not properly on an actual planet.<br />
<br />
* Fixed an issue from the last few months (probably) where if you had an error during map generation, it would still try to dump you into the world and then give you tons of other errors. It should have been stopping you and making you fix whatever was wrong.<br />
** This is most common when there are not enough planets for all the factions you have chosen, or a few other rare cases. One such case is just discovered internally, and that's you having a planet starting index that is higher than the number of planets currently in the world.<br />
<br />
* Helper_AssignHumanHomeworld() and the AI variant are now Helper_TryAssignHumanHomeworld() and an AI variant.<br />
** It was already quite possible for these to fail if the player had selected something invalid, such as previously having clicked a planet with an index above 40 and then choosing a map size of 40 planets.<br />
<br />
* The game now auto-assigns humans a planet that is valid if they don't have a valid option, and it does so in a multiplayer-compatible fashion.<br />
** Previously this tried to do the assignment, but did not do so in a way that worked, and even if it had worked it would have only worked for one player.<br />
** This also includes a new sub-gamecommand, StartingIndex_FromAutoAssignInMapgen, which efficiently lets the UI know what is happening without triggering an extra map generation cycle or accidentally overriding a distinct change made by the player.<br />
<br />
* The lobby is now substantially more responsive even in single player, although it seems to be having some extra calls that we are still hunting down.<br />
<br />
* Fixed an annoying issue that was causing an extra regeneration of the map to happen when you first went into the lobby in single player or as the host, leading to the lobby load time being half a second or so longer than it should have been.<br />
<br />
* Fixed an issue where if one person in the lobby adjusted the following fields, it would not be reflected for the other players in the GUI (but would in the map itself):<br />
** Planet naming style.<br />
** Map type.<br />
** All of the other map sidebar controls were showing things properly and also able to be controlled from any client or the host.<br />
*** Do bear in mind that if you manually enter a map seed, it won't appear for the other players until you hit "Regenerate Map," but given that does not actually affect the map until that button is pressed, this should not be overly surprising.<br />
** All of the faction controls and their sub-controls have been workign properly from the start, and still seem to be.<br />
** Same thing with the galaxy option controls (all of them), which is pretty exciting.<br />
<br />
* The "Campaign Name" is something that is only for savegame management, and thus is only relevant on the host side. The clients now see "Will be set by host" as the text in that box, and cannot change it.<br />
<br />
* The "Start Game" button is also something that we are limiting to be host-only, for a variety of reasons. The biggest is that they need to set a campaign name, but that's entirely host-side.<br />
** Clients clicking this button now get a message that asks them to wait for the host to do it.<br />
** Actually, for the sake of ease of use, the "Reset To Defaults" button and this one are just hidden on clients in multiplayer. Clicking Reset to Defaults on a client results in an error for a lot of good reasons based on how it is trying to accomplish that.<br />
<br />
* All of the lobby controls now seem to work properly for both the host and client. There are still some things in chat that are messed up, and we're missing controls for making clients not always be spectators, but we can also get into the game.<br />
<br />
* Fixed the harmless but annoying "StartingIndexChanges: factionIndex 1 passed when faction count was 0" error message that would happen on clients after a host gave orders to start.<br />
<br />
* The campaign name and its textbox is now just plain invisible for clients in a multiplayer game, again to avoid confusion.<br />
<br />
* The right-hand sidebar in the lobby in multiplayer is now split into two scrolling parts.<br />
** The top part has information about the connected players and the factions that they are a part of, and never auto-scrolls around.<br />
** The bottom one has the actual chat messages, and auto-scrolls to the bottom when new messages come in.<br />
** The fonts of both are a bit smaller, from size 12 down to 10.<br />
<br />
* From past changes, we can now verify that the proper name shows up for clients on the host, instead of it just saying "Player 2" for them.<br />
** However, text messages from the client in the lobby show up with the color of the client but the name of the host?<br />
<br />
* Hitting enter while in the chat textbox in the lobby now actually sends the chat properly, as already worked in the main game.<br />
<br />
* In the multiplayer lobby, the top panel now shows the status of the various PlayerAccounts that are in a game. Specifically it shows any who are connected or disconnected, or which ones are you, etc.<br />
** It also shows players that have an account in this game at the moment, but who are absent.<br />
<br />
* Fixed a bug where player accounts were being created with the name of the host, not the connecting client, which was confusing all sorts of things.<br />
<br />
* The preferred colors from the player profile on each local machine is now sent over and applied to their player account for later reference. This was also causing endless new player accounts to be created, since there was never a match to the connecting client.<br />
** A variety of pieces of code had to be updated to support this.<br />
** Apart from them selecting a color for their faction, this gives them a chosen color in text chat.<br />
<br />
* Added a new OnEndEdit() event for text input boxes, which lets us trigger things when a player clicks out of a textbox.<br />
** This now happens for the map seed in the galaxy map, same as with hitting enter, as both now trigger an immediate regeneration of the map (without you having to hit regenerate map manually).<br />
<br />
* Faction colors for player factions now come from the network data rather than just the local data, which is important for multiplayer.<br />
<br />
* Fixed the bugs with lobby chat messages not appearing properly on the client and host in various ways.<br />
<br />
== Version 2.116 GOG Networking Done ==<br />
(Released August 6th, 2020)<br />
<br />
* Fix a bug where the 'Watch Extra Hops Worth Of Planets' code was being applied incorrectly<br />
** Thanks to Tynendir for reporting.<br />
<br />
* Fixed a bug where Macrophage Spores don't move to new planets when loading a second save game.<br />
** Thanks to GreatYng for reporting, and StarKelp for fixing.<br />
<br />
=== Milestone: GOG Galaxy Networking Integration Complete! ===<br />
<br />
* The Arcen GOG Wrapper has been majorly updated to get your GOG Galaxy Friends list and the status of them so that you can play multiplayer with them if you want to.<br />
<br />
* When you are in the GOG networking mode, it now shows the list of your friends, just like it does for Steam.<br />
** Basically all of the functionality is identical here, in terms of how it shows those who are online, offline, and in-game, and lets you filter between them, etc.<br />
** The one difference is that in Steam we show the "in this same game" status as a light green (like Steam does), and in the GOG version we show that status in a purple color (to match their color theme).<br />
<br />
* The host computer now is able to open up a lobby for friends when it says "open server."<br />
** This works with all the various NAT punchthrough that GOG Galaxy supports, which we are not entirely clear on the details of. This may be as robust as Steam, or slightly less so, but we honestly have no idea. We'll be interested to hear from you! But either way, it's out of our hands at that point, so it's just information gathering.<br />
** The host is also now properly destroying the lobby when it shuts down, so that others won't try to connect to it and not see it.<br />
<br />
* When clicking the Join menu in GOG, the client now sees lists of their friends with four categories instead of just three.<br />
** Friends who are in-game but not in a lobby right now are showed in a dull light purple. Friends who are in game and have an open lobby show up with a bright purple status.<br />
** You can also cycle through all friends, open lobbies, friends in this game, and online friends.<br />
<br />
* In the listing of connections, for GOG it now shows a button that says "closed" instead of "connect" next to each friend who does not have an open lobby.<br />
** With Steam, someone could be in offline status but still let you connect to them. With GOG, we have to have a lobby ID to connect to, so there's no way to hide that and still even attempt a connection to someone.<br />
<br />
* GOG clients are now able to search for lobbies and correlate those to their friends list, which under the hood is a several-step process.<br />
** We are filtering out any potential rogue lobbies created by bad actors, and correlating them specifically to those owned by your friends.<br />
** It's possible that a friend might jump from the status of being offline (prior to opening the lobby) to showing up as someone you can connect to (when they open the lobby), actually, so potentially this actually does allow for the same sort of quasi-stealth game connections that people can do using Steam.<br />
** That said, since lobbies have to be advertised (to your friends) and we can't have a client just blindly try connecting by userID like in Steam, if you open a lobby and your other friends are actively in GOG looking to join a game of AI War 2, they would see that. Not a big thing, probably, but it's something we've noticed about the nature of these two differing systems.<br />
** You may find yourself having to hit refresh a few times on the client side in GOG, as there is a few seconds of lag before the lobby that the host creates shows up. It seems to be under 4 seconds at the most in current tests.<br />
<br />
* GOG clients can now actually initiate connections to a host lobby. And it works!<br />
** The client is aware of getting into the lobby, although it takes a few seconds.<br />
** The client also does gracefully tell them that they are leaving the lobby, and the GOG servers and the host are both finding out about that properly.<br />
<br />
* The GOG Galaxy networking client is absolutely fully implemented, now!<br />
** A huge amount of the actual send/read logic was able to be pretty much identical to Steam, which was not super far off from what we did with LiteNetLib.<br />
** Pro tip: if any other developer is ever wondering about SendP2P messages on the GOG network, those can take any size, not just stuff under 1200 bytes. It handles all of the fragmentation and recombination extremely well, and just as fast as Steam or other services.<br />
** The initial connection process to a lobby with GOG is a bit slower from North Carolina in the US than what we are seeing to Steam, ranging from 4-6 seconds on the first creation of a lobby on the run of a game to 2 seconds for ones after that. But once the connection is established and brokered, it's easily as responsive for us as Steam.<br />
** For us, this is routing through the internet and some firewalls, so the NAT punchthrough or relay servers or whatever it is in this case seem to be doing their job. We certainly did not mess with any ports.<br />
** Because of the nature of how data is read in from the buffers in GOG, we actually were able to get slightly more efficiency and speed with how we manage the heap compared to Steam or LiteNetLib. It's probably not usually a huge advantage, but it is something that we appreciate the efficiency of.<br />
** Essentially all three of the networking options have their own pros and cons a bit, but are all extremely good. That's a real relief to see, and to see them all working.<br />
** At this point it is now down to making the game networking actually work properly to have the game run, and that's a networking-framework-agnostic process.<br />
*** In a lot of respects it feels like after a large move of house, where all our stuff is now out of the old house and into the new house, but we still have a lot of unpacking and arranging to do. It still feels excellent to be done with the movers and have everything in one location now.<br />
<br />
=== More Multiplayer Work ===<br />
<br />
* Removed some old and unused code that is from the Valley Without Wind versions of multiplayer, checking for disconnections due to inactivity. We are handling that at a lower level, now.<br />
<br />
* Got rid of some old code that was mainly in the older version of our engine pre-Raptor, which was checking for "pthread exceptions" that was never something that could happen in the newer engine that we've replaced it with.<br />
<br />
* The game now has some self-checking code in there for giving us some actual feedback when it decides that it can't run the simulation or show visuals for more than 3 seconds at a time.<br />
** This is a pretty rare case, but it was the "too many changes and the client machine goes to black screen and unresponsive" issue.<br />
** This may have fixed the issue, although there also seemed to be another issue that was related to this.<br />
<br />
* Took out some other unused and old data.<br />
<br />
* The "UseSeed" command in the lobby no longer triggers the gamesettings to be saved. That was not useful, and slowed it down for no good reason.<br />
** It turns out that this was blanking out the settings data in a strange way a lot of the time, and causing the black and white view of the game after you reloaded. It also was apparently directly the cause (somehow) of the infinite black screen on the client after this was triggered.<br />
<br />
* Put in a lot of extra error handling for the steamworks networking in particular in case it has internal exceptions while trying to send something.<br />
<br />
* The cumulative effect of a lot of these changes has basically fixed a ton of issues in the lobby, including:<br />
** Clients not being able to use certain buttons or dropdowns.<br />
** Certain dropdowns not showing the right values to clients.<br />
** The client and the host getting a different view of things after certain buttons or dropdowns were used.<br />
** For a while there I was thinking that I was maybe going to need to make some of the controls for the lobby host-only, but now that's definitely not the case!<br />
<br />
== Version 2.115 Imperial Summons ==<br />
(Released August 4th, 2020)<br />
<br />
* You can now have multiple copies of the Devourer and Zenith Trader in a game<br />
** There's no technical reason for this limitation, and we're encouraging Zenith stuff because of the coming Onslaught<br />
<br />
* Quickstarts are sorted alphabetically again, instead of when the quickstart was created<br />
** Thanks to ArnaudB for the bug report<br />
<br />
* Add some defensive code to the Dyson Sphere<br />
** Thanks to GreatYng for reporting.<br />
<br />
* Fixed a cross-threading nullref exception that could happen during unit unselection (probably due to it dying).<br />
** Thanks to GreatYng for reporting.<br />
<br />
=== Imperial Fleet Summoning Changes ===<br />
<br />
* The AI now generates some weaker bonus exos against miscellaneous player targets (energy producers, MDCs, GCAs, etc), just to keep things exciting.<br />
* Fix a bug where Exos were trickling into their targets instead of moving as groups.<br />
* Start the Exos the moment you finish the hack, instead of some random time < 30 seconds from when the transceiver finishes.<br />
** Blame MasterGeese for these changes<br />
<br />
=== Multiplayer And General Lobby Work ===<br />
<br />
* The "partial map generation" code for giving a preview in the lobby now does even less work, bringing our mapgen times down to 200ms or so on average.<br />
** Because of this, we've also moved the mapgen code during partial-map-generation onto the main thread, to keep things as fast as possible. The full map generation still happens on a dedicated background thread.<br />
<br />
* During the lobby, the way that we handle the execution frame loops is now entirely new, and basically skips over a lot of things that were artificially introducing lag.<br />
** This makes the lobby perform far better in general, and also makes the map generation times absolutely flyyyy compared to what they were before, on single or multiple player maps.<br />
<br />
* This is leading to a number of substantial bugs in the lobby, temporarily, but will make the lobby performance far superior in both singleplayer and multiplayer as we get those resolved.<br />
<br />
* The silent "generate partial map" or "generate full map" complete messages now tells you how long it took.<br />
<br />
* The way that mapgen works, it now has a couple of different contexts that it passes in, so that each one has its own random number generator that is not dependent on the others.<br />
** This lets us ensure that there is consistency between runs of the same code on different machines, and on the detailed version (for play) and the non-detailed version (for viewing in the lobby).<br />
** This is largely solving the issue that we just have started having in this latest round of internal builds with a difference in the final map and the original map.<br />
<br />
* Renamed the Generate() method on map generators to GenerateMapStructureOnly() to be more clear, and also make our code more eaily searchable.<br />
<br />
* Adding a planet to a galaxy no longer requires passing in a context object at all. It now generates its own internal random number generator for its initial variables based on the galaxy map seed, its index, and its original position.<br />
** One of the side effects of this is that now when you change which planet you want to be your starting planet, it will keep the name the same instead of shuffling them around.<br />
** This sort of name-stability has actually never been in this game before, and always was mildly annoying. But in multiplayer lobbies it was going to be even more annoying. "I'll take Adam." "Okay, sure." "Well, I clicked it and now it is called Brian, but that's the one I meant." "Wait, what?"<br />
<br />
* When you are loading a savegame or a quick start as a template into the lobby, it now immediately regenerates the map rather than using the old map, because it's highly likely that the new structure will be different in some fashion.<br />
** This then also solves the problem of clients being different from the host on first connect, probably; that was kind of a compound problem in general.<br />
<br />
* Fixed an order of operations issue that could lead to the occasional "No human players found to seed homeworlds for!" error in the lobby in general, but more recently in multiplayer more frequently.<br />
<br />
* Possibly fixed the issue with later player accounts in multiplayer being renamed incorrectly to "player 2" and such.<br />
** There is still a fair bit of duplicate data happening between data structures, and some lobby/startup code that is blatantly single-player-specific that we need to get sorted out.<br />
<br />
* Dramatically cut down the time it takes to generate planet random seeds, but still with keeping them consistent as you click around the galaxy, by pre-generating the random seeds as the first 300 calls to the "broad random" for the galaxy. Any seeds needed after that will be generated the slow-but-unique way. This means mainly things like nomad planets or other things that are late additions. When just adding a planet or two, it's not so slow as to be a problem.<br />
<br />
* Until now, if you loaded an existing savegame it would automatically put you in control of the first player account, even if your profile name did not match.<br />
** It now continues to do that when you are loading as a single player game, which is enormously helpful for testing and just in general, really. But in multiplayer, it now tells you a list of what the available profiles are, <br />
** In general, if you are loading something as a template, it now clears all the old player account data and loads in your own current name as the new first player account (and further players are already added properly as they connect).<br />
<br />
* Fixed up the way that planets are shown as colored in the lobby galaxy map, so that it will work well with multiplayer and also with the new faster single-player-generated stuff.<br />
<br />
* Improved the logic for it properly setting you to be viewing the new planet you've selected after you make a selection in the lobby. Another thing that did work, but with the revised logic had to be made to work all over again.<br />
** This concludes the fixes to all the known bugs that we are aware of that we've introduced into the lobby today.<br />
<br />
* Fixed another nullref that was happening only on the multiplayer custom games after today's changes.<br />
<br />
== Version 2.113 Dyson Growth ==<br />
(Released August 3rd, 2020)<br />
<br />
* Fix a null reference exception if the game wants to spawn a Relic but you own basically every explored planet<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fix a bug with Dyson Sphere units not marking up<br />
** Thanks to GreatYng for reporting<br />
<br />
* Fix a typo in a Battlestation description<br />
** Thanks to ovalcircle for reporting<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed one oversight that was causing the factions tab chat to not show its chat text properly, unlike map and options in the lobby.<br />
<br />
* As text messages come in inside the lobby, it now scrolls to the bottom of the chat window, as you would expect.<br />
<br />
* The maximum length of chat messages in the lobby is now 1000 characters.<br />
<br />
* GetLocalPlayerFaction() is now GetLocalPlayerFactionOrNull(), to support spectator players.<br />
** Additionally GetFirstPlayerFactionOrNull() has been added, and GetIsFriendlyToLocalFaction() and GetIsHostileToLocalFaction() have been updated to work based on that in order to extend support for spectators even further.<br />
<br />
* Planet visibility is no longer determined from your local faction (since for spectators that might be null, and for all humans it is identical anyhow). It now just uses GetFirstPlayerFactionOrNull(), since that's slightly more effient and supports spectators.<br />
<br />
* Huge areas of the AI have been updated to allow for spectators, generally giving them information that mirrors that of what the first player is seeing (objectives-wise and so on).<br />
** In other areas, it simply updates things to not erorr out when you hit hotkeys, etc.<br />
** Spectators also can't run "cmd" messages from chat; it will just show the text as if it were not a command.<br />
<br />
* GetLocalPlayerFaction() on the planet object has been removed, as that did some risky caching for multiplayer in general, and also was not really compatible with spectators.<br />
<br />
* Fixed a couple of errors where non-sim-but-background-fation-AI code was referring to the local player faction. It now refers to the first player faction.<br />
** Probably this would not have made much difference, unless the game switched hosts partway through or something like that.<br />
<br />
* The chat controls in the lobby now work, though there are some bugs in them still.<br />
<br />
* The correct name for each player faction now shows up for even for players who are in spectator mode.<br />
<br />
* Player factions in spectator mode now see in the lobby chat area that they are in spectator mode.<br />
<br />
* Both the lobby chat and main game chat now support more characters in their text -- basically anything that our "condensed" ascii format is allowed to display.<br />
<br />
== Version 2.112 Steam Networking Complete ==<br />
(Released July 31st, 2020)<br />
<br />
* The description of the Ensnarer Battlestation now explicitly mentions that it can use AI Great-Turrets<br />
** A number of people have reported this as a bug over the years, so hopefully that won't happen anymore<br />
<br />
* All of the Fallen Spire ships, including those in the Spire Railgun Shop optional mod, have had their health and shields doubled, but their firepower halved.<br />
** This should make battles with other mega-units last longer, which feels more appropriate, but keep their "damage over time" the same. <br />
** When these were going toe to toe with the AI Exogalactic War Front units, they seemed to disappear too quickly, making them feel weak. This should keep their effectiveness the same as before, but make the battles take about twice as long with those large ships, so that it doesn't feel like instant evaporation at least.<br />
** The one unit not adjusted is the Spire SuperDreadnought from the Spire Railgun Shop mod. That was already maxed out as a "kills everything and is basically invincible" sort of ship.<br />
** Thanks to a variety of players for weighing in on the feel of these units, and Badger for suggesting this adjustment.<br />
<br />
* Rather than having a slider for the number of planets in the galaxy map view, there is now a dropdown.<br />
** This prevents the intense "regenerate map spam" and lag that was inherent in using a slider, along with making it easier to choose a certain number of planets.<br />
** We have made it so that it only gives you multiples of 2 below 60, multiples of 5 below 100, and multiples of 10 above that. This makes it easier to quickly peruse the range.<br />
** Each entry has some commentary on what it will mean to the feel of the map if you are hovering over it in the dropdown with the number of planets expanded.<br />
** Actually, it wasn't even regenerating the map after you changed the number of planets, which was really confusing! You had to hit regenerate map. Now there is no confusion.<br />
** All of this is easier to use as a player in general, on top of being something that is easier to deal with in multiplayer for sync purposes, too.<br />
<br />
* Fixed a longstanding bug where dropdown selections that were open could persist when leaving the lobby or changing tabs within the lobby.<br />
** Thanks to MaverickPenkenn for reporting.<br />
<br />
=== Milestone: Steam Networking Integration Complete ===<br />
<br />
* Fixed an issue where multiplayer clients disconnecting from a host would try and fail to save the last settings from the lobby. Now it does not save the lobby settings from a session you are just a client of.<br />
<br />
* All of the networking frameworks have had their "send to anyone here and myself" code consolidated into the network authority, so when an interface is partially implemented it won't wind up stalling out waiting on the host.<br />
** Less code duplication is also always good, but it wasn't clear that this was a complete commonality until we got partway into the Steam framework implementation.<br />
<br />
* A new ArcenSteamClientConnection wrapper has been created to keep track of the Steam connection on servers.<br />
** This now properly is registered while the steam connection is alive, and all of the "waiting for player to connect" and "player disconnection" events now happen properly.<br />
** For some reason, we are not getting the "host has accepted you" callbacks on the client end, but that doesn't really matter. As we start actually having our challenge-response data sent via the higher-level networking code, that bit will become irrelevant as it establishes itself within part of one second anyway. It's just a curiosity, or potentially something that is only meant to trigger host-side. Frankly the documentation is sparse in points, both from the Facepunch C# wrapper and the Valve C++ baseline, so this might be working as intended.<br />
<br />
* Substantial progress on the Steam network transmission of data. Still not quite seeing it register yet, but we're getting close.<br />
<br />
* The full suite of network logging has been integrated into our steam networking wrapper, now.<br />
<br />
* When a Steam host shuts down the connection, the steam client computers now definitely notice and react to that. The inverse was already working from the start.<br />
<br />
* Figured out the missing information on how to get data from the facepunch steamworks wrapper (call Recieve() to trigger the other events), and are sticking with the derived classes methods rather than the interface method, since for relay connections it seems like the interface method is not fully implemented.<br />
** With this in place, we're now getting messages on the client machine, and they are properly decoded! The host for some reason still doesn't get messages back, but this is progress.<br />
<br />
* Fixed a bug in our connection status window code that was causing it to stop showing a timer on connection stages after the earliest ones.<br />
** With LiteNetLib, that all flashes past so fast we could not tell that was even happening. With Steam currently stalling out with the host not getting messages, it became apparent.<br />
<br />
* Previously it was possible for our socket mode to be off, and silently ignoring messages we were sending.<br />
** This was initially done to make it so that any lingering messages that would try to be sent after a disconnect would not cause visible errors, but in this case we've wound up with the socket state being off on the steam networking, despite it being active, and this thus resulting in client messages being composed but not actually sent. That was not obvious because of the lack of error messages.<br />
<br />
* Figured out a stupid mistake in our own code, indeed a single line of code, which was preventing the client from sending data properly back to the host.<br />
** Steam networking is now fully functional in terms of sending data back and forth. There is some sort of issue with the world data not getting across properly, but we have to now verify whether that's limited to Steam or also happens on LiteNetLib.<br />
<br />
* Added in a substantial amount of extra error tracking in our univeral and game-specific network message handlers.<br />
** This helps us to find out where errors actually are.<br />
** In the case of steam, right now we are getting some exceptions when the host tries to tell the client what their player profile number is.<br />
<br />
* Fixed a simple typo that was having us send a junk message via both frameworks to the client when they first connected.<br />
** In both cases, this led to the galaxy map not showing up properly on the very first world connect. But in the case of Steam networking, it also led to an exception because the byte array was too small.<br />
** This extra smallness is actually more accurate, and basically it was only not erroring with LiteNetLib because the buffer array was larger than needed because they are pooled.<br />
** This is an interesting difference between these two networking frameworks, but neither one is particularly "wrong. But it does make Steam slightly more sensitive to certain errors in a way that is useful, because it's an error in both cases that manifests in other places.<br />
** Anyhow, this seems to argue for us to internally use Steam as our main testing framework, additionally because that means we are round-tripping out through the internet and Valve's servers and back rather than having the speed of a LAN.<br />
** This also means that the Steam networking library is fully completely integrated, which is a very major milestone! Now it's all game logic, regardless of what is going on with the two networks.<br />
** Also worth noting that it's under 3 seconds to connect a client to the lobby in our test case, using the Steam relay servers, etc. On the LAN it is under one second, so that's pretty killer.<br />
<br />
=== More Multiplayer Work For All Frameworks ===<br />
<br />
* "Planet GalaxyMapVisuals in CenterGalaxyViewOnPlanet null!" will no longer happen. It was a thing relating to trying to center on a planet slightly too early, and the population of the galaxy map still having failed.<br />
** We are now bypassing that and using the raw internal transform offsets to calculate the correct camera position.<br />
<br />
* In response to the initial challenge from the host, the client no longer just sends their profile name. They now also send their list of installed and enabled expansions and mods.<br />
** The host then compares that list to its own installed and enabled expansions and mods. If there are differences, then it rejects the client connection and does a popup on the client and a chat message on the host side explaining why.<br />
** It also notes in there that both parties can enable or disable expansions or mods in the Game tab of the Settings menu to get things to match.<br />
** Please note that, yes, in some cases there will be mods that are enabled but which "wouldn't do any harm" because their functionality won't be triggered in the campaign in question. We don't have any way of knowing that, so we have to err on the side of caution.<br />
** When it comes to expansions, there are none that "wouldn't do any harm," because all of them add some ships and features to the game in general that all players need to have. For instance, the first expansion adds a bunch of new turret options that are available to choose from in any game you play with that expansion on.<br />
** At any rate, we've gone out of our way to make it easy for people to disable expansions and mods so that they can play with friends who don't have those same expansions or mods. The last thing we want is for the only solution to this sort of thing to be someone reaching for their wallet or having to faff about in the filesystem.<br />
<br />
* Low-level chat messages that are sent to everyone from the host are also now sent to the host themselves. Previously, they could not see messages of this sort, turns out.<br />
<br />
== Version 2.111 Initial Steam Connection ==<br />
(Released July 30th, 2020)<br />
<br />
* Fix a null reference exception in my new spire relic code<br />
** Thanks to Chuito12 for reporting<br />
<br />
* Nanocaust: Make the AI wait a bit longer before unleashing Exogalactic units on it. Remove some deprecated code<br />
** Also the exogalactic units won't hang around to kill the entire nanocaust, so there's a chance it can recover.<br />
<br />
=== Milestone: Initial Steam Networking Connection Between Client and Host ===<br />
<br />
* The Steam versions of the game now initialize relay access on startup, to make it so that the first connection using Valve's relay network will be extra fast.<br />
** If you wind up not playing any multiplayer, this is absolutely harmless. If suddenly it is flagging your firewall on game start on the Steam versions of the game, though, that might be why.<br />
<br />
* The basic connection through Steam's newer networking sockets connection is now in place, using their relay servers as recommended. This is the approach that absolutely bypasses NAT traversal and anything else of that sort, and in fact hides your IP address from anyone you are playing with. The claim is that their backbone is faster in most cases than the general internet one.<br />
** If need be, we can make a "Steam over IP" version that allows for their networking sockets stuff to run more directly over UDP, and only fall back to their relay servers if there is a problem. This would be a lot like LiteNetLib, except with much better NAT punchthrough making use of ICE and STUN and all those things.<br />
** For now we are sticking with Valve's recommended practices.<br />
** Beyond just getting the initial connection up, we don't have anything there yet, but on the server we can see the Steam username of the client who requested to connect and who forged the connection.<br />
<br />
== Version 2.110 AI Exogalactic War Front ==<br />
(Released July 29th, 2020)<br />
<br />
* Spire Relics now have additional text in their descriptions explaining either A. whether the relic is on route to a particular planet , or B. that this relic must build on this planet<br />
** Thanks to Lord of Nothing for suggesting<br />
<br />
* All of the units that were previously named "Galactic War [name]" are now just named "[name]"<br />
** However, in the tooltips for them, their faction should now say "AI Exogalactic War Front" in whatever the hunter fleet's color is, rather than saying the AI Hunter Fleet.<br />
** This lets us keep the shorter name, while making their sub-group and source a lot more clear.<br />
** This does need testing, so please let us know if it doesn't show up correctly somewhere. This is using a new xml feature called "override_faction_name", which lets us use a different faction name for some units in a faction, but without actually creating a new faction.<br />
** Thanks to Ovalcircle for leading the discussion that led to this.<br />
<br />
* Spending a ton of science will now increase a player faction's Overall Power Level very slightly.<br />
<br />
* Remove some inaccurate description text for the Rorqual Hejira<br />
** Thanks to GreatYng for reporting<br />
<br />
=== UI for Steam Networking ===<br />
<br />
* Added the new ArcenNetworkConnectionOption class, which we are using as a basis for things like lists of your Steam friends that you can connect to.<br />
** On the network authority, there is a new PotentialServerOptions, which is used to list out such things. This can be used for anything that we need to list a variety of to connect to, not just friends in Steam and GOG. This is in contrast to the "type in an IP" method that we use with LiteNetLib.<br />
<br />
* Started building out the Steam networking framework layer, currently based on the ISteamNetworking implementation that most games use.<br />
** We MAY opt to also start supporting the newer ISteamNetworkingSockets framework that Valve has rolled out more recently, but that would be an alternative networking framework in AI War 2 that you could choose between.<br />
** The fundamental premise of those two Steam networking setups is really different, and while the newer one would in some ways be easier for us to implement, it seems a lot less familiar to the average Steam player, involves IP addresses potentially, and is maybe less battle-tested, but who are we to say.<br />
<br />
* Previously it was still possible to have some exceptions happen silently in the Engine_Universal main loop, and they would log to disk but not show up in your face. Fixed.<br />
** It was also possible to get some silent errors when clicking buttons and other UI elements, turns out. This made the application just seem not to respond to the click, but now it properly shows the error if there was one.<br />
** Also it was possible for certain errors in the UI call stack to prevent the display of the error window.<br />
<br />
* When you try to connect to an IP address, or you change your active networking framework, the game settings now get saved immediately so that that is remembered even if you shut down the program right away.<br />
<br />
* There is now a screen that will be used for Steam and GOG connections, from the client side, and in Steam it now:<br />
** Shows a list of all your Steam friends, with ones that are in AI War 2 at the top, then ones that are online, and then the rest below that.<br />
** Lets you sort to just ones that are in AI War 2 or online.<br />
** Lets you refresh the list to check for updated statuses.<br />
** There is a connect button for each friend, but that is not functional yet. Just haven't gotten to that part yet.<br />
<br />
== Version 2.108 Galactic War Units And The Exostrike ==<br />
(Released July 28th, 2020)<br />
<br />
* Completely rework the way Exogalactic strikeforce leaders work, to allow per-AI-Type customization. No functional change right now, but intended to support some new AI types for DLC2<br />
<br />
* HandleHelperJournals() has been split out into a bunch of sub-methods, since they can error in rare cases and it would be nice to know where the error generally is.<br />
<br />
* Fixed an issue where we were not letting negative risk analyzer data be saved properly. Turns out that has a good reason to be negative at times.<br />
** Thanks to Badger for reporting.<br />
<br />
* Added a new UI feature that is a throwback to some of the functionality we had in various past games: the "center screen message"<br />
** This is basically a message that can show up near the top center of the screen, and stay there for a bit or for as long as needed.<br />
** It won't block the mouse, and it is over everything except modal popups and tooltips.<br />
** This isn't something we would want to use all THAT often, but for cases of things like "hey the server isn't responding, why is MP stalled," this is exactly the sort of UI functionality we need.<br />
<br />
* Fixed a harmless bug where, for the last few months since we've been doing multithreaded loading of camera xml files, the "PrivateVisExtensions" assembly would sometimes have annoying but unimportant errors appear on startup.<br />
** Essentially, it turns out that loading classes from a custom dll is not entirely threadsafe. Go figure. The fix for that is simple, and it doesn't slow things down, but now we know.<br />
** Thanks to GreatYng for the first report of this we'd had outside of ourselves running into it.<br />
<br />
* Fix a bug where macrophage achievements weren't triggering if you killed all the Telia<br />
** Thanks to GreatYng for reporting and StarKelp for the fix.<br />
<br />
* The in-game credits have been updated to include two more individuals who are key DLC2 testers.<br />
<br />
* Added new GetWasWorldStartedOnGameVersionOlderThan() and GetWasWorldStartedOnGameVersionAtLeastThisVersionOrNewer() to world, which let's people find out in a really efficient way if a world was started before some certain point.<br />
** We can't be accurate past a month or so ago, because we were not tracking the original savegame version back then. But it's useful for looking at saves older than the more recent ones and altering them if need be.<br />
** This is now used specifically to fix this macrophage disabled stuff only on older savegames than 2.108.<br />
<br />
* Fix a mispelling in the Mesopotamian planet names<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fix a typo, "reciever" to "receiver"<br />
** Thanks to Apthorpe for reporting<br />
<br />
=== UI Changes ===<br />
<br />
* In the Load Menu, campaigns are now sorted by 'most recent save game in that campaign' rather than alphabetically<br />
** Thanks to Puppet Master for the suggestion.<br />
<br />
* The default sort for the load menu is now by date.<br />
<br />
* Rename 'Exogalactic Strikeforce' to 'Exostrike' and 'Extragalactic War Units' to 'Galactic War Units' in UI. Having "ExoGalactic" and "ExtraGalactic" was a perennial source of confusion<br />
** Note that internally the code uses the old names for the moment<br />
** Thanks to a discord conversation involving relmz32, Oryutzen and NRSirLimbo<br />
<br />
=== Dyson Sphere Buffs ===<br />
<br />
* The Dyson Sphere's ships should now really level up after the hack<br />
** Thanks to GreatYng and zeusalmighty for the bug reports<br />
<br />
* Dyson Sphere hack descriptions now say "This hack will make the Dyson Sphere very unhappy with you for a while" to clarify the behaviour.<br />
** Thanks to Apthorpe for suggesting<br />
<br />
* The Dyson Sphere now gets additional income (ie it can build ships faster) that scales with AIP. As AIP goes up the Dyson and Antagonized Dyson get stronger<br />
<br />
=== Multiplayer Work ===<br />
<br />
* SendMessageToAllClients() has been split into two methods: SendMessageToAllClientsWhoAreFullyConnected() and SendMessageToAllClientsRegardlessOfConnectionStatus().<br />
** We really don't need heartbeats and frame auths and so on going to clients who are still connecting in.<br />
<br />
* Also added a GetCountOfClientsWhoAreFullyConnected() that lets us know if there are any clients who actually have gotten all the way in (and thus we should send world data)/<br />
** And added GetCountOfClientsNeedingWorldData() that lets us know we should make everybody wait for a bit until those people connect in. Otherwise everyone won't be on the same page.<br />
<br />
* Added a OnServer_IsAtPausedSpotWhereGameWorldCanBeSent() that lets us wait for a break in things happening (usually only 400ms or so at most) to then have a clean slate to send a world state to a connecting client without that state changing between them being sent the state and them getting it.<br />
** Along with this, if GetCountOfClientsNeedingWorldData() is more than zero, then it now pauses authorizing more simulation frames until the world is fully taken in by the new clients who are joining.<br />
<br />
* When a multiplayer game is stalled out for some reason, it now uses that central screen message to let you know what is happening, and if possible, why it is happening.<br />
** The game itself will have stopped having any action at this point, though you can still scroll around and look at things and give orders. But nothing is proceeding on the enemy side, so you don't have to worry about it being in your way.<br />
** When a client is first connecting into the lobby, it also uses this, to basically get the host and any other existing players to wait a moment before making more changes, etc.<br />
** On the host, this is already set up to give some context about the exchange under the hood that is happening with the new client.<br />
<br />
=== Multiplayer Transition To LiteNetLib ===<br />
<br />
* Okay then... we are switching network libraries when it comes to our non-Steam/non-GOG transport layer. Instead of FORGE Remastered, we'll be using LiteNetLib.<br />
** FORGE has grown a lot over the years, but the version we were using was from 2018...ish. We looked into updating our version of the code, but were not thrilled with how complicated it was going to be. Since we had working AI War 2 multiplayer on FORGE at least as recently as 2017 (in an alpha state), staying with the existing code made a certain amount of sense.<br />
** However, we started running into really long delays with something as simple as sending 10 bytes to say what our profile name was. This was taking upwards of 14-18 seconds between two machines sitting three inches apart and both within five feet of a powerful wifi router. We verified that the polling was happening hundreds of times per second, and that massive amounts of data was being sent via sockets. But in the internals of the old version of FORGE we have, it was taking it quite a very long time to assemble that into a full message, despite all the churn of hundreds and hundreds of data reads that were apparently all just empty headers and then noise. <br />
** Time for a new approach. It's worth noting that the current version of FORGE still lists all the most internal classes as "in development and lots of dire warnings," so that was another reason for switching up frameworks.<br />
** We chose LiteNetLib at this point, and within 40 minutes of dropping that in, we had the first successful connection between the machines on using this framework for the game. It was just a simple "hello client" message in basic unicode, but it arrived extremely instantly, as expected.<br />
** Next steps are going to be doing some cybernetic implants on LiteNetLib, rather like what we did on FORGE, to make sure that it integrates with AI War 2 properly and our network authority, and that it communicates as directly as possible with our own pre-formatted bitstreams. Most of that should be part of one day of work, at this point. We shall see. Then it's back to the actual larger "build out the multiplayer part of the game" work, but minus the lag that was tripping us up the last day or two.<br />
** It's also worth noting that, with this switch, we had to unfortunately also lose the awesome NAT punchthrough work that Doug Fields did for us with the FORGE interface back in 2018, but LiteNetLib has some of that of its own. And hopefully most people use Steam or GOG if they are behind firewalls of any complexity (since relay servers then become required, and that's where the free relay servers are).<br />
<br />
* NetPeer in LiteNet now inherits from ArcenNetworkClientConnection.<br />
** For now, we are using our own methods to generate the ConnectionIndex, rather than using the existing peer.Id. There may be some numeric conflicts, otherwise, but we can also change this later.<br />
** We also are initializing everything on the Arcen-integration side, keeping our own clientsOfServer list for quick access, and then calling the game-layer RespondToNewConnectionAcceptedByTransportLayer() that will kick things off.<br />
<br />
* PrepareMessageForSending() has become WriteLogOfSend().<br />
<br />
* Added a new SendToSpecificPeer() method onto LiteNet's NetManager. Not sure why that variant didn't seem to exist.<br />
<br />
* Wiring back up our LitNetSocket wrapper class:<br />
** SendMessageToHost_Inner() done.<br />
** SendMessageToAllClientsRegardlessOfConnectionStatus_Inner() done.<br />
** SendMessageToAllClientsWhoAreFullyConnected_Inner() done, using the new SendToSpecificPeer() method.<br />
** SendMessageToSpecificClient_Inner() done, using our own ConnectionIndices for now.<br />
<br />
* Booyah! Exclamatory phrases are not the norm in our patch notes, but this is an exciting moment. LitNetLib is sending messages, and doing so with speed and accuracy and a minimum of fuss. The username travels three inches in well under a second, as should be expected.<br />
** At first, I was getting some very strange data sent across, and I figured that this was going to be an endianness problem, but actually all of the .NET/Mono data is the same endianness from the look of things. Which makes sense, given that otherwise savegames would not work from computer to computer.<br />
** After spending the night with that rattling around in my brain, this morning I decided to definitely do some profiling of the data before I started messing with the #ifdefs.<br />
** First thing I noticed was that I'd chosen to use the RawData byte array, and immediately next thought was "I better check there's not a network header in there." Turns out, yes, there's a UserDataOffset. The first four bytes are not my data, and so of course it would give gibberish as if the endianness was wrong. Just starting my reads from the proper offset makes everything work instantly.<br />
** All of this is from a Mac to a Windows machine at the moment, but my I'll be testing three-way with my linux machine as well. Right now laptop is sitting closed under the Mac.<br />
<br />
* LiteNet logging now gets funneled to our own main logging pipeline.<br />
<br />
=== Continued Multiplayer Work ===<br />
<br />
* A fair bit of work has been done to make intentional disconnections from the client or server tell the other side more quickly.<br />
** This should help to avoid some disconnect-and-reconnect issues that are otherwise inevitable, and it just makes things feel more responsive.<br />
<br />
* Additionally, when you use the in-game controls to exit the program as a while, it now takes one extra half second to lets Steamworks and GOG actually do their exit logic properly, rather than rushing out the door.<br />
** This should hopefully help with any cases of the game still being thought to be running on Steam in particular after it closed.<br />
<br />
* When you exit the game, while it is doing its brief exiting stuff it now throws up a center-screen "exiting.." message.<br />
<br />
* Got rid of OnServer_WaitingOnConnectionIndices, as this was basically a duplicate of something we are doing better and more cleanly a new way, now.<br />
<br />
* UpdateDebugText() and all of its related variables have been removed.<br />
** This was the sort of thing that, in all of our prior games before Raptor and moving to 3D, you could hit F3 and get output information from. But it has never really been used in AI War 2 properly.<br />
<br />
* Got rid of WorldTransmissionMessageType, as it was needlessly complicated.<br />
** This was essentially us breaking the world transmission data into multiple parts and then sending those in parts. Historically there were two reasons for this:<br />
*** Back in AI War 1, we were using the Lidgren network library, and even though it was trying to work around the MTU (typicaly 1200 bytes) of various networks players might be on (or passing data through indirectly), it was often having bottlenecks and slowdowns with how it sent fragmented messages through the network card. Our theory at the time was that it was flooding the buffers of the NIC, rather than giving it data at a more reasonable pace. Network cards have grown enormously in the last 11 years, as have the OSes that control them, so that's not really a concern now. All of the newer network libraries that we would be using to send data should be able to handle 1MB of data without incident.<br />
*** Secondarily, for AI War 1 and for the A Valley Without Wind games, we were sending enough world data that you could see a noticeable wait time, and by handling this above the network transmission layer we could give you visual feedback on transmission progress (even though the whole act of that actually slowed it down). Eleven years later, we have networks that are vastly faster basically everywhere in the world, and the world savegames for AI War 2 are much more efficiently packed than AI War 1 was. So sending a file like this really is like a midsize image on any website you visit, now. Not really a progress bar sort of situation, especially if the progress bar itself causes slowdown.<br />
<br />
* ConnectionStage has moved from being just a UI-only element to being ClientConnectionStage as part of the ArcenNetworkAuthority, so that clients can better keep track of their connection status. Usually this is less than a second or so, anyhow, but we still need to keep track of it in case something goes wrong in particular.<br />
<br />
* The host now properly sends the world data to the client, for the first time in three years or so.<br />
** The client is having some trouble understanding it thus far, so now is a good time to build in error handling (it was just silently failing, until now).<br />
<br />
* Added a new SendLowLevelChatMessage() method on the network authority, which is used mainly for sending back and forth arbitrary messages from clients and the host to explain about the status of things. These can be echoed to all other clients or not, as the case warrants.<br />
<br />
* If the client fails to load a world sent by the host, then the host and any other clients all get sent a low-level chat message about that, the client gets kicked out (since they never made it fully in), and the client gets a nice error message on their screen and in the log.<br />
** This way we can solve whatever the problem is, and nobody is left sitting wondering why things are slow (when in fact they errored).<br />
<br />
* When you are loading a quick start, or loading a savegame as a template into the lobby, it now clears the chat log. This was definitely not information that needed to persist from a prior game to the new lobby!<br />
** These sorts of chat log messages, which are kept over the long term for the game (up to a limit), are no longer shown in the lobby at all.<br />
** Instead, we now are using LocalMomentaryDisplayLog, which is something that doesn't get sent with savegames, and which normally is just "stuff showing on your sidebar during the game for a little while."<br />
*** This is perfect for the lobby, and in the lobby we are just showing the last 100 of these, and not clearing them until you reach the game itself.<br />
*** These things are actually shown by timestamp, not by gamesecond (which isn't ticking yet), so that's just extra perfect for a lot of reasons.<br />
*** This also leads to privacy for people who were talking before someone new joined -- you only see messages that were sent after you were connecting -- although that's not hugely important in most cases.<br />
<br />
* Got rid of ArcenUI.Instance.CurrentNowUTC, since that was putting all of our lobby chat messages in the British time zone. We didn't use this anywhere else, and it was puzzling that we used it at all.<br />
<br />
* NatPunchEnabled is now true on the server and client for LiteNetLib. We'll see how well that works.<br />
<br />
* Added a new debug setting to the network section of the settings menu: Write Network World Serialization Logs<br />
** When sending a game world across the network to a client, write NetworkWorldSerialization.txt, and when getting one from a host write NetworkWorldDeserialization.txt -- both in the PlayerData folder (but on two different computers). The only real reason to turn this on is if a client is unable to join a host and gets an exception; this lets us do a diff of the two files and figure out what is different about what the host is trying to send and the client is trying to read.<br />
** Note these logs are often huge, sometimes hudreads of MB each. Compressing them into a zip or tarball and then uploading them somewhere we can download them to find out what is happening is a good idea. Hopefully as a player you will never need this, but this is basically a way for us to test the network world sync process, which otherwise can be incredibly opaque and take a lot of time to hunt down.<br />
<br />
* Used our new network world logging capabilities to fix an error in network world transfer where it needed to send the game version in a different format.<br />
** The client now looks at the game version very early on, and if it does not match it sends a message back to the host telling the host what the problem was.<br />
** Basically: If the client can't join because of a version mismatch, that gets shown and things happen properly.<br />
<br />
=== Milestone: World Sync Between Host And Client ===<br />
<br />
* Milestone! Initial transmission of the world data from the client to the host now works properly.<br />
<br />
* When a local player account is missing the following methods no longer throw errors:<br />
** SwitchViewToPlanet<br />
** OnClient_SendClientBatchToServer (actually still errors, because it's useful to have it do so).<br />
<br />
* PlayerAccount is now more strongly linked to the new ArcenNetworkClientConnection, and its connected status is now a method called OnServer_GetIsConnected().<br />
** There is some duplication of concepts here, but when you factor in the way that things like viewing of planets are synced in multiplayer, this is a worthwhile separation of concepts.<br />
<br />
* If two players with the same profile name try to connect to a game at the same time, it will now prevent the second one from joining and tell everyone why.<br />
** Bear in mind that these are AI War 2 profile names, not Steam or GOG or what have you. Everyone needs to have a unique AI War 2 profile name in the current game, but they can change up their names however they want and global uniqueness doesn't matter beyond the current game you are in.<br />
<br />
* In situations where a player 3 joins after player 2, and it's the first time player 3 has been in this particular world, player 2 now gets told by the host about player 3.<br />
** And of course all the more complicated permutations of this. It's the new FromServerToClient_SendNewPlayerProfile.<br />
** This is needed specifically so that all clients can know which planets are being viewed by other players, so that which planets are "tier 1" processing is honored and identical everywhere. Among other later needs.<br />
<br />
* Clients connecting to a host are now properly told what playeraccount they have been put in charge of.<br />
** This makes PlayerAccount.Local not null on their local machine, and lets them give orders and whatnot from their spot there.<br />
<br />
* Errors that happen during the main sim step will now be more visible in multiplayer contexts.<br />
<br />
=== Milestone: Initial Sharing Of Lobby Between Host And Client ===<br />
<br />
* Milestone: Clients are now able to load into the lobby, and they and the host both see most (but not all) changes that are made.<br />
** Clients are not yet assigned to any faction (making them just spectator-mode for now), and there are some specific bugs with certain data that isn't synced correctly just yet.<br />
<br />
* Map generation can no longer happen in the lobby except on the host.<br />
** We have no real way to be sure that map generation is deterministic between machines, so we need to do a world sync each time anyway.<br />
<br />
* When the map is regenerated on the host during a multiplayer lobby, it recreates all of the playeraccounts needed for each of the player connections that exist.<br />
<br />
* And when the map is regenerated on the host during a multiplayer lobby, it now re-syncs the entire world data to all of the clients so everyone is up to date.<br />
** This also solves the "authorized through frame number" issue, which was really just a smaller symptom of this larger issue.<br />
<br />
* Both the client and host are now verified able to add, remove, and edit factions and have that properly affect the world.<br />
<br />
* Window_ServerMultiplayerConnectionStatus has been removed, as we no longer use that. We've been using the new center-screen messages instead, or the chat sidebar, as needed.<br />
<br />
* In multiplayer games, the save button is now disabled and says: Cannot Save Game As Client<br />
** If you click it, it gives you this message: Unfortunately, only the host can save games in multiplayer. To save on bandwidth as well as on processing power between your machines, there is a LOT that is calculated only on the host machine. If you were to save a copy of the game on your client's end, loading it would lead to a lot of wrong and missing data.<br />
<br />
* Additionally, autosave is now something that does not happen on multiplayer clients. Just the host.<br />
<br />
* The header of the load quickstart and load saved game menus now make it clear if you are loading for multiplayer or single-player.<br />
** Also on these screens is a new "[Multiplayer Questions?]" bit of text up at the top that appears only on the multiplayer version, and which has some helpful mouseover text.<br />
<br />
* Rather than having an annoying explanatory popup to click through every time you open the various ways of hosting or joining a multiplayer game, it now puts that extra information under the "[Multiplayer Questions?]" section up at the top of those screens.<br />
<br />
* At the top of the lobby screen, it now says if you are joining as a client or a host to a multiplayer lobby, as well as having that same "[Multiplayer Questions?]" bit.<br />
** This includes the following new text in its mouseover text: Except for the host, all players are spectators by default. There is only one human player faction by default. Any number of players can share control of a single faction, or each player can have their own faction that they control on their own. You can mix and match as you like.<br />
<br />
* The connect by IP window has been completely reworked visually so that it matches the rest of the game and doesn't look like the old temporary style that we were using in 2017 (because that's what it was).<br />
** This also lets us put extra information on that screen to help anyone who might be confused.<br />
<br />
* The client connections status window is now patterned as a continuation of the connect by IP window, and it's nice and graceful and in the new style.<br />
<br />
== Version 2.106 Immortals and Unresponsiveness ==<br />
(Released July 23rd, 2020)<br />
<br />
=== Bugfixes ===<br />
<br />
* Put in field names for the risk analyzers saving, so if they have trouble serializing we can see which field it was.<br />
** Also then made it so that the total increase and net increase both are automatically clamped to 0 instead of a negative number so that they won't throw an exception when trying to save.<br />
** Thanks to GreatYng for reporting.<br />
<br />
* When stacks are split, they now have their "time on planet" and "time alive" set to be whatever the original stack was. Same with the amount of cloaking points they have lost, and the number of cloaking points they have left.<br />
** This prevents a variety of abilities from triggering, including the "invincible if only on this planet for x seconds."<br />
** We also made it so that dying to remains does not reset the "time have been alive or on this planet" counter, for similar reasons.<br />
** This keeps the vanguard hydra heads from being insanely impossible to kill, among other issues that are probably pretty much all in the player's favor to have resolved.<br />
** Thanks to crawlers for reporting.<br />
<br />
* Added some extra debugging information for the status of gamecommands that are queued, to see if there are clogs happening. At this point, we can't replicate any evidence of that, though we have some reports from multiple players of it. So maybe the problem either takes a bit to manifest, or is in a different area of the code than we expected.<br />
<br />
* AIP should no longer increase when things die to remains if you have the "ships of X type die to remains instead of dying entirely" galaxy map option on.<br />
** This is untested, but should work.<br />
** Thanks to crawlers for suggesting.<br />
<br />
* Found and fixed the core typo from a few builds back where remains that were being rebuilt were being set to have the cost of the rebuilder, not themselves. This was previously massively overcharging players for building most things, but then once we put on a band-aid to fix that, it started giving it to them for basically free.<br />
** Thanks to Lord Of Nothing for the report and save.<br />
<br />
* Fixed a bug from the last few versions that nobody seemed to notice, where the galaxy map was not centering on planets properly when you first went into the game after loading a savegame. This had to do with when we were calculating the position of the planet, and that not always being calculated before we tried to center on it.<br />
<br />
* Fixed a bug where it was possible that a client would send more commands to the host than it would tell the host about, and thus the host would not know to read the extra ones (or vice-versa). In single-player you are both the host and client, so it still applies.<br />
** This was happening because of multiple threads adding to the queues of commands at the same time that the queue was being drawn down.<br />
** This was actually something that probably could have happened since more or less forever, but it was substantially more likely in the last few versions because of some efficiency improvements we made.<br />
** Additionally, we have now switched to using a ConcurrentQueue for each of those collections, rather than a regular Queue. This should also help with potential contention.<br />
** There was also the possibility that we might not be able to get enough commands out of the list for some reason to then send more, and we are also now guarding against that.<br />
** Previously, this problem was manifesting as orders not being carried out when you gave them, sometimes or all the time. And things like "save my game" and "pause or unpause" not working anymore.<br />
** We were able to duplicate this in one savegame after some time, but no longer can. Given the intermittent nature of this sort of thing, we can't say for sure that it is solved -- but the logic of what was going on makes sense, and the fix we put in should hold that at bay. It's one of those "can't prove a negative" things, at the moment, so fingers crossed it just never shows up again.<br />
** The characteristics that we observed while this happens, if it happens to you and you want to see what you can tell us:<br />
*** In the escape menu, under the memory pooling performance, the number of raw commands were steadily climbing. One or two every few seconds. This should never happen in that way. Increases happen, but not a steady drain flow like that.<br />
*** In the escape menu, further down under the Commands Queued By Type, you may see some null warnings up at the top of that list, now. That wasn't there when we observed it, but it would be if it ever happened now.<br />
** Thanks to zeusalmighty, Puppet Master, Gdrk, and GreatYng for reporting and giving advice on how to reproduce it.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* In our copy of FORGE networking, we've removed some useless extra code that was for the UniversalWindowsPlatform framework, which we won't be ever using.<br />
<br />
* In our copy of FORGE networking, we also got rid of a very useless set of "pending" messages on the UDPClient and UDPServer, which were ostensibly to help with reliable messaging, but in reality was just doing some useless event handling and invocation, and some useless cross-threading locks. It just put the things in the basket and took them back out, never checking the basket or doing anything with it. Thankfully, there is a second basket for reliable UDP inside the UDPPacketComposer, so this was just extra redundancy.<br />
<br />
* Added a new ArcenNetworkClientConnection abstract class, which we now store on ArcenNetworkAuthority in a ClientConnections list.<br />
** These are connections, not yet correlated to specific players. But it lets the network pipe connect up a specific connection with a specific player (or reject that connection if it's not okay).<br />
** Each individual networking framework (ArcenSocket descendent class) is actually responsible for keeping track of these connections and populating them.<br />
** But the actual network authority does the job of authenticating them into a given game and handling the challenge/response work, figuring out a match to a player slot in the game, etc.<br />
** With this in place, we can now get rid of GetNumberOfConnections(), because that's now moved out of the socket and into the network authority.<br />
** This is a substantial refactor, in that it will really make Steamworks and GOG a lot easier for us to work with as networking frameworks, faster.<br />
<br />
* NetworkingPlayer in FORGE now inherits from ArcenNetworkClientConnection, and is the first version of a networking framework using this new pattern.<br />
** On NetworkingPlayer, rather than having a public { get; private set; } for some of the immutable connection things, we now use them as public readonly. This is both more efficient in performance (slightly), but also prevents sync issues between this class and its new underlying abstract class.<br />
** This class gives the information it needs to the base class, and doesn't bother registering the host NetworkingPlayer as an underlying client connection at all, keeping things simple.<br />
<br />
* A bunch of stuff with the FORGE networking logging has been replaced with wrappers around our own logs, so that if there are internal exceptions those don't just go nowhere invisibly anymore.<br />
<br />
* Trimmed out a bunch more old FORGE code that has been commented out for years from the look of things.<br />
<br />
* RespondToNewConnectionAcceptedByTransportLayer() is definitively game code, not part of the actual networking transport layer, and it has been moved into the central codebase and away from any specific networking framework.<br />
** "Hello friend, you've connected: what's your profile name you want to play under?" Etc.<br />
<br />
* A fair bit of the "initial chatter" of clients connecting to a host and the host responding are now logged to the debug log no matter what.<br />
** There really is not that much that is said, and this will certainly help someone at some point who is having some sort of connection issue.<br />
<br />
* When clients are connected to the host, now the host not only shows the number of clients, but also sees their profile names that they have chosen to connect with.<br />
<br />
* A bunch of event-driven stuff on the FORGE networking has been made a bit more inline, improving performance a bit and also reducing certain areas of complexity.<br />
<br />
* The initial challenge-response work, and "what's your name" work, is all functional again. This is stuff that will be identical regardless of the network framework.<br />
** The host can now properly see the profile name of the client, and is poised to send the client back all the world information.<br />
<br />
== Version 2.105 Selection Hotfix ==<br />
(Released July 22nd, 2020)<br />
<br />
* The game still loads various xml files asynchronously, and loads icons and music and sound in that fashion, but it no longer tries to load the ships, shots, or wormholes in that way.<br />
** This was just too unreliable, because of some issues in the unity engine. It didn't affect all players, and not all the time -- but enough that it majorly affected the stability of the game for some folks, and that's too much.<br />
** This also removes the potential for the really long (15-30 second) lag time when you are first opening a new game or the lobby if things didn't load during the loading period.<br />
** Thanks to Ovalcircle for the most recent set of reports.<br />
<br />
* Previously, the game was using a standard List<> object for keeping track of selected ships, and that sometimes ran into inefficiencies and cross-threading issues.<br />
** In the prior build, we tried to fix some of those cross-threading issues, but wound up making things not actually deselect properly.<br />
** To fix all of the above, we've now switched to the much more flexible and robust ArcenLessLinkedList<> object, and adjust the code to handle this. This is both more efficient (not that efficiency is a major problem here), and does not fall victim to the various cross-threading woes that the old style could. <br />
** And, naturally, as part of that, this also resolves the frankly infuriating selection issues in the most recent build of the game. Sorry about that one!<br />
** Thanks to ctl0ve, CRCGamer, Chuito12, and Burner for reporting.<br />
<br />
* Previously, the tech menu only showed techs that would actually benefit a ship you have at present, or which you could capture.<br />
** This was very confusing to a lot of players, as they would not see the entire tech tree and thus think that something was missing or broken.<br />
** In some other cases, possibly due to changes in the recent past, you CAN build something (like a command station), but since you have not done so yet, it would not show up.<br />
** All of the techs now always show up, but the ones that are for ships that would not benefit you right now still show up as red and not researchable.<br />
** Additionally, the tech color shows up as white when it benefits ships you have, gray when it benefits ships that you don't have right now, and lighter gray when it benefits ships that you could capture.<br />
** Please note that since citadel upgrades don't benefit battlestations anymore, the citadel tech not showing from the start was working properly.<br />
** Thanks to Strategic Sage and CRCGamer for reporting the confusion.<br />
<br />
== Version 2.104 Negative Build Percentage Hotfix ==<br />
(Released July 21st, 2020)<br />
<br />
* Somehow or other, it became possible for some self-building ships to go very negative in their build percentage (instead of counting up to 100%, they would be way in the negative percentages of building process). <br />
** This seems to be a new bug in the last day or so, based likely around some changes that we made to improve the cross-thread reliability of the game. The problem is, upon manual code review of the areas that would be relevant, we just can't see anything that looks like a bug.<br />
** Ultimately what is happening is that the SelfBuildMetalRemaining is getting absolutely giant in value, far larger than the original metal cost of the ship that is constructing. This was probably an integer overflow from it going really negative first, and then wrapping back around, but it's hard to be sure.<br />
** We've put in some extra defensive code to make sure that if it goes negative at all, it marks itself as complete. We've also put in protections so that if you "owe more than it is worth" in general, that it will assume that there was an overflow and just go ahead and finish it now. These two changes should help to keep the problem from happening again, and fix the cases where it was already in progress.<br />
** While we were already at it, we put in a small general improvement that prevents you from being overcharged for the last tiny percentage of constructing a ship. If you had a bunch of engineers building, and each frame cycle they normally would do 1.1% of the construction of a ship, and charge you accordingly, then you might wind up in a case where you had only 0.2% remaining work to do, and yet got charged the full 1.1% rate. It is now careful to only charge you for what you would owe, so the 0.2% rate in this example.<br />
** Hopefully there are no other errors in any of the metal flows, with things like drones building, anything engineers would claim or repair, etc. The code looks clean, but then again the code for the self construction also looks clean. In the next couple of days, please let us know if you see anything else that seems amiss with how metal is being charged against you. So far we can't duplicate anything like that anymore, now.<br />
** Thanks to CRCGamer, deso, and Puppet Master for reporting.<br />
<br />
* Some code from yesterday dealing with cross-threading protections let us unfortunately sometimes wind up with runaway DoForSelected loops. This is now fixed, and it has several kinds of self-repair in place to prevent this from happening now.<br />
** Thanks to Gunner for reporting.<br />
<br />
=== Multiplayer Connection Work ===<br />
<br />
* Reworked the NetworkTrafficLog.txt multiplayer output to actually be a lot more informative.<br />
<br />
* GetNumberOfConnectsCurrentlyActive has been replaced with GetNumberOfConnections, which lets the network framework tell us a lot more about the general status of things happening.<br />
** Instead of just a generic number of players that exist, we can see how many are disconnected, how many if any are the host, how many are clients, etc, etc.<br />
<br />
* In the lobby, the host now sees how many connected clients there are, and if there are any disconnected ones, how many disconnected ones there are.<br />
** Previously it just showed one number that included the host and also disconnected clients all wrapped up into one.<br />
** It still isn't detecting disconnects properly in FORGE, but we'll get to that.<br />
<br />
* The host now only bothers sending heartbeat messages if it has at least one non-host client machine connected.<br />
<br />
* Removed some old "desync detected" code that was not fitting with the new plans for multiplayer.<br />
<br />
* Figured out some of why the client was not detecting itself as properly connected, and so was not getting messages from the host at all in the last few builds after the connection.<br />
<br />
* The way that gamecommands are queued and then given out to player simulations for both single-player and multiplayer is now more efficient.<br />
** We're using queues now instead of lists, and this gives us a lower chance of accidentally losing a command, as well (not that we know of that ever happening before).<br />
** This has several performance benefits even for single-player when there are a lot of commands going around.<br />
<br />
* Added a new FromServerToClient_AuthorizeThroughFrameNoCommands in addition to the FromServerToClient_SendNextBatchOfCommandsToExecute, to slightly save on space (1 byte per message) and make the logs clearer.<br />
<br />
* The network log no longer has a time delay built in where it logs only 100 items at a time. It just immediately dumps items to disk.<br />
** Realistically there is only substantial traffic every 100ms or so anyhow, and the delay in logging was incredibly confusing as a programmer working with it.<br />
<br />
* The network polling interval has been updated from 20 times per second to 100 times per second. In practice it will actually be variable, but the polling is extremely lightweight (the part that is on the main thread), and having absolutely minimal delays in getting and sending messages is what will keep things moving smoothly.<br />
<br />
* To make network logging even more efficient and clear, the old ArcenNetworkLogEntry is now ArcenNetworkSendLogEntry, and is now a struct instead of a class. This runs lightning fast and doesn't affect RAM usage.<br />
** We also now are then logging data that is gotten in (which we call TAKE) along with data that is sent (which we call SEND).<br />
** This way we can see the conversation between several machines all interleaved on a single machine's log, and thus figure out why they are saying what they do, and if messages are getting there, etc.<br />
** Surprisingly, the way we were logging things previously really didn't lend itself to that, so it was easy to go down rabbit holes of wrong information (thinking data did not get to a machine when in fact it did).<br />
<br />
* Furthering clarity on the networking side, we're now ignoring loopback messages-to-self on the host in our logs, which previously we were not doing.<br />
** This way we don't get drowned in a sea of stuff that "I'm telling myself in order to be the same as everyone else," and we can just see what is actually passing between machines.<br />
** The loopback stuff has been demonstrably working fine since more or less forever, unless we broke it today, since single-player relies on that.<br />
<br />
* Fun fact, after all these logging changes, we can now actually see how well parts of the networking are already doing.<br />
** As one client connects, the host is able keep talking to itself and/or others without breaking stride, letting the potential connection wait for the challenge and acceptance (not yet reimplemented) before it loops in the new client to the rest.<br />
*** This is a great example of how we can keep people from accidentally messing with the sessions of friends by trying to join during a game, etc. It's the sort of thing that only matters among friends, but it keeps it clean.<br />
** On top of that, we can see now that the reason for the host not noticing when a client disconnects is because it's ignoring the client that has not fully gone through the challenge-response process yet, and so the mystery of how it was "sending messages that failed but didn't flag the client as disconnected" is easily solved (answer: it wasn't sending messages to that particular client yet, because it is smart).<br />
** In general, by improving our logging quite a lot we can see what is actually happening and make sure all of this works properly. The vast majority of this is network-agnostic, which is doubly great. These particular logs will look substantially the same between FORGE and Steam and GOG.<br />
<br />
== Version 2.103 Hotfix ==<br />
(Released July 21st, 2020)<br />
<br />
* Fixed a bug from the prior version where the dark spire serialization fix was making any savegames with dark spire in them -- new or old -- not able to load.<br />
** Thanks to valinor000 and stanazolol69 for reporting.<br />
<br />
== Version 2.102 Digression For Quality ==<br />
(Released July 20th, 2020)<br />
<br />
* Using the "Increase Max Dyson Strength" hack will now also increase the Dyson's general mark level<br />
* Some minor buffs to the Dyson's income, mostly at higher levels<br />
** Thanks to a discussion started by zeusalmighty<br />
<br />
* When picking music (through the debug menu), the hovertext will now give you information on most of the tracks saying the original source<br />
<br />
* Improved the speed of some dictionary lookups by precalculating the ArcenAssetBundlePath CombinedPath.<br />
** This also required us to change their member variables into properties, and in return that meant that the general string fill methods needed to be adjusted to new FillBundle and FillPath methods for xml reading.<br />
** This doesn't affect as much code as it sounds like.<br />
** We also adjusted the various debug logging points to use the combinedpath, which is cleaner and easier to read, but not much faster since that almost never happens.<br />
<br />
* Fixed a bug that could happen with entity order serialization in rare circumstances if threads were fighting over putting items back in or taking them back out.<br />
** Since multiple threads do in fact often use orders, at once, this is one of the few collections prone to that.<br />
<br />
* Fixed a variety of exceptions that could happen based on cross-threading bad luck during the exit of the game either to the OS or to the main menu, all in the metal expenditures code.<br />
<br />
=== Ship Behavior Improvements ===<br />
<br />
* Fix two problems related to shields recovering from being bumped by Astro Trains <br />
** Human Home Forcefield Generators can now recover from being bumped.<br />
*** Thanks to Lord Of Nothing for the bug report<br />
** If a forcefield generator is bumped twice in short order, it will now do a better job of returning to its original location. This isn't perfect, but it's a pretty intense corner case<br />
*** Thanks to Puppet Master for the bug report<br />
<br />
* If there are only non-combatant enemies on a planet, ignore any requirement in the targeting code that particular targets need to be combatants. This prevents ships in FRD from discarding reasonable targets incorrectly. <br />
** Thanks to ParadoxSong for the bug report<br />
<br />
* Actually support Targeting tracing now; you need to set Targeting tracing and the Debug setting that lets you set the PrimaryKey for the unit you want to follow, and you'll get some actual logging. <br />
** Not for the faint of heart; intended only for developers who want to get their hands very dirty.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fix a bug where the 'delete campaign' button wasn't giving the campaign name<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a rare and harmless (but annoying) cross threading exception that could pop up with argument out of range exceptions in RenderShip.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
* Fixed a rare nullref exception that could happen in DoRemovalChecks() on shots, mainly a cross-threading thing.<br />
** Thanks to Lord Of Nothing for reporting.<br />
<br />
* Fixed two possible spots in DoForSelected() where cross-threading issues could sneak in and cause an exception in rare cases.<br />
** Thanks to Lord Of Nothing for reporting.<br />
<br />
* Fixed an issue when loading savegames that have a missing planet naming scheme. It will now default to the default naming scheme if it can't find the one that the world was started with.<br />
** Thanks to Oryutzen for a save that demonstrated this.<br />
<br />
* Fix a bug where the imperial spire wasn't Watching previously explored planets for you.<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fixed an error in TextMeshPro where it would still give us "Unable to use Ellipsis character since it wasn't found in the current Font Asset" invisible errors that would fill up the debug log even if warnings were disabled.<br />
** This was, in very long play, a memory leak as well as a performance drain, and it was generally invisible.<br />
** The ellipsis character was typically something it was trying to find specifically for purposes of showing cut-off text, and some fonts just don't have that in them. So no wonder we couldn't actually find the ellipsis character used in our own text files.<br />
** Thanks to Puppet Master for providing the log file demonstrating all this.<br />
<br />
* Fixed an issue where the stationsRemainingBeforeDepot on astro trains could go arbitrarily negative, thus causing an error on save. It now stops at 0, and thus seems not to cause the issue anymore. But on the change that an astro train does have a data exception during save anymore, it will now log what field is having the problem and we can fix it.<br />
** Thanks to Lord Of Nothing for the report and save.<br />
<br />
* The game has been updated so that the debug logging that is DoNotShow now ONLY goes to the ArcenDebugLog.txt, and not to the unity Player.log. The unity Player.log is kept in memory in a very unfortunate fashion, and in long gameplay this will be extra RAM used that should not be. Probably also extra slowness.<br />
** We added a new DoNotShowButSendToUnityLogEvenOutsideEditor Verbosity option that lets us have the old behavior of going to both of those logs, but we are not using that anywhere at the present time.<br />
** All of this is going to make it even more important that we have both kinds of logs from players if they have an outright game crash, now. But generally speaking, if it's an exception popup but not an outright crash, the ArcenDebugLog.txt has always been enough and will continue to be. It's only when the game crashes all the way to the desktop that we need the Player.log, typically, and now we'll just still need the ArcenDebugLog.txt in addition to that. However, any ShowAsInfo or ShowAsError logs to the main ArcenDebugLog will still appear in the Player.log, so potentially even that won't be true.<br />
** For a developer using the unity editor, it still logs everything to the actual unity log because that's for short testing cases and super useful to see output in realtime.<br />
** At any rate, we are trying to strike a balance between getting the logs we need, easily on the part of players, but without having any accidental extra usage of memory on very long play sessions.<br />
<br />
* All of the dark spire per-unit data is now saved in a format where we can tell which field is having trouble if one does.<br />
** The dark spire data "lastTimeAttemptedLocus" was trying to save as an int16 and would overflow any time a game saved that was more than about 32000 seconds in. Fixed.<br />
** Thanks to RockyBst for reporting.<br />
<br />
==== Memory Leak Fix From 2.099 ====<br />
<br />
* New setting on the debug menu: Show Pool Counts In Escape Menu<br />
** Used for searching for memory leaks, particularly between loads of a savegame. If pool counts keep rising after each load, then something isn't getting put back in the pool properly and is instead persisting lost in memory.<br />
<br />
* ArcenGameObjectResourcePools must all now have a unique name, and they register themselves in a central place that identifies how many of them there are.<br />
** These pools also now keep track of how many objects they have ever produced from themselves, so that if we are leaking objects from them we can tell. And we can tell if we are leaking pools themselves.<br />
** After seeing all of these in the new debug menu option above, we can clearly see that none of these are leaking and they are all behaving just wonderfully. Hmm. But we have a leak somewhere, so let's expand this...<br />
<br />
* Created a new CountedPoolBase abstract class that sits under the ArcenGameObjectResourcePool, and takes its counting capabilities and puts them there so that we can also use them for some other pool types.<br />
** This is also now used on a new "Shot Instance Renderer Pool Of Pools" so that we can tell if we are leaking there. And now ships and squads, too.<br />
** Also this is now used on LoosePool, which is the underlying basis for ship, shot, and squad visualizers (different from instanced renderers) now.<br />
** Despite all this, no memory leak was found in any of these pools. They are all working wonderfully efficiently.<br />
<br />
* ExternalizedPool now inherits from CountedPoolBase.<br />
** Same for TimeBasedPoolBase (and thus TimeBasedPool itself).<br />
** And same for BasicPool.<br />
** And holy cow, there's some sort of memory leak with the time-based pools, looks like, based on this. That makes sense, as we recently reworked some of their functionality to fix a bug with them. Apparently we introduced a new bug at the same time.<br />
<br />
* Added a new setting to the debug menu: Show Details Of Time-Based Pools In Escape Menu<br />
** Used for searching for memory leaks or other bad behavior on a certain very high-turnover series of pooled objects. If pool counts keep rising, or other numbers seem off, then we know we have a memory leak or a performance problem.<br />
** Thanks to Puppet Master, RockyBst, Lord Of Nothing, and NRSirLimbo for reports that led to us finding this.<br />
<br />
* Fixed a MAJOR bug from version 2.099 that was leading to a memory leak in general, and performance problems as well (the longer you played the slower it would get).<br />
** Our entire "time based pool" logic was not actually properly processing because we forgot a single line of code, go figure.<br />
<br />
==== Slow Load Or CTD Fix ====<br />
<br />
* Since we started using the asynchronous loading of asset bundle items using unity (the last few weeks), there have been some intermittent problems with certain random items not loading in properly. This is some sort of funky bug in Unity, we're pretty positive.<br />
** We solved that problem a week or so ago by checking the async request's asset property, and if it was not invalid, forcing it to finish loading even though it was stuck.<br />
** On most machines, this was causing a really annoying lag of 10-25 seconds while Unity did whatever it was doing to finish that load. That was really annoying, but only happened the first time you loaded a savegame or quickstart or custom lobby after starting the program, and not every run of the program, and not on all machines.<br />
** More recently, we discovered that the very act of checking the async request's asset property would cause an unrecoverable error deep in unity and an immediate crash to the desktop.<br />
** Killing two birds with one stone, we're no longer checking the async request asset property at all -- thus avoiding the crash -- and instead just do a normal synchronous load when we detect a failed load. This leaves the one async request in limbo kind of forever, but that shouldn't be a problem; if it ever decides to complete, it will see that it was already completed and just do nothing.<br />
** In the meantime, not only should this avoid the crash, but it should also avoid that awful lag spike that happened for those for whom it didn't crash.<br />
** The downside is that on our dev computers we haven't been able to replicate the error at all today, so we can't verify that this 100% works. It should work, and you should see in the arcen debugging log slightly differently that says "PrototypeObject failed async load and so loaded synchronously for [some stuff] (this is not a problem, but is odd)"<br />
*** If you're one of the people who were frequently seeing either the crash, or seeing the older "PrototypeObject fixed and loaded late for [some stuff] (this is not a problem, but is odd)" message, then we'd love to have a confirmation of you seeing the new message and all being well.<br />
** Thanks to Sol and RocketAssistedPuffin for reporting.<br />
<br />
== Version 2.101 Connection Status: Confirmed ==<br />
(Released July 17th, 2020)<br />
<br />
* Carriage returns and newlines are now supported by the "condensed" string format. This will prevent tutorial messages from turning those characters into question marks when they are dumped to the chat log. Note that this will only affect chat log messages logged in this version and on, not past versions.<br />
** Thanks to ParadoxSong for reporting.<br />
<br />
* The left and right click functions of the metal display have been switched to be more natural.<br />
** Thanks to Waladil and Galian Gadris for suggesting.<br />
<br />
* The "Spire Railgun Shop" mod that comes packaged with the game has been updated to use the icons from their new locations, and will no longer error.<br />
<br />
* We've reworked our "Window_PopupScrollingColumnButtonList" a bit to add some new handy features for us.<br />
** In the factions selection window, when you are adding new factions, it now still lets you see factions that you can't add because there is only one per galaxy, but now it shows them in red, doesn't allow you to select them, and explains why in the tooltip.<br />
** In the debug menu in the escape menu in the main game, the change music submenu now shows the current selection in red (with the note that you can't change to it because it is already playing), and it shows all of the options sorted alphabetically except for the current track, which it shows as the first item.<br />
*** Also fixed a bug where the music you selected to play would not actually be the track that played; it was choosing a random other track.<br />
<br />
=== Scourge Updates ===<br />
<br />
* The hovertext for the Scourge "Strength" in the game lobby now tells you what the strength does (more scourge ships/structures, and faster).<br />
<br />
* Add a "Sandbox: Extra Strong Mode" for the scourge<br />
** This is not balanced for regular play, but is intended as a sandbox thing.<br />
** Thanks to Avenger1649 for suggesting<br />
<br />
* Fix a bug where the scourge were periodically suiciding Defensive Fireteams into player positions.<br />
** Thanks to ParadoxSong for the save.<br />
<br />
* On intensities >= 5, the scourge can create cloaked "blockade running builders" if the player has tried to blockade the scourge into a small region of the galaxy<br />
** Thanks to ParadoxSong for the suggestion<br />
<br />
* On intensities >= 6, the scourge is intended to sneak a builder off to another part of the galaxy at the beginning of the game, to make it much harder for the player to blockade them in. This was not working on some map types, including the X type.<br />
** Thanks to ParadoxSong for the save that exposed this problem.<br />
<br />
* These changes should make the scourge much harder to deal with in general, and on the X map type in particular.<br />
<br />
=== Initial Multiplayer Connection ===<br />
<br />
* AllowOtherPlayersToConnect was a setting on the World object in the past, and thus something that was getting saved into savegames and that dictated how a lot of things worked for player connections.<br />
** We've removed this concept, and instead are making it based on the menu choices you make on the main menu.<br />
** We now have a DesiredMultiplayerStatus on ArcenNetworkAuthority, which lets us recall if you wanted to be the client, a host, or just left alone in single player.<br />
<br />
* The basic shells of SteamSocket and GOGSocket have been added to the game. The in no way function yet, but this will allow for them to be built out in the future.<br />
<br />
* The SpecialNetworkType has been moved into ArcenUniversal, and is now copied onto ArcenSocket along with the InternalName of the row that created the socket.<br />
** There is now a list of AllPossibleSockets on the ArcenNetworkAuthority to allow it to swap between sockets as needed, and particularly by type.<br />
<br />
* When you open the multiplayer menu, if you have that enabled, it will now set a default network framework for you based on the status of your game at that time.<br />
** If you are logged into Steamworks, it will set steam as the default network.<br />
** If that didn't work or wasn't true, and you are logged into GOG Galaxy, it will use that as the default network.<br />
** If none of those worked, then it will pick the first "other" network type, which in this case would be Forged.<br />
<br />
* All of the options in the multiplayer menu for hosting a savegame, quickstart, or custom game now properly do those things identically to as if it was the single-player menu, but put you into host mode first.<br />
** The single-player menu puts you into single-player mode, and makes sure that your ArcenSocket is set to NullSocket.<br />
<br />
* When you try to go into one of the client or host multiplayer areas from the multiplayer menu, it now properly activates your most recent chosen network framework, or switches to the first available one that actually can function right now on your system and gives you explanations for why it did that.<br />
** Essentially there is a fair bit of under the hood plumbing now for the frameworks to register themselves with the network authority class and explain about their availability.<br />
<br />
* If you are looking to connect to another machine, then the "connect as client" tooltip now gives you information about what to expect based on your currently-selected framework.<br />
** Are we connecting by IP? How much of a hassle will that be? Is it going to be by selecting a friend on Steam or GOG? Etc.<br />
<br />
* For IP-address-based networking frameworks, either starting a host mode or client mode event now pops up with a message explaining what information you need to give to the client players or get from the host.<br />
** This is not really the preferred networking method unless you're having a LAN party, and the game makes that clear, but it also goes out of its way to address the most likely areas of potential confusion for people who are using these frameworks.<br />
<br />
* Fixed a few bugs, and added a bit more debug logging clarity, so that the host can once again properly open a socket and wait for connection.<br />
** This was working up until a week or so ago, and was simply messed up a bit when we reworked things to support multiple networking frameworks. There were lots of lonely hosts never getting any client requests ever since the game has been in public beta.<br />
<br />
* When you quit out of the multiplayer lobby back to the main menu, it now immediately disconnects you as a host or client, to avoid confusion of lingering connections.<br />
<br />
* When you are in the lobby in multiplayer, the chat sidebar/log now appears again. At the top it says if you are hosting multiplayer or a multiplayer client.<br />
<br />
==== Choosing A Networking Framework ====<br />
<br />
* The main menu has been updated so that the "network" button at the top of the multiplayer menu now updates its text to show the current network.<br />
<br />
* The network button at the top of the multiplayer menu on the main menu is now fully functional. It shows available network frameworks, and gives you explanations for each one, as well as showing unavailable ones in red with an explanation for why they are not available right now. It lets you select from available ones, which then get set as your current socket when you try to host or join a multiplayer game.<br />
<br />
==== What Is My IP Address If I Need It? ====<br />
<br />
* In the networking section of the settings menu, it now has helpful informational displays of your local IP addresses and your public IP address.<br />
** To get your public IP address, we have to make a public call to the url http://checkip.dyndns.org, so this may flag your software firewall to ask permission when you go to the networking tab now.<br />
** Our goal is of course for you to not have to use your direct IP addresses at all in this game, but if you're playing on a LAN then that would be one great example of when you'd want to use this.<br />
** At any rate, each IP address is stored in a textbox that you can copy-paste from, which is very handy when sharing with friends.<br />
** There are also lengthy explanations about what the public IP address is for, and under what circumstances to use it, as well as the local IP addresses, plus special notes for any IPV6 addresses that it detects.<br />
** Getting this data is time-consuming for your computer, so you will notice micro-lags every few seconds while you are on the networking tab, now. This is normal and should not impair your use of the functionality.<br />
<br />
==== Milestone: Successfully Connecting A Client To Host ====<br />
<br />
* The old interface for network connections by IP address is restored and works again. We'll have a different one for connecting via friends list on Steam and GOG, later, but this is the one that gets used for Forge and any other IP-based network frameworks.<br />
<br />
* Connections are now able to be established from one computer to another, for the first time since 2018!<br />
** We added the ability to see how many clients there are connected to a host in the lobby (including the host), so you can see the connection tick up.<br />
** Next up is them actually exchanging enough information to get the client into the lobby and have them see shared world info and be able to chat and all that. But this is milestone one!<br />
<br />
== Version 2.099 Last Rabbit Holes ==<br />
(Released July 15th, 2020)<br />
<br />
* There is now a galaxy setting to grant players Watch vision for 1, 2 or 3 hops from all command stations.<br />
** Thanks to uhamster9 for inspiring this addition.<br />
<br />
=== Fixes And Tweaks ===<br />
<br />
* Improved the way that time-based pools are incremented in time, so that we're never having accidental cases where we miss one.<br />
** Also made it so that they actually work as intended when the world is being cleared (running 16 seconds' worth of time at once). This then keeps the pools smaller if you repeatedly load savegames.<br />
<br />
* On the escape menu, under where it shows you the various numbers of objects in memory, it now shows you the number of galaxy planets and planet links activated and in existence.<br />
** This lets us tell when these have a memory leak, if there ever is one with them.<br />
<br />
* Additionally, galaxy map links are now pooled for the first time ever, as the discarding of them was previously a definite memory leak. Normally this just happened between saves and loads, but it was also possible to happen when nomad planets moved.<br />
<br />
* In addition to the existing time based pools, we now have a new ExternalizedPool.<br />
** This is now used for the galaxy map links, and actually we have stopped the galaxy map planets themselves from using the super-old IArcenGameObjectResourcePoolable and they also now use this.<br />
<br />
* The way that planets for the galaxy map are initialized, and the way that their positions are set, is completely overhauled.<br />
** This is more efficient and properly uses pooling (which never was working properly before, it turns out).<br />
** It also makes the position of planets automatically react to them having moved in the game sim, without having to do anything special.<br />
<br />
* The arcencolors asset bundle has been removed, with its contents simply rolled into arcenui. Ultimately this is a bit faster to load, and saves a bit of disk space and RAM also.<br />
** Also removed the aiw2squads bundle, and the examples bundle.<br />
*** The examples bundle simply has its example content still there, but not in a bundle (it's to help aspiring models modders).<br />
*** The squads bundle is old data that we've not used in forever, and so has just been cleared out. It wasn't huge, but wasn't worth being there.<br />
<br />
* Starting to load a savegame (including for a quickstart or the last settings for a lobby) now writes to the log when you start the process, and at the end of the process writes how long it took.<br />
<br />
* Added a new debug setting: "Write Detailed Savegame Timings"<br />
** When loading a savegame, including the 'last settings' for the lobby or the basis for a quick start, keep track of detailed timing data and write that into the normal debug log so that it's clear what is taking longer and shorter amounts of time.<br />
<br />
* It turns out that chasing "why savegames now take 16 seconds to load sometimes" was a snipe hunt. The serialization sizes logging, when enabled, actually was causing that amount of slowness. With that off, it loads in about 2 seconds.<br />
** The extra instrumentation that we added for the savegame timings is still nice, but ultimately was not a useful bit of time spent at the current moment.<br />
<br />
* Fixed an issue that could happen in the lobby in particular where it could not properly save your prior settings because the fleet ID or speed group ID was lass than zero.<br />
** This pretty much could only happen if you already had another error first.<br />
<br />
* Fixed an exception in SeedNormalEntities that could happen if you rapidly tried to regenerate maps in the lobby in just the wrong way.<br />
<br />
=== Under The Hood Improvements For Icon Modding And RAM Usage ===<br />
<br />
* The last of the icons from the ExternalIcons folder have been moved into the unity project that generates the asset bundles, simply to dispel any potential confusion about the fact that they can be edited directly and that have some change on the game without recompiling asset bundles. This was a frequent modder confusion.<br />
** That said, the ones that were in the Official_1 folder are now in a CentralIconBits, and can now be used in the UI for the first time if we ever want to. That means things like health bars and whatnot could in theory be used in the ui if someone wanted to, whereas before they could only be used on gamespace-level icons.<br />
<br />
* Cleaned out a variety of unused icons from the arcenui asset bundle, and in general tidied up some of our organization of working files versus final files.<br />
** Also standardized the naming of certain things.<br />
<br />
* Broke the "official icon dictionary" out into six dictionaries:<br />
** One is for the "central bits" like health bars and so on, and would be the same for all ships.<br />
** Two are for the overlays, like for saying what kind of starship or guard post something is. There can be more than one of these, and the fact that these are split out like this demonstrate the modding capabilities and how things can combine.<br />
** Three are for ship icons and their borders, and there can be more of these modded in as well. As with the overlays, not only does this demonstrate how such mods would work, but it also has the side benefit of slightly less VRAM usage in a few cases.<br />
<br />
* The way that GUI icons are discovered from the xml based on their gamespace-icon counterparts is completely revised, and is now based on extra information in the ExternalIconDictionary entries.<br />
** This is a lot more flexible, and allows us to load icons from multiple asset bundles and/or multiple files within the same bundle.<br />
<br />
* The naming for finding icons is now much more complicated, in the sense that they don't all come from a single dictionary called "Official."<br />
** So there were over 1100 places in the base game and expansions where we've had to modify to point to the new dictionaries. Any mods would also need to be updated to point to the new places, unless they want to start using their own icons (once we put together a tutorial for that).<br />
<br />
* The external sprite dictionaries have been updated to be able to properly load in in multiple threads.<br />
<br />
* The game is now able to load the xml files for external icons from any mod or expansion, in:<br />
** Expansions/[ExpansionName]/GameData/ExternalIcons/[thefile].xml<br />
** XMLMods/[ModName]/ExternalIcons/[thefile].xml<br />
** XMLMods_NonDistributed/[ModName]/ExternalIcons/[thefile].xml<br />
** It's worth noting that these are xml files that are generated by Texture Packer, not xml that we create.<br />
** These files are referred to in the "ExternalIconDictionaries" xml as something along the lines of xml_path="Official_CentralIconBits.xml"<br />
*** It will then search the main game's folder (/GameData/ExternalIcons/[thefile].xml), then all the expansion folders, then any activated mod folders for a file with that name that was specified.<br />
** This allows for mods to be self-contained when it comes to their icons, and it allows expansions to have their own icons that are not packaged with the main game (not that we have imminent plans to do that).<br />
<br />
* On the icons used in the game, we previously were not using any compression, which made them absolutely massive in size (80mb for the main dictionary).<br />
** This was done in order to preserve quality, but we're also using GIANT icons in order to allow for really super-high-res displays of the future, as well as square ones to allow for ideal mipmaps, etc. So the lack of compression was hugely overkill.<br />
** We're now using compressed textures, which turns what was 80mb into more like 8mb. This has a very direct impact on performance and VRAM usage, so particularly on low-spec machines they will likely run far better.<br />
<br />
* The game now automatically constructs custom "gimbal materials" for the in-gamespace icons, in as many combinations as are needed for the things that it has drawn for you so far.<br />
** The total number of materials always in the past was "one," but it was using a single large dictionary and a lot more VRAM -- and it had a finite amount of space for things. There was a solid chance we were going to run out of space in that one dictionary as part of implementing DLC2. But either way, mods were not possible. The new number right now is 8, looks like.<br />
** Now it may make a handful of materials, depending on how many mods you have installed that have custom icons, and several for the core game and expansions itself. But these are vastly smaller, and while this does increase the number of "draw calls," each material is still mostly instanced together (there are a few mesh differences depending on if there are health bars shown or whatever), but the overall load on the GPU pipeline is lower.<br />
** All of this is automatically handled by the game in as efficient a pattern as possible, and if you're curious how many combination materials it has created, you can see that in the escape menu at the bottom of the list of memory pooling info.<br />
<br />
* A new debug setting, "Log Gimbal Icon Material Creation", has been added:<br />
** When this is on, any 'gimbal icon' material creation events will be logged as to what was created and how long it took to do so.<br />
** Turns out that this uses an immeasurably small amount of time for each material (less than 1ms each), so that's awesome.<br />
<br />
=== Under The Hood Improvements For Mods With Code ===<br />
<br />
* The game is now able to load dlls from mods or expansions, rather than just from the central game folder.<br />
** This works just like the external icon files, and basically looks for the dll in the central game folder first (/GameData/ModdableLogicDLLs/[thefile].dll), and then looks at expansions and then installed mods if it can't find them.<br />
** The paths are:<br />
*** Expansions/[ExpansionName]/GameData/ModdableLogicDLLs/[thefile].dll<br />
** XMLMods/[ModName]/ModdableLogicDLLs/[thefile].dll<br />
** XMLMods_NonDistributed/[ModName]/ModdableLogicDLLs/[thefile].dll<br />
** We really don't have a need to do this with expansions, but the flexibility is nice.<br />
** With mods that are more than just xml, however, this finally lets a modder distribute just a single folder that has everything in it, and not have to worry about putting some things in central game folders.<br />
** This is only partially tested, but should work.<br />
<br />
* It's worth pointing out that expansions and mods already did (and still do) have the capability to load asset bundles (icons, music, sound effects, models, textures, shaders, etc) from their folders.<br />
** The structure for those is /GlobalBundles/ in the main folder for anything not platform-specific, /AssetBundles_Linux/, /AssetBundles_OSX/, or /AssetBundles_Win/ for the things that are.<br />
** Inside the folders for expansions it is: Expansions/[ExpansionName]/[OneOfTheAboveFolders]/<br />
** Inside the folders for mods it is: XMLMods/[ModName]/[OneOfTheAboveFolders]/ or XMLMods_NonDistributed/[ModName]/[OneOfTheAboveFolders]/<br />
** None of this is new, but it's worth mentioning for now.<br />
** This is only partially tested, but should work.<br />
<br />
=== Larger Gamespace Icons And Fixed Galaxy Map Line Offsets ===<br />
<br />
* We also now have a non-billboarding version of our shader for purposes of our icons on the galaxy map.<br />
** Our core shader does on-GPU (read: hyper efficient) billboarding to always fully face the camera. This is very useful in the main view where you are moving around the camera a lot but always want the icons to face you.<br />
** The downside, however, is that with a largely-straight-overhead camera like the galaxy map uses, this billboarding would cause there to be a perspective shift where the icons for planets would get offset from the lines leading between planets no matter what we did. It also caused them to move relative to the text that was next to them.<br />
*** This offsetting of the lines to the planets was one of the largest "visual papercut" issues that we've had for a really long time, and it is finally fixed!<br />
<br />
* The ship icon scale has been adjusted from a default of 1.5 to 2.2, and will affect all prior settings files.<br />
** It's description has also been updated for the personal settings tooltip: For the icons in the main display area (not the sidebar), how large should they draw? Default is 2.2. If you go too large, it can be hard to see things because they overlap too much. If you go too small, they can get extremely blurry because of flipping to a lower mipmap. The larger your screen DPI, the smaller you can go without losing clarity.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Building Multiplayer]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Paradigm_Shift&diff=40511AI War 2:The Paradigm Shift2020-09-24T21:55:34Z<p>Keith.lamothe: /* Version 2.512 */</p>
<hr />
<div>== Known Issues ==<br />
<br />
* Any bugs or requests should go to our [https://bugtracker.arcengames.com/ mantis bugtracker]<br />
** 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.<br />
** 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:<br />
*** Windows: C:\Users\username\AppData\LocalLow\Arcen Games, LLC\AIWar2\Player.log<br />
*** macOS: ~/Library/Logs/Arcen Games, LLC/AIWar2/Player.log<br />
*** Linux: ~/.config/unity3d/Arcen Games, LLC/AIWar2/Player.log<br />
<br />
* '''Multiplayer is in public alpha, as noted below.''' There is a [[:Category:AI War 2: All About Multiplayer|detailed multiplayer guide]] that we are working on building up.<br />
<br />
* Feel free to [https://discord.com/channels/240637654717300736/242012213580136448 join discussions on discord]!<br />
<br />
== What Does Multiplayer Alpha Mean? ==<br />
<br />
[[:Category:AI War 2: All About Multiplayer#Initial Caveats And Related Resources|Please see this link for details on multiplayer.]] This wound up taking up too much space in this document, so all of the multiplayer-relevant bits have been moved to the other page.<br />
<br />
== What's this phase all about? ==<br />
<br />
We've been preparing for this for months, tightening up the codebase and getting everything ready as much as possible. Now it's time to start having machines actually talk to one another, and then refine from there. At this point, LiteNetLib, Steam, and GOG Galaxy are all fully working as communication frameworks, and the game is in an alpha state (as of September 9th) where not all of the functionality is there, but the game can be played together. <br />
<br />
It's important to remember what an alpha is! There are glitches and inefficiencies, and we'd like to know more about those. There are also glaringly missing features. Beta means feature-complete but not bug-free, and we're not there yet. Please don't assume that we will implement some feature you want, like the ability to share X between players. If you're testing the alpha and want something, please do drop us a message and ask for it, just in case.<br />
<br />
We expect to be into beta of multiplayer in late September. Hopefully the alpha and beta periods are both short due to all the work of the last phase, but we shall see how it shakes out.<br />
<br />
Once we get into a stable beta period for multiplayer, then we'll let the clock run a bit and Chris will work on adding interplanetary weapons to the base game as a free update (that's the last of the kickstarter stretch goals). This phase should wrap up all our kickstarter promises (including a laundry list of other smaller items).<br />
<br />
Badger has already done the bulk of his work for the second expansion, Zenith Onslaught. Chris has done none of his work for that, as yet. Once multiplayer is in the "let it exist in beta and have people bang on it" phase, then Chris can circle in and get his work done for DLC2 along with those base game bits for interplanetary weapons, etc. The full version of multiplayer should launch alongside of DLC2, but we're not sure exactly when. October?<br />
<br />
Either way, multiplayer will be in a solid state that is "beta but just because we want more time with more people testing it" for a month or so while the DLC2 work from Chris's end happens. None of the actual multiplayer stuff is delayed in any fashion for DLC2, it's been the other way around.<br />
<br />
== Version 2.512 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Fixed a bug where melee units given a load-into-transport order would keep trying to go back to their remembered melee anchor spot.<br />
** Thanks to Isiel, crawlers, and TechSY730 for reporting.<br />
<br />
== Version 2.511 "Last Lobby Settings" Robustness ==<br />
(Released September 24th, 2020)<br />
<br />
* Fixed literally a few hundred more places that the center color and trim color were being referred to by other names.<br />
** This doesn't fix the outstanding issue with the player trim being set to the center color, but maybe it will help us find it.<br />
<br />
* Found and fixed a really annoying case where player starting faction colors were still having the trim set to be the center color. Instrumentation for the win.<br />
** Thanks to folks for letting us know that was still there.<br />
<br />
* Fixed another seemingly-rare exception that could happen inside DoForSelected() when there was a lot of cross-threading competition.<br />
** Thanks to Daniexpert for reporting.<br />
<br />
* If you have serialization logging enabled, then now when the lobby writes out its "last settings" for savegames, it will write to the file WorldSerialization_LastSettings.txt<br />
** We were seeing some strange issues with only 92KB saves being written there, without properly being able to be loaded back in, in our internal build.<br />
** Loading into the lobby and then exiting immediately now lets you compare WorldSerialization_LastSettings.txt and WorldDeserialization.txt.<br />
<br />
* The world save method now takes a bool IsForLastSettings parameter, which lets us strip out yet some more data from the last settings.<br />
** In particular, this lets us forget what expansions or mods you had installed last time, so if you were changing that it will hopefully still load your settings properly.<br />
<br />
* When savegames fail to load from the "last lobby settings" file, it's supposed to just give you a blank fresh copy of the lobby, which it has been doing and still will do.<br />
** But now it also logs some errors silently to the log, so we can see what is happening if that is of interest.<br />
<br />
* The stripped-down lobby settings files are definitely by design, but they were dying in SetGuardPostAndCommandPlacerFromPlanetStats(), which is no longer called when loading them (as GetCurrentDefensePlacer() is no longer called, too).<br />
** This saves time on map generation in general, in addition to fixing the ability for last lobby settings to load.<br />
** The nice thing is that the last lobby settings are sometimes as small as 92KB instead of 1.5MB, but it just depends on when you were saving it. Exiting out of the lobby via the quit button gives a very different result from it saving after you go into a game from the lobby, when they should be identical or close.<br />
<br />
* When saving for the "last settings" for the lobby, the "externaldata" is no longer saved at all.<br />
** The details of PermanentSerializationIndicesForThisWorld are also not saved, which makes us have to be extra vigilant with SerializeByIndex... but on the plus side, it should throw errors immediately on game start from the lobby when we mess that up.<br />
*** AICounterattackForces on planets no longer saves in the "last settings" path, since this would break (and is useless).<br />
*** Same with Player_AddedToCommandStation_Permanent and Player_AddedToCommandStation_Current on the World.<br />
*** Also same for the ChatLog, journal history, and fleets on the world.<br />
*** Also for TechUpgrades, FreeTechUpgrades, SpeedGroups, HackingHistory, TechHistory, on factions.<br />
*** Also for the entities of all types on planetfactions.<br />
** So far this seems to properly do the job of getting you into the game faster, and it SHOULD prevent issues with "my last settings were from having three mods on, but now I disabled those mods and want to load a savegame and it just throws me to the default settings."<br />
*** Worst case, it should just throw you to the default settings like before in these cases, but hopefully that happens at least a lot less frequently, if at all, now.<br />
<br />
* In the event that the "last settings" file is unrecoverably messed up (probably from trying to load the data from a mod that is not on at present), then it no longer has the chance of throwing a bunch of errors when you go into the lobby. Instead it logs a couple of errors silently to your log, and gives you a fresh lobby with default settings.<br />
** The other changes in this release to make it less likely for "last settings" files to be unrecoverably bad are the second part of this solution, but there's always some edge cases (or suitably old data) that we can't work around.<br />
** Thanks to Puffin for reporting.<br />
<br />
== Version 2.510 Astro Train Safety Training ==<br />
(Released September 23rd, 2020)<br />
<br />
* Fix a bug where games with astro trains would crash<br />
** Thanks to CRCGamer for the bug report<br />
<br />
* Some additional improvements toward helping hunter fleet ships not suicide<br />
** Thanks to a save from Burner that let me reproduce this<br />
<br />
* Fix several typos in the game lobby/settings.<br />
** Thanks to Fenrakk101 for reporting<br />
<br />
* Hacking a conquest mode VG will cause it to transform into a regular VG<br />
** Thanks to crawlers for the suggestion<br />
<br />
* Fix a bug where the AI was not sending reconquest waves to unexplored planets<br />
** Thanks to Burner for reporting<br />
<br />
* Over the years, internally in our code we've had a variety of different terminologies for the "center color" for a player faction, which is sometimes the "main color" or "text color" or other things, and the "trim color" or "border color" that goes around the edges.<br />
** Apparently this has led to an error somewhere where we are inverting the main and border colors, so we're taking this chance to standardize all of the naming since it was something we were clearly making an error somewhere in, but couldn't see it in the code.<br />
** Now these are universally in the code referred to as the "faction center color" and "faction trim color".<br />
<br />
* As part of the above refactor, found a spot in GetDefaultFactionConfigurations() where we were assigning the player's trim color to also be their main color.<br />
** Thanks to Puffin for reporting.<br />
<br />
== Version 2.509 Melee, Stacks, And Fireteams ==<br />
(Released September 22nd, 2020)<br />
<br />
* Fixed missing descriptions for the Damage modifiers of TargetHullPercentageMissing, MyHullPercentageMissing, TargetShieldPercentageMissing and MyShieldPercentageMissing if not used in combination with the MultiplesOf comparison type.<br />
* Instead this was displaying Unknown DamageModifierBasedOn.TheModifierName twice in the tooltip.<br />
** Thanks to NR SirLimbo for fixing.<br />
<br />
* Fix a problem introduced recently by my hunter fleet performance improvements that was causing the Hunter Fleet to just sit around<br />
** Thanks to a number of people for pointing this out, including ArnaudB, CRCGamer and Minotaar<br />
<br />
* Tweak the journal messages about exogalactic war front units<br />
** Thanks to Ovalcircle for reporting<br />
<br />
* Fix a very longstanding bug with fireteam histories, where they would report the planets they were lurking on incorrectly<br />
** This won't apply to previously existing histories, just new histories<br />
** Thanks to a save game from Minotaar for making this really obvious to me<br />
<br />
* Make it harder for players to trigger exogalactic war units without allied factions<br />
** Several people have had thoughts about this<br />
<br />
* Some buffs to the stronger astro train variants<br />
** Thanks to crawlers for requesting<br />
<br />
* Tweak the stacking/splitting code to make it harder for ships to decide to stack and split themselves over and over<br />
** Reported by Gott365 and TechSY730 for reporting<br />
<br />
* Fixed some issues with the new-ish melee unit behavior of flying out to attack nearby enemies when otherwise idle:<br />
** Fixed a bug where a melee unit would go back to its prior location after a direct order from the player (like a normal move order).<br />
** Fixed a bug where a melee unit's memory of where to go back to after no targets were in range would persist across wormhole jumps (causing it to try to go to that location on the new planet, which doesn't make sense).<br />
** Fixed a bug where melee units wouldn't use their implicit attack-move behavior if their internal behavior flag had been changed away from default and then back. So new melee units would use the behavior, but ones that had been around for a while often would not.<br />
** Thanks to OzoneGrif for reports revealing these.<br />
<br />
=== Data Dump Improvements ===<br />
<br />
* Fixed a couple of problems that were leading "cmd:dump data tables" to actually crash the game rather than exporting things nicely. Sometimes the crashes were only intermittent, which was doubly "fun."<br />
** This obviously made this far less useful in terms of actually debugging anything!<br />
<br />
* In general with our data dumps, we've been using ObjectDumper in a customized fashion. But now that we're moving to use it in more places, we're customizing it even further and making it more efficient.<br />
** For the largest export, the GameEntityType, this makes the data go from 35.8MB down to 29.2MB<br />
** More importantly, it makes the data a lot more legible.<br />
** For all of the various lists and dictionaries and other collections, this also now gives us counts of how many items are in each one, which it did not do before.<br />
<br />
* Fixed a variety of other things that would be different in those exports on different machines, or at different runtimes, that thus would have been in the way of our log comparisons.<br />
<br />
* In our exports, a variety of cases of contents that would just have empty brackets now do not export the useless empty brackets. A good example is ArcenPoint, which was saying its coordinates and then four lines of empty brackets.<br />
** Additionally, a bunch of default values that would be "None" or "-1", or collections that are empty no longer export at all. This is consistent with things already not exporting that were 0 or false or an empty string.<br />
** This gets our GameEntityType down to 24.8MB, and even easier to read.<br />
<br />
* Fixed several places where the ExternalData was still keeping a parentobject reference on an object that was meant to be used by all the parents.<br />
** This then caused some of the calls in the mods and externaldata to need to slightly change again.<br />
*** Really this is just an easy search and replace for GetCollectionByPatternIndex() to have a first parameter of ParentObject now.<br />
<br />
* Added a new "dump external data" command:<br />
** This causes all computers involved in the current game (so not just the local machine in multiplayer) to immediately dump all their 'external data' from all entities (World, Factions, Planets, Player Accounts, and Ships) into the ExternalDataExports subfolder in the PlayerData on each machine. <br />
<br />
* Added a number of improvements to the dump logging, for attributes like: SkipWritingNullEntries, NotForDumpingWithDataTables, and NotForDumpingWithExternalData.<br />
** These help us control the way that dumping works, making for more readable and legible output.<br />
<br />
* For better exported data in general (both in terms of the external data dumps and the data table dumps):<br />
** We've now implemented to ToString() method on ArcenSparseLookupPair, Pair, RefPair, ThreeTuple, RefThreeTuple, FourTuple, and RefFourTuple.<br />
*** This lets them actually show whatever their contents are, rather than just the semi-gibberish of their outer type (which is also not informative in general).<br />
** Also implemented ToString() on DeathEffectType and DeathEffectType.OffenseTier, so that they actually show real data rather than just writing their names.<br />
** Also implemented ToString() on ArcenDynamicTableRow so that those say their InternalName rather than just what type of row they are.<br />
*** Of the many things this improves, you can now actually read which expansions or mods tables were modified by.<br />
** Also implemented ToString() on all of the various inheritors of IDeathEffectImplementation, to make the exports more brief and clear.<br />
*** Well, this one didn't actually make any difference, even with making ToString() a required thing for the interface to implement. Not sure exactly why this last one didn't work, but it's ok.<br />
<br />
* ArcenSparseLookup now implements ICollection, making itself render its contents properly in logs.<br />
** Both ArcenOverLinkedList and ArcenLessLinkedList now do the same.<br />
** Now all three of these expose IEnumerable, which lets them be iterated-over and render their contents in a sensible fashion too.<br />
** With the various changes here, we are back up to 28.8MB of data on the GameEntityTypeData export in the data tables export, but it's actually meaningful data that is using that space.<br />
<br />
* Added a new INeverDumped that can be used to make an entire class or struct not dump.<br />
<br />
* In all of our data dumps, when it is dumping lists and dictionaries and other collections it now gives some commentary after them that you can search for to look for problems:<br />
** If more than 1 million items, it will say BIGLIST-E.<br />
** If more than 100k items, it will say BIGLIST-D.<br />
** If more than 10k items, it will say BIGLIST-C.<br />
** If more than 1k items, it will say BIGLIST-B.<br />
** If more than 100 items, it will say BIGLIST-A.<br />
** This lets anyone use any standard text editor (Notepad++ is great) to search for either "BIGLIST" in general, or one of the larger-format ones.<br />
** If players in multiplayer suspect that there is a performance degradation on a client via a memory leak, then having anyone type "cmd:dump external data" and the client-who-seems-to-be-having-troubles search for BIGLIST-E and BIGLIST-D in particular in the resulting files should help find anything suspicious. Or people can send those exports to us to look at.<br />
** Quite aside from this, however, it lets us get a general idea of how much externaldata we are actually using, and what is attached where, which is useful for developers and modders anyway.<br />
<br />
==== How To Use The New Log Dumps To Help Find Multiplayer Errors ====<br />
<br />
* New explanations on how to use the log dumps for multiplayer debugging purposes are in here:<br />
** This one is less likely to be useful: https://wiki.arcengames.com/index.php?title=Category:AI_War_2:_All_About_Multiplayer#cmd:dump_data_tables<br />
** Whereas this one is very likely to come up as something to check: https://wiki.arcengames.com/index.php?title=Category:AI_War_2:_All_About_Multiplayer#cmd:dump_external_data<br />
<br />
== Version 2.508 Waverider ==<br />
(Released September 19th, 2020)<br />
<br />
* Fixed a couple of places in the metal flows tooltip where it was stating the left and right mouse buttons backwards. (There were three places in all, and we had only changed one of them).<br />
** Thanks to Daniexpert for reporting.<br />
<br />
* Fixed a rare exception that could happen inside GetControllingOrInfluencingFaction() when exiting the game either to the OS or to the main menu.<br />
<br />
* Fix a bug where waves were not spawning any units. This affected regular waves and hacking responses.<br />
** Thanks to weapon master, CRCGamer, DaniExpert, ArnaudB, Gott365 and probably others for reporting<br />
<br />
* The Zenith Trader no longer sells AIP-increasing black hole machines to the player<br />
** Thanks to TechSY730 for reporting<br />
<br />
* The Zenith Trader will no longer sell things to dead AI factions<br />
** Thanks to GreatYng for reporting<br />
<br />
* Really fix that Macrophage null reference in LRP bug that's been annoying badger<br />
<br />
* Some performance improvements for fireteams in general (and some extra improvements for hunters) in late game scenarios<br />
** Thanks to a giant save from crawlers for letting me see what was going on<br />
<br />
* When you see the name of a song in the Escape Menu, it should now be formatted in a more readable way. For example, it now shows "Waking To Darkness" instead of "WakingToDarkness"<br />
<br />
* Improve the text of several "You can't hack this because of...." messages<br />
** Thanks to GreatYng for reporting<br />
<br />
* The experimental "Astro trains get stronger after you kill some of them" code is now enabled for everyone, and the setting is removed<br />
** I've heard reports that it works okay<br />
<br />
* Allow the HRF to flush enemies from command stations and guard posts<br />
** Thanks to GreatYng for requesting<br />
<br />
* The "This faction has no allies, not even itself" message is cleared up; this was being triggered by dead AIs, usually after the civil war started<br />
** Thanks to a number of people for reporting<br />
<br />
=== Dark Spire Tweaks ===<br />
<br />
* Fix a bug that was preventing the Dark Spire from being suitably aggressive in late game situations<br />
** Thanks to crawlers and Gott365 for the bug reports<br />
<br />
* Other factions will now actively go after Dark Spire Conquest mode VGs<br />
** This should give some counterplay against the Dark Spire<br />
<br />
* To compensate for the fact that Conquest Mode VGs will be targeted more, they are also tankier<br />
<br />
* In conquest mode, the Dark Spire will get a bit more energy<br />
<br />
== Version 2.507 Bugfixes ==<br />
(Released September 16th, 2020)<br />
<br />
* Fix a bug where player-allied nanocausts that aren't allowed to kill command stations weren't properly expanding. Add a journal entry to point out to the player that this leaves their allied nanocaust vulnerable<br />
** Pointed out to me on discord<br />
<br />
* Fix a bug where the render vengeance generator hack wasn't completing<br />
** Thanks to a number of people for reporting, including jradishurr, Magiik and Gott365<br />
<br />
* Fixed several cases where cross-threading issues could lead to some issues in the selected-ships counter.<br />
** Thanks to MasterGeese and GreatYng for reporting.<br />
<br />
* Fixed several cross-threading bugs that could happen in GetIsWithinRangeOf() or GetIsWithinRangeOf_VeryBasicCheckOnly().<br />
** Thanks to GreatYng for reporting.<br />
<br />
* Fixed a bug introduced in the prior build that made it impossible to save most games that had outguard in them (all of them...?), and probably was messing with initial multiplayer sync, too. This was not seeming to affect every last save, but nonetheless was not good.<br />
** Thanks to Badger for reporting.<br />
<br />
* The "long range planning" code for the Macrophage now includes a lot more instrumentation for more detailed error messages. We started having some sort of error in at least some games starting the last release.<br />
** But after putting in the instrumentation (and having fixed the outguard serialization bug that also manifested in the same savegame), we no longer can duplicate the problem. So for now there's nothing more to do, but if it comes up again we'll at least know where it is.<br />
** Thanks to Badger for reporting.<br />
<br />
== Beta 2.506 ExternalData Overhaul Two ==<br />
(Released September 15th, 2020)<br />
<br />
'''This is kind of a nasty one, in that we're fixing a ton of things but potentially also breaking more things. External code-based mods are definitely broken again (sigh). But a bunch of things that were question marks for multiplayer are either now working properly for the first time (a few dozens of things), or are now verified-correct (even more dozens of things). So we're dropping back to beta briefly, to let people test things and let us know if there are any bugs that make this unplayable for some reason. Once folks have been through it sufficiently, we'll move back to the non-beta branch.'''<br />
<br />
* Previously, the dark spire ships that you could hack for had a starting mark level of X, and a max mark level of 4. Now they all start at mark 1 and level up like normal, but have a max mark level of 7 (because why not).<br />
** Essentially, tech unlocks for players probably did not work terribly well when the starting mark level of a player unit is greater than 1. And having a low mark cap on top of that can be frustrating for folks.<br />
** Specter used to start at mark3, now is 1.<br />
** Phantom was already mark1 at the start, but still is.<br />
** Okay, wraith was already mark1 at the start, and still is.<br />
** Anyhow, the level caps were a big part of what was messing with people, probably.<br />
** Thanks to crawlers and CRCGamer for reporting.<br />
<br />
* Fixed a potential nullref that could happen in CheckForInternalShipDeployment_DroneProducers_FromSimBGThread(), probably more likely on multiplayer clients than elsewhere, but definitely possible anywhere.<br />
** Thanks to Puffin for reporting.<br />
<br />
* Fixed a strange capitalization issue in the logging for faction deserialization where MinFIreteam and MaxFIreteam would thus show up as diffs.<br />
** Thanks to Puffin for the report.<br />
<br />
* New debugging command added: <code>dump data tables</code><br />
** This causes all computers involved in the current game (so not just the local machine in multiplayer) to immediately dump all their data in the same way that happens from "Dump All Data Tables After Load" from the debug section of the settings menu. <br />
** ''Please be advised that this will cause all of the computers involved in this game to freeze for something like 20-60 seconds, depending on their relative speeds, how many expansions and mods are installed, and so on. It's a good idea to warn people before you run this comment.'''<br />
** Aka, this writes a text file for each in-memory data table into a DataTableExports subfolder in the PlayerData folder. <br />
*** The purpose of this is mainly to use with diffing tools between one run of the game and another, to see what sort of data changes happened. If you are modding and made changes to some ships and want to see how those changes cascaded, this would be one way to do that. This is also a way for us to verify correctness when we make structural changes internally.<br />
*** In multiplayer, this can also be used to compare the contents of these folders between the host and various clients, to check for things that might be amiss thanks to mods or other local changes.<br />
*** To compare folders at a time, you'd need to share the contents of these folders between machines (zip and email, etc), and then run a folder-wide diffing tool like WinMerge to find any discrepancies.<br />
*** Lastly, if you're a mod author and concerned that your mod is adding to the data tables incorrectly over time, then you can use this to get snapshots of what those look like as you are playing. Normally this data should not be changing after the initial load of the application.<br />
** Never considered a cheat.<br />
<br />
=== Multiplayer And ExternalData Continued Improvements (Breaks Code-Style Mods Temporarily) ===<br />
<br />
* There are some issues with the data table dumps now actually dumping some game data.<br />
** To combat this, the ArcenOverLinkedList and ArcenLessLinkedList both no longer dump their firstItem and lastItem fields.<br />
** Hopefully we will still see the count of items in these, but that's really all we can do right now without getting into circular references by the very nature of these linked lists.<br />
<br />
* This also finally pushed us over the edge when it came to IArcenExternalDataPatternImplementation, and this is now becoming an ArcenExternalDataPatternImplementationBase abstract class that we can control a bit better in several different ways.<br />
** In general this will be a help for us with multiplayer sync, among other issues.<br />
** This class should never be directly inherited-from by things in External or mods, however.<br />
** Added a new ArcenExternalDataPatternImplementationBase_World, which is for use with things being attached to worlds.<br />
** And also a new ArcenExternalDataPatternImplementationBase_Faction, for things being attached to factions.<br />
** And a new ArcenExternalDataPatternImplementationBase_Squad for things being attached to ships.<br />
<br />
* Took this chance to fix a number of data structures that might not be multiplayer client-sync safe based on the fact that MP sync data might be missing and might need a catch-up:<br />
** AIReservesData (constructor updates, DeserializeExternalData updates).<br />
** Okay, 33 other classes needed the same update pattern, so we'll save you the list of going through all of those again.<br />
** Added a new ArcenExternalSubManagedData class, which all 34 of those classes now inherit from.<br />
*** This lets the increasingly-complex central logic from DeserializeExternalData be written only once, not 34 times.<br />
**** This is all handled, for the default case, via the new generic method DeserializeExternalDataAsArcenExternalSubManagedData().<br />
*** Also worth noting, we can no longer use constructors with arguments on this, because of how the logic is centralized. The default constructor is always called now, and then DeseerializeIntoSelf() is called after that if needed.<br />
**** This is doubly worth noting, since it makes sure that there are no cases where object initializations from the default constructor are not called.<br />
<br />
* While we are at it, we're marking the various lists and other collections as readonly in ArcenExternalSubManagedData-inheriting classes.<br />
** This helps us avoid ambiguity and extra code, and is a double reminder for us to review places where we could get into infinitely-expanding lists on multiplayer clients.<br />
*** Fixed the following infinite-expanding collections for multiplayer clients:<br />
**** The FinalComposition dictionary on PlannedWaves was going to infinitely expand while waves were incoming.<br />
*** Fixed the following "accidental data churn from throwing away collections on multiplayer clients":<br />
**** The DZPerUnitData ConversionList and ConversionBag.<br />
**** The metalByTier on DysonData.<br />
<br />
* Added a new ArcenExternalSubSubUnmanagedData abstract class for classes that is for the sub-data types that a few things use, like DarkSpirePerPlanet.<br />
** This adds some structure, but is not as fully managed as the main classes above it. These again help us to avoid some bad habits that can lead to memory leaks on clients.<br />
<br />
* Fixed a general cross-threading issue that could happen with Loci_ForUI in the dark spire. This could happen in single player or multiplayer, and we found it because of the new code rigor enforced by these new abstract classes.<br />
<br />
* The DeserializeDictionary utility method, and a few similar ones, no longer take their dictionaries as a ref parameter. That's now allowed syntactically for readonly dictionary fields, and it's not needed logically at all for dictionaries as a whole, which are reference objects and thus always passed by reference no matter what.<br />
** Same deal with ArcenRandomDrawBags, for the same reasons.<br />
** And same for some various working methods that were passing generic List<>s with ref explicit. It doesn't matter if the contents of the list are a value type, the list itself is still a reference type.<br />
<br />
* Fixed a client-only bug where certain things were being cleared incorrectly on the DLC2 "ZM" faction data object during faction sync, but now are not.<br />
** In that same faction, fixed another of the "ForUI" list cross-threading issues.<br />
<br />
* Added a ClearAndCopyFrom() method onto ArcenSparseLookup, which does what it says on the tin.<br />
** This is useful in places where we are no longer shuffling around sparse lookups by reference (think pointer), but instead are now keeping the lookups but needing to copy from one to another.<br />
** The need for this is pretty rare, but it's used in wave planning.<br />
<br />
* Discovered a rather dire issue from the last week or so, and have fixed it.<br />
** Essentially, the objects that previously inherited from IArcenExternalDataPatternImplementation (and now from a descendant of ArcenExternalDataPatternImplementationBase) are NOT UNIQUE per object.<br />
** So the fact that we were starting to store the ParentWorld and ParentSquad and so on on those was actually a major problem, and probably a source of some sort of random bugs in single player and multiplayer.<br />
** We were mostly saved by the fact that we ignored those properties and were using the Source object cast properly, which is what was supposed to happen.<br />
** But upon refactoring things, we ran into increasing problems with this. It has now been corrected, and this should hopefully also prevent us (or a modder) from making the same error in the future.<br />
<br />
* With the new way that we are using readonly for collections on the ArcenExternalSubManagedData and ArcenExternalSubSubUnmanagedData, we have to initialize all those collections properly in the constructor, which was not always happening before.<br />
** We now are just initializing them as part of their definition itself, which is easier to check for correctness and has the same end result and performance.<br />
** If we missed any of these, or heck if we made any typos in the many many other changes list above, then there will be errors when loading certain savegames or when during certain parts of gameplay.<br />
** We should be able to fix such issues very quickly, and for now we're not seeing any issues, but we'd definitely appreciate testers in both singleplayer and multiplayer.<br />
<br />
* It goes without saying, perhaps, that this breaks all of the code-style external mods again. We will probably break those a few more times in the coming weeks as we get things multiplayer-safe, and then will stop that.<br />
<br />
== Version 2.505 Multiplayer Alpha Starts, Take Two ==<br />
(Released September 14th, 2020)<br />
<br />
'''Let's try this again! This is one big reason we did a "soft launch" into MP alpha. If anyone is able to test tonight and let us know how it goes for you, then we will probably make the official "hey there's multiplayer alpha now!" posts tomorrow, unless new showstoppers are found. At this point there's the periodic minor "waiting for players" micro-hitching annoyance, but beyond that being a small thing, Chris was able to play for 18 minutes between two computers across Valve's network tonight. No permanent sync issues, no degradation in performance, nothing that seemed glaringly off. There will be more bugs, but the core stuff -- knock on wood -- seems to be working. [[:Category:AI_War_2:_All_About_Multiplayer#Selected_Short_Term_Todo_List|There's a good list of things that need to be done in the near term here]], and that's just in terms of general functionality, not MP-specific features.'''<br />
<br />
* Fixed a bug where "??? Name" was showing up incorrectly in the factions list in the prior build.<br />
** Thanks to Badger for finding the typo.<br />
<br />
=== Multiplayer Sync Initial Implementation Now Tests Out Initially Working ===<br />
<br />
* Followed several paths of code trying to fix the ship sync, but ultimately wound up reverting a lot of that code after we found the actual cause.<br />
<br />
* Found a one-line typo that was leading to infinite duplication of every fleet on the client every few seconds.<br />
** Essentially every fleet was trying to match to fleet 0, and never finding it, and then creating a new one.<br />
** This was leading to a really devastating amount of duplicate data, and confusing everything on the client.<br />
<br />
* Manually reviewed the code for all similar things, including factions and planets, and all of those seem good for now.<br />
<br />
* Discovered that it was possible for extra fleets to wind up on the client just hanging around after a full fleet sync. Those extras (usually were only one or two) now delete themselves.<br />
<br />
* The clients no longer automatically add 1000 to all of the PKIDs that they are syncing from the host. We welcome the extra conflicts at this point... maybe... as it will also lead to some sometimes-correct things that don't need to sync.<br />
** This was something we were doing as of a couple of versions ago in order to try to prevent things from fighting over the same dictionary spot.<br />
<br />
* At this point we have far fewer syncs needing to happen between the host and client, which is awesome.<br />
** The number of ships and fleets is consistent between the client and host, and the energy usage is also consistent, and so on (though energy usage may be misleading since that gets synced from the host as part of the ultra-frequent processing).<br />
** A bunch of ships are showing up as invisible on the client for whatever reason, we know for certain, but those ships that are showing up maintain sync properly.<br />
** There are still some extra ships in ship fleet lines on the client that should not be there, and may just be duplicate references to existing ships.<br />
** Overall the total stats on the number and size of messages sent and received on the clients and the server seem to be incorrect, although sub-parts are often correct.<br />
<br />
* The "Deletion Time!" header in the ship sync details log now only appears when there is actually something to delete, which is not all that frequently anymore.<br />
<br />
* Fixed a bug on the client and host in multiplayer where the total messages received, and the total bytes of them that were received, were far too low. A filter based on message type was incorrectly being applied to these overall counts, where no filter should have been applied.<br />
<br />
* Fixed the remainder of the network messages still not being properly logged, in size or number. There are two places where filters applied, and we missed the second one at first.<br />
<br />
* Fixed an issue where ships that were network-synced were properly added to fleets and the global registry, but NOT to the planet faction (and thus faction) registries. So they were showing up as invisible, despite syncing properly as of today.<br />
** Now the ships show up just fine!<br />
<br />
* Previously we had put some logic in place to not delete ships too fast on the client if they were not discussed by the host in a sync pass. But now that the sync passes are working, this is no longer needed (and in fact actively makes things look wrong for seconds at a time).<br />
** The game now does a much quicker job of removing these extras, and consequently there are not as frequently extra ships that should not exist in the fleet memberships sitting around.<br />
** It's worth noting that for 3ish seconds at a time right now, it is possible for these ships to hang around (but they only appear on the client, and can't be given any orders, which is confusing and annoying but a comparably minor thing and will be tamed soon when we improve how PKIDs are allocated so that fewer clashes happen.<br />
<br />
== Version 2.504 Clarity And Fair Play ==<br />
(Released September 14th, 2020)<br />
<br />
'''We're no longer on the beta branch, because we don't think that this will negatively affect the single player experience. However, multiplayer's alpha is still not ready to go. This build is focused on fixing things up to get things back working properly for single player (which of course also affects MP), and we'll be resuming work on getting MP ready now that this is out.'''<br />
<br />
* If a player-allied faction kills something that would grant rewards (science, hacking, metal), the game now sees if there were player ships on the planet too. If so then it grants the rewards to the strongest player on the planet.<br />
** This seems the path of least frustration for players<br />
** Thanks to Ymir for the bug report, and others for a spirited discussion on steam.<br />
<br />
=== Bugfixes ===<br />
<br />
* When placing wormholes on a planet, the game now makes an effort to make sure they aren't on top of eachother. In very rare cases, some map types could wind up with wormholes that basically overlapped eachother, which was very hard to work with.<br />
** Thanks to Mac for pointing this out.<br />
<br />
* Fixed a longstanding issue with the number of entities contained within a ship where it was showing much lower numbers than appropriate, because we were indexing into the wrong array of display numbers. Above 100 units, it should now show much more appropriate numbers.<br />
** Thanks to TechSY730 for the report that finally tipped us off to the potential cause of his strange area.<br />
<br />
* Fixed an issue that could cause exceptions in the target list sorting if ships died at just the wrong moment.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
* Fixed a very unexpected bug that our recent extra-strict ExternalData checking logic let us find. Essentially it was somehow possible to get a second Praetorian Guard faction for a single AI, although we're not quite sure how. The game now actively clears those out when it is loading a savegame or settings as a template, to keep you from having double-strength PG forces for no apparent reason.<br />
** Thanks to Deathlymad and Metrekec for reporting, and for providing the savegame that let us practice testing and fixing the issue.<br />
<br />
* Fixed an exception that could happen at various times if the spire debris data was null when it was thinking about making notifications relating to them.<br />
** Thanks to jradishurr for reporting.<br />
<br />
* Fixed a minor visual error where it would say "ERROR: my FleetMembership is null!" if you were viewing a tooltip or popup window with a ship in it that had died. It now will say "This ship has died." instead, if the ship properly died (which is likely to be the case).<br />
** Thanks to GreatYng for reporting.<br />
<br />
* Preventatively 'fixed' theoretically-possible-but-not-encountered bugs (that might not actually have been bugs in the end relating to the following, all based on the new ExternalData changes:<br />
** Winning a game and getting a superterminal achievement (probably not likely).<br />
** Exceptions in notifications about wormhole invasions (this one probably would have been hit eventually).<br />
** Exception in notification tooltip about spire debris (again was likely to be hit).<br />
** Exception in notification tooltip about instigators (very unlikely).<br />
** Two exceptions in notification tooltip about astro trains (somewhat likely).<br />
** Exception in notification tooltip about relic trains (unlikely except maybe for multiplayer client).<br />
** Exceptions in five tooltips for DLC2 (likely to be hit).<br />
** One other exception relating to DLC2.<br />
** Possible exception with the Shark B plot on.<br />
** Several possible exceptions in writing out the list of AI factions and their subtypes (most were very unlikely, except maybe in multiplayer on clients).<br />
<br />
* Fixed a pretty huge bug where if certain entities died to remains (rather than permadeath), they would give AIP every time they died to remains, but when the normal permadeath setting was on they gave no AIP. This was the opposite of our intention and has apparently been incorrect since July 23rd.<br />
** This meant that things like GCAs, etc, would not give their proper AIP on death.<br />
** Thanks to ParadoxSong, Strategic Sage, crawlers, Isiel, and Puffin for reporting and helping track this down.<br />
<br />
* Regular engineers are no longer part of the fleet membership selections for anything that you can get via battlestations or citadels. Instead, combat engineers are used for those cases.<br />
** This will not affect existing savegames, only new ones.<br />
** Thanks to ultamashot for the report.<br />
<br />
* On September 6, we added the following: "QoL tweak for repair. Any ships on a planet where you outnumber the enemies 10 to 1, or the enemies have less that .2 strength are eligible to be repaired immediately. The previous rule was 'Any ships on a planet without enemies'"<br />
** This now only applies to ships and structures of factions that are friendly to the humans. Any neutral or enemy factions will now use the old style of logic that existed prior to September 6th.<br />
** This prevents the AI and Exos in particular from developing invincible shields when they have overwhelming firepower against you, among some other unintended consequences.<br />
** Thanks to TechSY730, crawlers, and MasterGeese for reporting.<br />
<br />
=== Fireteam dynamic resizing ===<br />
<br />
* In the late game, powerful factions can have hundreds or thousands of fireteams, which can make LRP threads run very slowly.<br />
* Each faction using fireteams has some variables that control 'how large should my fireteams be'. <br />
* Now for every 50 fireteams a faction has, it will require future fireteams be larger 1.5x larger. If a faction starts losing fireteams, the size requirements will go back down<br />
** The end result is fewer but larger fireteams, which should be a nice performance boost. Note this won't really help existing games as much as it will help new games to never have that many fireteams at all. Applies to all factions that use fireteams except the Imperial Spire, since that ends the game quickly<br />
<br />
=== AI Difficulty Description Rewrites ===<br />
<br />
* The tooltip descriptions for AI difficulties have been updated after folks have given us indication that there was some confusion based on the old ones (particularly sometimes players felt bad for playing too low, or did not understand the true purpose of difficulty 10, etc):<br />
** Difficulty 1:<br />
*** Old: So easy it might be asleep.<br />
*** New: The AI is effectively dormant; this difficulty is good for practicing the game without any real opposition.<br />
** Difficulty 2:<br />
*** Old: Actively does stupid things.<br />
*** New: The AI will only utilize its most basic subroutines. Retaliation will be minimal in response to your efforts.<br />
** Difficulty 3:<br />
*** Old: Excellent if you're just wanting to mess around with no stress and you've never seen an RTS, ever, before.<br />
*** New: The AI is conscious, but will operate primarily in a reactive capacity. Most of your opposition will be in the form of defensive AI forces in enemy territory.<br />
** Difficulty 4:<br />
*** Old: If you're only vaguely familiar with RTS games, this might give you an interesting time. But bear in mind all the cool and clever tricks aren't remotely here for the AI yet.<br />
*** New: If you’re ready for a little push-back from the AI and some confrontation on the homefront, this will be a good introduction to some of the behavior you can expect from higher difficulties.<br />
** Difficulty 5:<br />
*** Old: If you're here for the first time, but know your way around RTS games, this isn't an awful place to start. The AI is partially brain-dead still, but it should give you an interesting time. But if the game seems too easy, you'll know why.<br />
*** New: The AI takes your presence a bit more seriously. You may find your attention split from time to time and will have to more carefully consider the repercussions of your choices and how the enemy will react to them. Ongoing reckless expansion on your part has the potential to incite a deadly response from AI.<br />
** Difficulty 6: <br />
*** Old: If you're solid at RTS games, then this is what would typically be considered 'Normal' for you... potentially. The AI doesn't have its full bag of tricks yet, but it's still pretty crafty and is starting to have some of its tricks. This difficulty is also great to use if you're really wanting to have the AI be there, but some other factions be the MAIN threat. This will keep the AI interesting but not on your back all the time.<br />
*** New: Against a Difficulty 6 opponent, your choices are really starting to matter. You will notice more devious tactics being used by the AI and will need to watch your back as you claim assets and territory. Other factions have the potential to be more threatening depending on how you set them up, but the AI will continually make its presence known.<br />
** Difficulty 7:<br />
*** Old: Players in the first game had a saying, that 'the real game starts at difficulty 7.' And while that is kind of... rude?... there is also some truth to that, in that the AI is finally fully unshackled. There are a few truly nasty things for the AI that you would still need to turn on in the AI Behaviors section of the Options tab if you really want full pain, but this is a fully competent AI. This is also the difficulty that Chris, the original developer of the games, plays at. It's fun and he can play in a relaxed fashion and not be super focused on every detail, but still win only about a third of the time playing that way. So if that gives you some measure. He plays most other RTS games on their max difficulty or close, not that that's always saying much.<br />
*** New: This is where the AI stops holding back and utilizes all of the strategies and resources at its disposal to try and keep you at bay as your power grows. Its economic power is still somewhat limited, and while you can still get away with being a bit of a nuisance early on, the enemy won't hesitate to put you down if you make yourself too much of a threat.<br />
** Difficulty 8:<br />
*** Old: This is the sweet spot for veteran players. The AI has all its tricks, and has a bit of a stronger economy and stronger responses, too. You COULD make the argument that the economy of the AI at difficulty 7 is a bit on the weak side, so it's not that this is a cheaty AI or something. For players who are really paying attention and managing all the small things and want to have a drag-out battle, this is the difficulty of choice. If Chris really wanted to white-knuckle it, he could probably maintain his 30% winning streak at this level. But he's not into that kind of stress. There's a good chance you're better at RTS games than he is, though, if you're a veteran in particular, so maybe that's not so much stress for you.<br />
*** New: If you take the fully-functional Difficulty 7 AI, provide it with a bit more fair allotment of assets, and make it more sensitive to your actions, this is where you end up. Ideal for veteran players really looking to test themselves.<br />
** Difficulty 9:<br />
*** Old: Are you super awesome at RTS games in general, and this one in particular? Difficulty 8 is just proving too passe? This keeps all the tricks from before, but cranks up the economy and some of the frequency with which the AI will harass you. You could argue that at this point it is getting to be slightly a 'cheating AI,' but frankly things are so lopsided it is hard to make that kind of distinction. If you're so much better than the average player at managing your empire, then... I guess this is kind of taking away that advantage that would otherwise let you roll the 'fair' AI? We get into murky waters here, but a subset of veteran players enjoy this difficulty, so here it is.<br />
*** New: Making for an exceptionally tough adversary, Difficulty 9 stacks the odds in favor of the AI. Armed with a robust economy, the enemy will be ruthless in their attacks and relentless in their harassment of your defenses. To overcome this challenge, you will always need to be on full alert to prevent the AI from exploiting any weakness in your strategy.<br />
** Difficulty 10:<br />
*** Old: This difficulty level is not meant to be fair. It's using all of the AI's legitimate tricks, and it has its economy and whatnot cranked up to 11. If you win against this level of AI, that's something that we traditionally consider 'a bug.' You are supposed to lose, every time. Please file a bug report with how you won so we can fix it. So why do we have this difficulty level? There are some players who are just THAT GOOD, and they spend their time trying to find weaknesses in the AI despite its unfair advantage. A lot of improvements to the AI have come about because of players on difficulty 10 telling us how they won. We usually adjust unit balance or AI logic in response to difficulty 10 victories, we don't just make difficulty 10 harder. That would defeat the point.<br />
*** New: Economically, the 'SuperCat' AI gets a substantially unfair advantage. Militarily, they still play fair but will be able to bring overwhelming force against you in most every situation, all the time. A subset of dedicated players enjoy this difficulty level, but it is not fun for most. Beating the SuperCat even once is considered a crowning achievement, and usually involves a player discovering an unbalanced tactic. If you find yourself in the enviable position of being able to have your name added to those who win a 'pure' difficulty 10 win, please file a bug report with any tips you have on how we can (legitimately) upgrade the AI to counter your winning strategy. This back-and-forth arms race between the players and the developers has led to some of the most interesting innovations for all levels of AI for the game (and its predecessor), and it is also a very specific style of brutal gauntlet that certain dedicated individuals enjoy throwing themselves into.<br />
** Thanks to Tzarro for writing the new descriptions for us, except for the new difficulty 10 description.<br />
<br />
== Beta 2.503 Multiplayer Not Quite Ready ==<br />
(Released September 11th, 2020)<br />
<br />
'''This remains on the beta branch in case there are more singleplayer issues. As far as multiplayer goes, things are not stable enough to do any real testing. There is an issue of some sort that causes fleets to infinitely multiply copies of themselves on the client, which leads to a lot of lag and other problems. There's also an issue with various ships syncing in and out of existence in funky ways, which essentially makes multiplayer unplayable. This is something that is going to take more hunting, but it's all one cluster of issues, and once it's resolved multiplayer should be pretty ready to go. Really glad we did a soft launch! It would have been awesome to have people able to play multiplayer over the weekend, but we're just not quite there at the moment. Hopefully in the first couple of days of next week we can figure this out, but for the moment our brains are fried. More to come soon!'''<br />
<br />
* There's now extra error handling in the "stage 3" faction logic, to keep that from ending the entire game when those happen. It reads:<br />
** DoPerSecondLogic_Stage3Main_OnMainThreadAndPartOfSim Error for faction [name] (index [a number]). Consider restarting the game, as many other things may now go wrong because of this first error. And please report this! Error: [error text]<br />
** This will probably solve things like paralysis counters not counting down when there are such errors, but you're still likely to have a strange time.<br />
** Thanks to StarKelp, Mac, and gigastar for reporting.<br />
<br />
* Fixed a bunch of places in notifications where it was still looking to the old locations for an out of date icon. We will have real icons in the future for those, but for now the placeholder will no longer throw an exception.<br />
** Thanks to jrad for reporting.<br />
<br />
* Fixed an exception that could happen when killing instigator bases, in the notification tooltip for them.<br />
** This is another regression... kind of... from the last few betas. This actually will make clients more robust in multiplayer, though, so it's better than just a straight regression fix.<br />
** Thanks to TechSY730 and jradishurr for reporting.<br />
<br />
* The Civilian Industries mod has been updated to be compatible with the new versions of the game.<br />
<br />
=== Multiplayer Ship Sync Fixes ===<br />
<br />
* Added a setting to the networking section of the settings menu: Log Human-Readable Ship Network Syncs To Disk<br />
** Only relevant on multiplayer clients, not the host. Will majorly slow the game down, but dumps a huge amount of networking info to the disk in the NetworkHumanReadablyShipSyncLog.txt file in the PlayerData folder. This gives a message for each ship that was changed or deleted and why that was done, as well as what planet it was on and who owned it. When syncs are doing funky things, this is a way to manually review it and find out why.<br />
** This required us putting in a LOT of extra code to handle log<br />
<br />
* The current sync cycle is now sent with the divergent data sets, hopefully leading to clients not deleting things they just fixed (because that was totally happening before. Logs are a magical thing.).<br />
<br />
* Discovered a major oversight in our sync code, where basically once something had been synced once it was then being synced every sync cycle forever after that.<br />
** This was a huge cause of lag for multiplayer, and made things disappear inappropriately, probably.<br />
** There are still other things wrong with the ship sync, though, that we can see in the new logs.<br />
<br />
* The sync code has been made more robust in general, now syncing the type of entities as well as what faction they belong to.<br />
** These are often incorrect, when there are catastrophic different uses of primary key IDs anyhow, so getting those right is a good thing.<br />
** It occurs to us that maybe this is overkill, since if these are wrong then probably the planet or at least the location would also be wrong? But... let's leave it in for now, and maybe make an option later for skipping it. It's not a lot of data to transmit or a lot of extra processing.<br />
<br />
* Fixed a couple of issues with reusing entities as different ship types, where it will now properly add or remove or reassign system types on them.<br />
<br />
* Fixed some issues with reusing entities during sync where they were not being added back to the central lookup of entities, leading to future syncs to fail on them forever.<br />
<br />
* Put in some logic to improve the number of loops before we remove something that isn't being synced properly, to make it based on the number of loop counts rather than the amount of time something has been alive (since things that have been alive for a while can get fully synced later).<br />
<br />
* Fixed some conflicts that could happen with entities in the central lookup on the client in multiplayer, if the order of registering and unregistering entities gets out of sync.<br />
<br />
* Intentionally desyncing the PKIDs of ships, wormholes, and fleets on clients compared to the host.<br />
** Trying to reuse entity IDs was often causing some notable problems, and they were rarely in sync as it was.<br />
** This forces a sync cycle for every new ship and fleet that is created, but makes conflicts on the client a lot less likely.<br />
** This may not be a good long-term solution, but a refactor to avoid the conflict space is potentially where we're at, honestly. That will take days, and add a lot of bugs temporarily, so it would be great to avoid it.<br />
<br />
* At the moment the game creates infinite extra fleets on the client, slowing it down progressively. This makes it effectively unplayable.<br />
** There are also about a thousand ships that it will routinely delete from the client, then re-add, then delete again. Also making things unplayable. Still looking into it, but this is likely to be a Monday thing, as this is not a simple matter.<br />
<br />
== Beta 2.502 Regression Fixes ==<br />
(Released September 11th, 2020)<br />
<br />
'''Note that this build is still in beta in order to let people have a chance to run into any more regressions that we may have introduced. So far none of the regressions have indicated any errors in older builds, which is a nice thing. Though in the process of making the prior beta build, we did fix a number of "useless extra data" things, so even if we don't find any new bugs that were older, these regressions were still worth it to ensure data accuracy. It is quite annoying in the short term, though, and we really appreciate the folks taking the time to test it out.'''<br />
<br />
* Add some new voice lines when the player is attacked by the Nanocaust<br />
<br />
* Hopefully Zenith Forcefield Generators will now return after being pushed<br />
** Thanks to GreatYng for reporting, and Puffin for reminding us of the fix<br />
<br />
* Fixed a bug from the last couple of builds where chat commands were failing in general.<br />
** Thanks to Magiik, MasterGeese, gigastar, and Richard333 for reporting.<br />
<br />
=== Fixes To Regressions From Prior Beta Build ===<br />
<br />
* Fixed a bug in the latest beta build that was causing new games to constantly error out with autosave data not being added properly.<br />
** This is one of those "externaldata is now more explicit" things, but this is an example of us choosing the wrong explicit option this time around.<br />
** Thanks to Puffin for reporting.<br />
<br />
* Fixed an exception that could happen when trying to generate notifications about AI reserves before their data was initialized. This was caused by the last beta, but is better to have it handled this new way (so, yay error, this time).<br />
<br />
* When there are errors in generating a galaxy, it now no longer lets you into the galaxy to play (since that leads to many random errors after the real one with the map not generating).<br />
** Random things might include lots of planets belonging to no one, among other things.<br />
<br />
* SeedStartingEntities_LaterEverythingElse during mapgen now has a lot of new exceptions it can throw if various data is missing that it is supposed to have.<br />
** Mostly these are related to the AI and its subfactions (hunter, warden, and PG), but there's also one for if risk analyzer data is missing.<br />
** Prior to the last beta, it seemed to have been just using blank data, although it's impossible to be sure. And in the last beta, it was throwing an exception.<br />
** We then tested all of the factions in the game and the first two DLC, and the only three types that threw exceptions in this area were the AI subfactions (hunter, warden, and PG).<br />
*** We could use more robust testing of the game starting with various factions and them having various settings, though, to make sure that it's all going across properly (this is just in single player, not even multiplayer).<br />
** Thanks to Puffin and jradishurr for reporting.<br />
<br />
* Fixed four typos in the last beta that were not properly having the "related AI and subfactions" properly reach for one another, which led to missing or misapplied settings on game start.<br />
** This then left the Praetorian Guard still not working properly, because they have no custom fields in the lobby and thus were never having a reason to initialize. That probably was not a problem, but to keep things consistent and safe we are now initializing it when the general "AIDifficulty" field is processed.<br />
** For the record, prior to the most recent beta this means there were not actually any errors, but now we do have protection in place in case such an error pops up in the future. But for the time being, these errors were just in the most recent beta, which is gratifying to know.<br />
<br />
* Fixed a couple of logic errors with risk analyzers in the most recent beta that was causing their notification to show up wrong as well as also firing them immediately on game start.<br />
** They now should work properly again, and if the notification is going to be wrong, it will be more informative in its wrongness.<br />
** Also fixed the fact that this could happen when AI Risk Analyzers were not even enabled as a faction.<br />
** Thanks to Puffin for reporting.<br />
<br />
== Beta 2.501 First Raft Of Multiplayer Fixes ==<br />
(Released September 10th, 2020)<br />
<br />
'''This one is on the beta branch on Steam and GOG because of how much we changed with the "ExternalData Accidental Creation Avoidance" section. There may be legitimately new bugs that we introduced from that, or there may be old bugs that now simply show themselves with error messages. Either way, we don't want to inflict that on everyone, so please use the beta branch to help us test this one out.'''<br />
<br />
* There is a '''list of known issues with multiplayer''' here: https://wiki.arcengames.com/index.php?title=Category:AI_War_2:_All_About_Multiplayer#Selected_Short_Term_Todo_List<br />
** It's debatable how playable the alpha is at the moment, given the issue with the client ships deleting themselves rather than syncing, and given some of the (essentially) client-side memory leaks. Those two things will be my main priority tomorrow, unless something else more pressing comes up (like fixes to things broken by the ExternalData stuff).<br />
<br />
* A new button has been added on the main menu above the forum link that links directly to the AI War 2 discord channel.<br />
** Thanks to Metrekec for suggesting.<br />
<br />
=== Better Default Screen Resolutions! ===<br />
<br />
* Fixed a bug where the fullscreen resolution was still being saved into newsettings.dat rather than graphicssettings.graphics.<br />
** This meant that the fullscreen resolution was being sent over cloud sync, when really that should not be, since that is a machine-specific setting.<br />
** This may wipe out your prior values for the fullscreen resolution, requiring you to set it again.<br />
** Thanks to jrad for reporting.<br />
<br />
* At long last, added a startup feature that folks have been wanting for a while: better default screen resolution, for a better first impression as people start the game for the first time.<br />
** Previously, this particular game was just having a default of opening in windowed mode and 1024x768px, since that will fit on most monitors.<br />
** One of the reasons for this is that opening directly in fullscreen mode can cause bugs, particularly when settings are copied from one machine to another. But we are using fullscreen windowed mode, which reduces the chance of fullscreen bugs, and we also have our graphics settings not set to cloud sync for the last year or so.<br />
** With that said, now the game will automatically (first time opening it on this or future versions on any given computer) set itself to be fullscreen mode with your desktop resolution.<br />
*** It also will set your windowed mode defaults to be your desktop resolution minus 80px width and 100px height. So if you do flip it back to windowed mode, it should be at a size that feels sensible for your machine.<br />
** If you are using a very high-DPI monitor on an underpowered machine (for instance how Chris is testing with a late 2013 MacBook Pro 15" that is below minimum specs for the game), then you may want to lower the fullscreen resolution to something that machine can handle more gracefully (for instance, with ship graphics off and only running at 720p, that below-specs machine runs the game great).<br />
** Note: if you are already in fullscreen mode, then unity just reports what your current fullscreen resolution is. So it will save itself to that, and then set your windowed mode resolutions to be a bit smaller than the current fullscreen mode. Normally this game opens for the first time in windowed mode until this logic kicks in, so this only applies if you already have a current fullscreen setting active.<br />
<br />
=== Multiplayer Fixes From First Alpha ===<br />
<br />
* If there is a null result from FindArcenSteamClientConnectionByConnectionID in OnMessage on a Steam host, it now will write a more detailed and informative message as to why.<br />
** Additionally, in general OnMessage on the Steam server and client is now far more instrumented if those wind up with issues.<br />
** This won't actually solve any problems, but for the case where there was a client disconnect on connect, this should tell us what is going on more.<br />
** Thanks to StarKelp for reporting.<br />
<br />
* The numerical order of the detailed networking sync logs is now better regardless of OS file sorting, as it gives leading zeroes where needed.<br />
<br />
* While in the lobby, or while players are still connecting, the game no longer tries to run the general sync-correction code. This was an oversight in general, and was leading to various errors that would keep popping up until the host saved in-game and clients disconnected and reconnected.<br />
** This was the chief cause of the ""Fixed attempt to read more faction data than we had factions" error on the client.<br />
** Sync was already being handled as well as it needed to be in the lobby in particular: all it needs to do is make sure that your UIs are consistent, which it does. The actual underlying data about incomplete factions and such that can't be seen yet are really quite irrelevant at that point, and so it actually skips a lot of that data, which was incompatible with the full main-game-style sync. As soon as you start a game from the lobby, it already doing a much more robust generation and transmission of the data.<br />
** After loading into the game from the lobby, however, it seems that that initial sync is not as complete as we had hoped, so that's another area for us to now investigate.<br />
** Thanks to StarKelp and his play group for reporting.<br />
<br />
* Fixed a bug in deserializing player accounts, which was something that was leading to the immediately-after-lobby sync being broken.<br />
<br />
* Fixed a harmless extra blank fleetID that was being sent as part of the PeriodicWorldExtrasSync, which made them look inconsistent but did not cause other problems.<br />
<br />
* Fixed a larger bug that was actually preventing deserialization of divergent ships from working properly if the ship did not already exist on the client.<br />
** We had fixed this the other day, but made a mistake in the fix and had to do it over. Now it works!<br />
<br />
* There are still some more issues with syncing divergent ships that have external data on them, and we're not sure why yet.<br />
** The deserialization code for external data now has extra error handling in general, so that we can be more informed if something like that happens during sync or a load off of disk.<br />
<br />
* On the ArcenSerializationTester, added AppendIfActive() and AppendLineIfActive(), which are basically like Append and AppendLine().<br />
** These return a ArcenSerializationTesterWriter so that they can be chained into concisely readable calls like other parts of the code.<br />
** We want to be able to write more complex data in for informational purposes without it being the full WriteHeaderStringIfActive(), and without having to do string concatenations that hit the GC.<br />
<br />
* Several pieces of new logging are now in place to help us more easily identify problems syncing unit data, and external data in general.<br />
** We were seeing some mighty funky stuff on ExternalData syncs failing in multiplayer, and are trying to understand what is happening and why.<br />
<br />
* A WHOLE lot of extra error handling and instrumentation has been put in place around ships and externaldata in general.<br />
** Basically if something goes wrong, we don't want it to do so semi-silently. The various problems that most people were seeing in the first multiplayer alpha version were really downstream issues from the real errors, which were largely silent.<br />
<br />
* Found and fixed a part of the externaldata serialization that could be null in some cases, requiring us to instantiate it even on a partial sync.<br />
** This is something that we had already guessed we would have to do, based on us doing the same thing with ships themselves last version, but the silent errors happening here took us several hours to figure out what was going on. It's fixed now, but there will be more cases of this, probably.<br />
** With this fixed, the divergent ships no longer throw any errors. However, there are still some major differences between the client and the host that need to be looked at.<br />
<br />
=== ExternalData Accidental Creation Avoidance ===<br />
<br />
* Put in several fixes to potentially remove ScourgePerUnitExternalData from accidentally being created on any unit that was part of a fireteam.<br />
<br />
* This is going to break code mods temporarily.<br />
** GetCollectionByPatternIndex() on externaldata now takes a new ExternalDataRetrieval enum, which can either be CreateIfNotFound or ReturnNullIfNotFound.<br />
** The default used to always be CreateIfNotFound, which was nonobvious and was causing things like scourge data to appear on non-scouge units. But very likely it was also causing all sorts of other data to be erroneously initialized. This wouldn't have broken anything, but was certainly bloating savegames prior to this version.<br />
** For reference, all of the methods for getting these are expected to follow this sort of pattern: GetScourgePerUnitDataExt( this GameEntity_Squad ParentObject, ExternalDataRetrieval RetrievalRules )<br />
*** In the main game and first two expansions, this led us to having to correct 112 locations in 26 files. That in turn required another 705 secondary fixes.<br />
**** This may seem excessive, but being able to verify that we are correctly initializing data only when needed is a worthwhile goal, and it makes code clarity so much greater.<br />
*** There are a variety of places that this may make a difference based on our changes thus far (aside from whatever bugs we have introduced):<br />
**** Reinforcement spawning may be more correct now. There was previously some logic that may never have been hit if it was originally pointed at a non-sentinels faction, but now it will hit it.<br />
**** AI sentinels data will no longer be put on every faction during the post-victory achievement check. That was likely causing some problems (which someone had put a mantis report about post-victory slowdown and exceptions, so it's possibly related).<br />
**** When checking faction intensity in general, a whole host of wrong data collections are no longer created on random factions.<br />
**** Several things about astro trains can no longer cause accidental data on wrong factions.<br />
**** If astro trains that should be spawning AI waves or adding to the AI budget are pointed at a wrong faction, the data no longer goes into the void but instead an actual error pops up.<br />
**** Several hacks will now show exceptions rather than throwing their data into the void if they are pointed at wrong factions.<br />
**** There are a wide variety of places where the AI difficulty or AIP of an AI were referenced, and which might now throw a nullref exception. If any of those DO, then that is actually a good thing, because in the past those have silently been returning 0 for both rather than using real numbers. If neither of those cause any errors, then that's even better because we know our other code has been correct already. Fingers crossed for more of the latter than the former.<br />
**** Any time any fireteam was disbanded, all of its units were assigned blank scourge external per-unit data. Fixed. Oh, actually every time it looped over the units in a fireteam. Fixed that, too.<br />
**** ExoData is no longer added to every last faction in the game (notifications checks were causing that).<br />
**** It's possible that some tooltips or notifications might throw exceptiosn now, particularly if you load a savegame and mouseover them before unpausing. If these throw exceptions, then basically this is a case where it would have been gibberish data previously, so it's still useful.<br />
**** Various pieces of code like "don't run the nanocaust info if it's not set up" will now work as their programmers likely originally intended.<br />
** This probably introduced a number of new bugs from typos, along with whatever bugs it uncovered, so this is why we're heading back into the beta branch temporarily.<br />
<br />
== Version 2.500 Multiplayer Alpha Begins Now! ==<br />
(Released September 9th, 2020)<br />
<br />
* Removed some extra code that was accidentally included that was preventing the new findp command from being able to cycle through planets properly if there were multiple matches.<br />
** Thanks to cml for reporting.<br />
<br />
* PlayerAccounts are now also passed to cheats/commands (not to be confused with gamecommands), so that now if there are multiple people in charge of a single faction, commands that are sent can affect just one of the players if needed.<br />
** This is now used for the findp command, which lets two players share control of a single faction without the findp of one player affecting the other.<br />
<br />
=== Multiplayer Readiness In The UI ===<br />
<br />
* The multiplayer button on the main menu now has a small bright "Now in public alpha!" tag on it, to make sure no one misses that.<br />
<br />
* In the multiplayer section of the main menu, a new "Alpha Testers: Please Read!" button has been added.<br />
** This has a tooltip that says:<br />
*** Click to open a web browser that explains the current state of the multiplayer alpha (that changes almost by the day), as well as questions for testers (also get frequently updated), a history of recent improvements to multiplayer categorized by date, and a list of work items that are upcoming.<br />
*** Most important of all: if you are running into problems, please take the time to report them to us, rather than assuming someone else will report it. That is absolutely the most helpful thing we can ask for.<br />
** And its link goes here: https://wiki.arcengames.com/index.php?title=AI_War_2:Multiplayer_Alpha_And_Beta#What_Does_Multiplayer_Alpha_Mean.3F<br />
<br />
* At the top of the networking section of the personal settings menu, there used to be an option called "Enable Multiplayer Alpha"<br />
** This had warnings about how multiplayer alpha was not ready, but that you could click this to enable it anyway.<br />
** This option has, happily, been removed!<br />
** Previously, if that option was not enabled, then clicking the Multiplayer button on the main menu would show a popup with a message from Chris explaining the current state of multiplayer and projected timelines.<br />
*** That message has been removed, and clicking the multiplayer menu now just opens it, again, happily.<br />
<br />
=== Included Mod: Civilian Industries Pre-Multiplayer Finalizations ===<br />
<br />
* Final optimizations for Multiplayer, touching up loose ends.<br />
<br />
* Many nerfs in regards to AI Raids.<br />
** A 20-40%, based on intensity, reduction to AI Raid strength.<br />
** A roughly 100% longer warning before they fire.<br />
** They now only spawn a singular wormhole per planet.<br />
<br />
* Large scale Trade optimization<br />
** The Grand Station will now output a larger amount of cargo ships on demand.<br />
** Many more Cargo Ships can accept trade routes every second.<br />
** Trade Stations will no longer be built on planets that construction ships couldn't safely reach from the Grand Station's planet.<br />
** They are now much smarter about stockpiling resources for local militia use before exporting them.<br />
<br />
* Additionally, a large number of undocumented bugfixes that were lost in the surge of all these multiplayer-based updates.<br />
** The most notable fix is a fix to the Exception that could pop up when mousing over the Raid notification.<br />
<br />
=== Multiplayer Sync V1.0 ===<br />
<br />
* Added AddBytesWithFormatAndColor() and AddBytesWithFormat() for writing bytes nicely to an ArcenDoubleCharacterBuffer.<br />
** This cuts down on our repeat code for easy formatting of things that might be in bytes, KB, or MB.<br />
<br />
* There is now some basic sync stats that will show in the escape menu during multiplayer, and then more detailed sync stats that can be turned on at will.<br />
<br />
* New setting in the network section of personal settings: Show Network Sync Details In Escape Menu<br />
** Only applies when you are in multiplayer, and has different outputs on the host versus clients. Gives statistics on how much the game has had to correct in terms of divergent data between the client and the host.<br />
** Note: The PKIDs and squads are actually checked for divergences, and those are shown in more detail on the client than the host. All the other things are sent in a periodic overwriting fashion, without checking for divergences, as the bandwidth used (which you can see with this setting on) is less disruptive than the CPU cycles required to do divergence checks.<br />
<br />
* The width of the columns in the escape menu are now a little wider.<br />
<br />
==== Fixes Based Off Testing Initial Implementation ====<br />
<br />
* Fixed a bug where the client in multiplayer was incorrectly calling a host-style method when trying to tell the host about divergences in squad sync.<br />
<br />
* Fixed a bug in multiplayer sync where the squad sync stage would never complete or advance beyond the first 20th of the squads, instead just doing those ones over and over again.<br />
<br />
* Fixed a minor bug in multiplayer where the client was telling the server about mismatches even when there were none (just sending an empty list to them).<br />
<br />
* Fixed a one-line bug in multiplayer sync that hilariously just caused all of the ships on the client to be deleted within a few seconds of playing.<br />
<br />
* Put in extra debugging for Client_AcceptDivergenceDataFromHost(), since it was having some exceptions happen.<br />
** In general at the moment, actual divergent ship data is coming across slightly garbled.<br />
<br />
* Temporarily disabled the planet and world-extras sync steps in the multiplayer sync code, as those both were throwing errors on the client side.<br />
** With those disabled, we can see that the ship sync, fleet sync, and "ultra frequent" sync all seem to be not only working great, but also not sending too much data and not slowing the game simulation down.<br />
** The garbled divergent ship data is a bummer and does mess with things, but in general it just speaks to our need for better instrumentation in that area, and is not entirely unexpected.<br />
<br />
* A new setting has been added to the networking section of personal settings: Log All Decoded Network Sync Data To Disk<br />
** Will majorly slow the game down, but dumps decoded sync messages to the disk in files inside the PlayerData/NetworkSyncMessages folder. This only covers sync-style data, but with this logging enabled on both the client and host, this is a great way to see why serialization is failing, if it is. <br />
** Enable with care! Since this data is being actively decoded as it is written, it is far larger (and in plain text) than the actual data being sent across the network. A typical ratio might be 40MB of decoded data for 500kb of actual network traffic. You can have a few GB of data on your disk after just a few minutes of letting the game run in this fashion.<br />
<br />
* Using this hefty new tool and some extra instrumentation, we were able to locate and fix the problem with the sending of divergent ship data from the host to the client.<br />
** We were simply omitting the primarykeyID for entities that were different, not deleted. Things like that are easy to miss but almost impossible to find without a logging mechanism like this. Manual code review just leads you to look right past it, especially if you've been staring at it for days.<br />
<br />
* Did a bit of an overhaul on how some of the network sync data is logged, so that we can do a folder-at-a-time comparison to find differences where any may exist.<br />
<br />
* Server_SendBatchOfSyncsBasedOnCurrentSyncStage() now has extra debugging going on in itself, because we're experiencing some sort of errors in there on the host after a certain amount of time in multiplayer, now.<br />
** Thus narrowed the problem down to Server_SendPeriodicFactionSyncDataThatJustOverrides(), and so instrumented that a lot more thoroughly... except actually the problem was in Server_SendBatchOfDivergentSquadsToFix(), we just read it wrong. So that also got extra instrumentation.<br />
*** And that was, in turn, just a simple typo on one line. Logging and instrumentation makes the impossible and time-consuming very fast and easy -- after the initial setup time cost. Very much worth it.<br />
<br />
* Found ourselves back with another error in Client_AcceptDivergenceDataFromHost-DivergencesSection. But we can't quite use the logging as it currently exists to easily diff these on a folder level.<br />
** In order to make that possible, we are switching away from using a central LogIndexThisSession Int64 for all message types being sent to StartNetworkSyncDataMessageLoggingIfNeeded, and instead are having an individual index for each FilenameBase string.<br />
*** This puts things slightly out of chronological order when we're talking global messaging, but that's because the client and server can be talking back and forth and have some different ordering between message types. We need the message types to always match up, and now they will.<br />
<br />
* Discovered that we were not properly sending the TypeData of the ships in the divergent ship fixes messages from the host. This was then causing nonsensical errors later in the deserialization of those messages.<br />
** Another great example of something we would not have found, potentially at all, without the new instrumentation.<br />
<br />
* Discovered a harmless logging artifact that we introduced into the last few versions where the header for fireteam data was behind its id on one machine, but in front of it on the other.<br />
<br />
* Thanks to the logging, also discovered an inconsistency in how fleet data was being updated, which was causing those to choke and die on the client side.<br />
<br />
* Went ahead and re-enabled the world-extras and planet syncing, since those go wrong so quickly but we now have logging on for them.<br />
** That immediately errored, but that is just fine for our purposes. Can you tell logging makes us happy?<br />
** This quickly revealed that there was something funky and inconsistent with how we were reading the planet's type. That has been fixed to be consistent.<br />
** That then revealed something a lot more complicated was wrong with how the external data patterns were being read in general, most notably on the world but definitely not limited to that.<br />
*** We improved the logging and instrumentation on the external data pattern serialization in general, and this then solved the issue on the world and the larger issue as a whole that would have come back to bite us in many other areas later.<br />
*** Then put in some more logging related to MDCExoDataExt, since it seemed to have an inconsistency. We now are marking when ExternalData is complete in the log, to make that mistake harder to make.<br />
** Then found and fixed yet more inconsistencies in how we were syncing squads.<br />
*** Also we then stopped syncing some stuff that was set to "only save on the network" (and not to disk) for squads, but it was data that really really should not have been synced because it was working fields from other threads.<br />
** And then also fixed a random extra float that we were sending after "world extras" sync. It's the sort of thing you only see in a log, as it was invisible in the code.<br />
<br />
* We are no longer syncing the IncomingShots on entities except during the initial world sync, because in general we are not syncing shots.<br />
** This is going to take some refactoring for targeting, possibly, but then again existing code will very possibly just adapt to it. <br />
*** "Catastrophic" or "planet switch" styles of sync fixes are probably not frequent enough during combat for it to be too very wrong, but either way things will fix themselves within a rolling 3-4 second window. It's interesting, because its constant attempts to heal itself in various places, while "in battle" with attrition is reminiscent of a scene with Wolverine in X-Men 3. That's an amusing thing to realize about one's code. (Let the record show that the devs really don't like X-Men 3, but that one scene was visually neat).<br />
<br />
* Fixed some potential nullref exceptions in CalculateSpeed() on ships, which really at this point mainly would happen when ships or fleets or speedgroups or some combo of that were being updated at the same time as they had something going on in the background threads.<br />
** Basically there's a whole new nest of cross-threading errors that we can run into, but there's not much we can do about them except to harden individual methods as they come up with problems, and in general also add extra instrumentation to methods if we think they have the potential to be a problem again (this one does).<br />
** This is kind of an unavoidable element of the loose way that we handle threading, which is needed in order to get the maximum speed out of the simulation and all the various threads that are involved. The client side of network sync is now a new source of these issues, but it's not remotely the first of them. We'll probably be swatting this sort of thing down throughout the alpha and beta of multiplayer. And then SirLimbo will somehow find a way to run into exceptions that no one else sees for the next two years. ;)<br />
<br />
* At this point we can confirm, based on our detailed logging, that multiplayer is able to successfully run for a solid four or five minutes of gametime (at 5x sim speed) and come out with consistent results the entire time.<br />
** This leads to about 2600 network log files for the sync messages, which are about 100MB per computer, and this substantially slows down the game from running at an unencumbered pace (the disk writes are heavy).<br />
** Of course, as soon as we turned off the logging, we ran into some sort of new gameplay thing which caused issues in the ship sync code. So there are still some goblins in there, probably related to certain types of data that are not on every ship.<br />
<br />
* Added a new setting to the network section of personal settings: Log Decoded Network Ship Sync Data To Disk<br />
** Same as the 'Log All Decoded Network Sync Data To Disk' setting, but only writes data for actual divergent ship fixes. Since that is one of the more-likely-to-break areas of sync, but only something like 1/15th of the actual data being passed around, being able to isolate it to this is helpful.<br />
<br />
* Fixed an issue where the current galaxy map display mode, and the current planet index you were viewing, would be reset by the sync data on clients in multiplayer.<br />
** It now takes in that sync data only for non-local player accounts. Clicking to another planet only to have your view bumped back a second or two later was MILDLY frustrating, heh. And also slightly hilarious.<br />
<br />
* Discovered and fixed an issue where if a partial sync was sent from the host to the client about a ship that the client had no knowledge of, then the client would try to read it as if it was an off-disk sync and thus read things incorrectly and fail.<br />
** This will probably be elsewhere in the code as well, so we will potentially need to review a lot of other data structures.<br />
<br />
== Beta 2.134 Searching For Planets ==<br />
(Released September 7th, 2020)<br />
<br />
'''This one is still on the beta branch on Steam and GOG, since we have continued making lots of substantial changes to the central serialization logic for the game in service of the multiplayer sync code. We're now done with what would constitute V1 of the MP sync code, so we can come out of the beta branch tomorrow so long as no one runs into any problems with single player on this build. As for multiplayer itself, we have a fair bit of testing to do to make sure that the MP sync code is doing its job and not exploding RAM usage on the clients or harming performance, etc. Once that's verified and all the bugs we find in testing the MP sync code are fixed, then we're officially into an alpha status with multiplayer. Given that the V1 of our sync code turned out to be far more thorough than we originally planned, the multiplayer alpha period should hopefully be shorter than it would have been.'''<br />
<br />
* Extragalactic war ships are no longer classed as 'small' when hovering the Planets Under Attack notification<br />
** Thanks to crawlers for the bug report<br />
<br />
* The Dyson Sphere produces a small number of drones, as well as its usual ships. Those few drones no longer leave the sphere's planet<br />
** Thanks to GreatYng for reporting<br />
<br />
* Update the time estimates for releasing multiplayer and DLC2<br />
** Thanks to ParadoxSong for reminding<br />
<br />
* There's now a Journal entry for when the AI can send extragalactic war units, so they won't come as a surprise<br />
** Suggested by zeusalmighty<br />
<br />
* Fix a bug where the Helping Hands 2 quickstart was broken<br />
** Thanks to Spook for reporting<br />
<br />
* QoL tweak for repair. Any ships on a planet where you outnumber the enemies 10 to 1, or the enemies have less that .2 strength are eligible to be repaired immediately.<br />
** The previous rule was 'Any ships on a planet without any enemies' which could be frustrating if you were trying to hunt down a few cloaked ships.<br />
** Thanks to crawlers and Isiel for suggesting<br />
<br />
* Some minor tutorial tweaks<br />
** Thanks to MasterGeese for reporting<br />
<br />
* The extragalactic war spawning notification message now uses 'a' and 'an' appropriately<br />
** Thanks to Ovalcircle for reporting<br />
<br />
* Update the Description for the snake map to mention that it's very hard<br />
** Prompted by a discussion on the forums<br />
<br />
* When you have the galaxy setting for Adjacent Planets Watched, it now takes that as the baseline and is increased by things like Economic Command Stations and Spy Cradles.<br />
** So if you have "Watch 1 adjacent planet" then a military command station will watch 1, but an economic will watch 2<br />
** Thanks to ParadoxSong for suggestion<br />
<br />
* Small update for MoreStartingOptions by AraudB:<br />
** Inordinate had 10 plasma turrets rather than 2. Fixed the number of stations in the mod description too.<br />
<br />
* Removed a blank "Fleet Experience" section from the tips window.<br />
** Thanks to Isiel for reporting it.<br />
<br />
* Several different spots that could throw errors if fleet membership was null now no longer do.<br />
<br />
* DoEntityStepLogic_Ship now has better debug logging.<br />
<br />
=== Multiplayer: Sync Correction V0.90 ===<br />
<br />
* Added a new SerializationCommandType, which has three values:<br />
** NormalFullType, Network_ContinuousPersistentSync, and Network_DuringDetailedNetworkSyncStage.<br />
** This is now used on Factions in order to differentiate the three major types of serialization that we might be doing.<br />
<br />
* The ExternalData on factions is no longer synced as part of the "every frame" IsForNetworkContinuousPersistentSync.<br />
** And actually a bunch of other stuff on factions is now limited out so that it's not over-saturating certain data while it IS still sending other things every frame auth.<br />
** This is also of relevance because it means that any faction externaldata that is not fully optimized to not thrash the GC will inherently do less thrashing of the GC. So that makes mods a little more safe in general in multiplayer.<br />
<br />
* Fixed several parts of the faction object to be efficient and not thrash the GC in the way that we were doing for the ExternalData last build:<br />
** TechHistoryEvent, HackingEvent.<br />
<br />
* FromServerToClient_SendAllOtherSyncDataThatJustOverrides has been renamed to FromServerToClient_SendUltraFrequentSyncDataThatJustOverrides, because it no longer is "all the other data." It's just the most common stuff.<br />
** Added new new messages for time-sliced sending of the following: FromServerToClient_PeriodicFactionSyncDataThatJustOverrides, FromServerToClient_PeriodicFleetSyncDataThatJustOverrides, FromServerToClient_PeriodicPlanetSyncDataThatJustOverrides, and FromServerToClient_PeriodicWorldSyncDataThatJustOverrides.<br />
<br />
* The full-faction-data sync even has been implemented on the client and the host, and now includes speed groups (which previously we felt like were too heavy to send on the ultrafrequent channel -- which was correct).<br />
** This also means that we needed to make the SpeedGroups be nice to the GC on deserialization, so that's done.<br />
** Also fixed several oversights that would have led to hard-to-diagnose endless inflation of array contents for various faction items. Yow. These sorts of things will be hard to find any other way than manual code review, and can be in mods or the main game and can cause massive slowdowns with no central way to diagnose it. These will be "fun" to find in the future.<br />
*** Essentially lists like FactionIndicesIAmAlliedWith were being added to each frame without ever being cleared before the new set of data was put in. This would only happen during multiplayer, and only on the client, but would start causing all sorts of problems.<br />
<br />
* Planets and planetfactions and their externaldata have now gotten the same treatment that factions did.<br />
** Here again there were a couple of infinitely-expanding lists that are now fixed.<br />
<br />
* Whew, okay, fleets and their memberships have also been updated to the new style.<br />
** This... is going to be very problematic, the way it currently exists. This first checkin of the fleet memberships in particular is going to be very problematic indeed, for a whole lot of reasons, but it's a good start for refactoring.<br />
** Essentially, fleets are so bloody complicated the way that they exist right now (in terms of data structure under the hood) that they can't work cleanly in multiplayer without a bit of refactoring. The positive news is that we can make potentially even single-player slightly more efficient with this refactor, but it's going to require redoing drones and a few other things along those lines.<br />
** Edit: the below solves our issue for the time being, although we may still make some changes in this area in the future to make things easier. We're no longer FORCED to, though, which is nice.<br />
<br />
* Came up with what is hopefully a clever use of our existing sync infrastructure to handle the cascading wrong data that can happen from the current fleet structure. This was something that has us stumped for a bit, because doing the most efficient sync style for fleet memberships could lead to units that were in the wrong membership after that.<br />
** The simple solution is the fact that we do know when we are hitting such a case, and so we can just tell all those units to kill themselves on the client. They will then naturally and fully re-sync from the host within 2-3 seconds.<br />
** This is the sort of thing that we want to minimize, of course, but the worst case is having something be permanently wrong in a MP game and us not being able to fix it. Later logic can always do something to sync these back quicker, or to minimize the number of times these are being hit if it is frequent, etc, etc.<br />
** For now we're just monitoring (in the UI) how often it happens, and we can make decisions based off of that... as people choose to share that data about their sessions with us. We may implement some sort of automated data reporting that people can opt into if things seem problematic, or if we think we're not getting reports on things like this but it does seem to be a problem for people.<br />
** At any rate, priority one is making it work properly in the long term of a game even if there is a snafu for a few seconds on a client, and priority two is minimizing or erasing the snafus.<br />
<br />
* Various central world data is now synced from the host to clients every few seconds/<br />
** Among other things that were more intentional, this actually lets clients know the status of other clients pretty rapidly (aka, seeing that someone else is disconnected or connected).<br />
** This should have all the central items of relevance nicely synced, although we are skipping the "world history" and "journal history." For those, if they are really needed, we may just introduce a new sync stage to time-slice the processing of those. But frankly they are not likely to get out of sync.<br />
<br />
* At this point it will be time for us to test our sync code, which is utterly untested at the moment. But the design and implementation of V1, except for actually testing it, is complete.<br />
<br />
=== "Find Planet" Command ===<br />
<br />
* Added a new extension in our central ArcenStrings which lets us do a case-insensitive Contains() call (for purposes of searches, etc).<br />
** This is useful for a variety of purposees, and lets us do partial comparisons (not just Equals()) calls) without having to cast to lowercase.<br />
<br />
* Implemented a new [https://wiki.arcengames.com/index.php?title=AI_War_2:Cheats#Debugging command], "findp", which lets you search for planets via the chat command:<br />
** Formatting is like this: "cmd:findp,gear" (minus the quotes).<br />
*** This example would search for the text "gear," and would bring up results "Geary" and "Gearworld" and "geaRson" if all three of those existed in one galaxy.<br />
** It tells you how many results there are, and if there is more than one result, then repeat entering of the same command (just press up and enter) will cycle you through them. It tells you that it will cycle you through them if there are more than one.<br />
** If you are on the planet view, it switches you to the planet view of that other planet. If you are on the galaxy map view, it centers the galaxy map on that planet.<br />
** Thanks to cml for the initial implementation of this as a mod.<br />
<br />
* Added a new "Quick Tip" item, which shows up randomly on the starting screen as well as in that section in the tips section: Searching For Planets By Name<br />
** During the game, if you hit enter/return to bring up the chat window, and then type 'cmd:findp,yoursearchhere', you can search for planets by name. If you type part of the name of a planet, then you can hit up and enter to issue the command repeatedly and cycle through multiple hits if there are any.<br />
<br />
== Beta 2.133 Hotfixes ==<br />
(Released September 4th, 2020)<br />
<br />
'''This one is on the beta branch on Steam and GOG, since there were a number of problems with the prior build that prevented adequate testing. Once we have confirmation of more people able to play this new version without incident, we can move back out of the beta branch.'''<br />
<br />
* Fix typo in Full Badger tooltip<br />
** Thanks to Breach for reporting<br />
<br />
* Nanocaust now uses a darker border colour<br />
** I forget who mentioned that this looks much better<br />
<br />
* The Nanocaust might now play a bit of defense<br />
<br />
* Improve the way a player's Overall Power Level is calculated<br />
** A player can now have a high enough Overall Power Level to trigger Extragalactic War Units without allies if they are on difficulty >= 7<br />
<br />
* Dark Spire ship line hacks no longer destroy the VG<br />
** Thanks to Sol for reporting.<br />
<br />
* In Steam, the default launch style is now OpenGL, rather than Vulkan.<br />
** As noted, this is the preferred launch style, and more stable.<br />
** Thanks to TechSY730 for suggesting.<br />
<br />
=== Fixes Relating To Prior Beta ===<br />
<br />
* Fixed several areas where trying to check a non-existing setting (potentially because it was from a mod or expansion you don't have installed) was causing issues.<br />
** This is a problem dating back months to when we changed how lookups to missing settings worked, but we're only now seeming to hit it in the most recent betas.<br />
** Thanks to Badger and others for reporting.<br />
<br />
* A variety of extra debugging info has been put into some of the high-level world serialization areas for our logs when problems happen.<br />
** Also put in a bunch more into fleets and fleet memberships for debugging purposes.<br />
<br />
* Identified two fields from fleet memberships that were not properly translated over into the new format in the last beta build, causing all new savegames in that beta to fail to load.<br />
** Now that this is fixed, the broken savegames all seem to load just fine, which is always nice when that happens.<br />
** Thanks to StarKelp, Sol, and ArnaudB for reporting.<br />
<br />
* The "Civilian Industries" mod by StarKelp has been updated to function in the new code framework we introduced last build.<br />
** All of the mods we distribute with the game are again working at the moment, to our knowledge, now. Code-style mods from other sources (forums, etc) may not be updated yet to compatibility with this latest set of builds.<br />
** Please note that we broke compatibility on purpose (not a typical thing), to add multiplayer functionality to mods and make sure that no mods would cause unpleasant spikes in memory usage on client machines in multiplayer.<br />
<br />
== Beta 2.132 Exterior Leviathan ==<br />
(Released September 3rd, 2020)<br />
<br />
'''This one is on the beta branch on Steam and GOG, because we made so many changes to some fundamentals of how the game works. These are driving at improvements for multiplayer, for the partial syncs to be able to happen, but they break code-style mods for the game (including Civilian Industries as included in this version), and it's possible that they temporarily are breaking something else since we've changed several thousand lines of code in a few dozen files and may have made an error in any one of a number of places. Some bits of multiplayer sync are a bit more hefty than we'd been thinking they might be for V1 of that, but then again we're getting more of it done upfront rather than later. We'll be able to start actually testing the sync maybe tomorrow, unless a bunch of other things are broken by our changes.'''<br />
<br />
* Dyson Spheres now must kill all the guard posts on a planet before they can kill a reconquest command station. This should prevent a buildup of guard posts. <br />
** Thanks to TechSY730 and Khankar for reporting<br />
<br />
* Fix some bugs with Usurpers owned by praetorians or other AI subfactions<br />
** Reported by GreatYng<br />
<br />
* Try harder to make sure waves against minor factions have ships<br />
** Reported by GreatYng<br />
<br />
* Fixed some minor typos<br />
** Reported by GreatYng<br />
<br />
=== Multiplayer: Sync Correction V0.75 ===<br />
<br />
* New setting in the network tab of personal settings: Network Logging Includes Sync Checks<br />
** During gameplay there are messages sent by the network as frequently as several every 100ms, and these are one of the largest sources of data usage. This lets you see the timing and payload size of those messages, if you think that potentially they are what is slowing things down in a networked environment.<br />
<br />
* Stripped out a lot of old code that was related to an old style of sync (aimed at desync detection), and started building in the new sync framework (aimed at detecting micro desyncs and correcting those).<br />
** Decided to move this to a new AIWar2NetworkSync static class in its own file, as after just getting about a third of the way through this logic, it was clear that it was pretty sizeable and overwhelming the rest of the networking code's readability.<br />
<br />
* Added in the logic for the server keeping a list of ships that the various clients have told it are divergent.<br />
** The server could be getting overlapping reports from several clients, but we need only one copy of this, because we're going to err on the side of caution and tell every client about each bit of sync data that needs fixing.<br />
** We could always change this in the future if there seems to be a bandwidth benefit to this, but it would probably just mean extra processing on the host for more unique sends per-client. At the moment we judge that to be the resource that is more scarce.<br />
<br />
* The logic for removing ships on a client that were not part of the last sync cycle, but also not new during that cycle, has been put in place.<br />
** The idea here is that these ships probably died on the server, and the client didn't know for some reason.<br />
<br />
* The logic for having the server do send check data for 1/20th of its ships (or stacks or whatever, as the case may be), but no more than 9000 per 100ms, is now in place.<br />
** This is the meat of the desync detection code, and it is based around only a very few factors:<br />
*** Health lost, shields lost, extra ships contained within (of ANY fashion), current planet, and current location.<br />
*** We are generally making the assumption that if all of those things match between the client and the host, then the ship is probably in sync.<br />
**** In the case of certain faction ships that do things like gather resources or whatnot, that will obviously be very incorrect, but it is correct for most combat ships.<br />
**** For those cases where faction-specific data is potentially going to be wrong, it would be prohibitively expensive to add a bunch of checks based on that extra faction data, so we will build in separate tools for forcing sync of these non-combat factors.<br />
**** Frankly, other things like fireteam history, which would be missing on the clients, could be synced via other methods later on if we really want to. Though that's generally only used for debugging in most cases, so seems not to be worth doing.<br />
<br />
* The logic for clients checking for mismatches with their local data compared to the server is now in, and it sends back the requests to the server to have divergent units corrected.<br />
<br />
* On PlanetFactions, there is now FactionIndex and PlanetIndex directly in order to make it easier to quickly find those in case they have been reassigned.<br />
** Additionally, their Faction and Planet member variables are now exposed as get-only properties to keep unexpected things from happening there.<br />
<br />
* The way that squads deserialize has been updated substantially to allow for several levels of partial deserialization for various sync scenarios.<br />
** The sync fix code allows for normal-level same-planet sync fixes (which should hopefully look very nice with things sliding visually into new positions if positions differ).<br />
** The sync fix code then also allows for normal-level different-planet sync fixes, which instantly disappears the old spot and puts it somewhere new.<br />
** And finally, the sync fix code allows for catestrophic-level sync fixes, where the two entities aren't even the same (not matching faction or type), and it destroys the old one instantly and as invisibily as possible, and then puts in the new one where it should be.<br />
*** This last category is for basically when the primary key ID generators are out of sync between the host and one or more clients. These will be hit with some regularity, but they should not be hit over and over for the same unit.<br />
<br />
* The deserialization logic for "fleet memberships" has been split in such a way that we can now sync just some of the data into them (for network purposes).<br />
** We are not using this yet, but will once we get into the fleet sync phase of the sync cycle (outlined below).<br />
<br />
* CalculateContentsCount() on squads now takes a required parameter IsForNetworkSyncCheck.<br />
** If that is true, then it ignores any data that is not on the squad (but is usually on the fleet or the "fleet membership" areas.<br />
** This is things like drones or transported ships, and city sockets. These will be something we sync at the fleet level.<br />
<br />
* Network_CurrentSyncCycleNonSer has been moved off of the World_AIW2 object and into the AIWar2NetworkSync class.<br />
** Same with the OnServer_SquadsNeedingSyncFixes dictionary.<br />
<br />
* The server now cycles through a series of "sync stages," where it will sync different things other than just squads.<br />
** This is useful for us to be able to time-slice syncing of data of different sorts... for instance fleets and fleet memberships data.<br />
** We actually are now going to use this for separating out the squad sync checks and the divergent squad fixes, too, since time-slicing that is good for smooth gameplay as well as also making sure that multiple clients with partially bad sync cause as few excess sends as possible (that's a ms timing thing).<br />
*** The code for syncing the squads that were divergent is now in, as noted above.<br />
<br />
* The data for factions, and for some of the Primary Key info, is now synchronized from the host to all of the clients every authorized network batch.<br />
** On average this is probably anywhere from 10kb to maybe 40kb, at most. It's easier just to keep this in sync.<br />
** At the moment, for ExternalData on factions and squads, there is a huge amount of inefficiency on the clients in that it is completely recreating objects every network sync right now. We are looking into various refactoring options.<br />
<br />
* At the moment we are explicitly not syncing SpeedGroups, since those are complicated and may tend to diverge.<br />
** We are probably going to wind up refactoring these to be by faction, or something along those lines. In fact, there are several major refactors coming, and one of those may be that a lot of the PKIDs may become faction-specific in general.<br />
<br />
* Turns out that adding the NetworkSyncStage as a concept was a really good idea, because we not only need to sync squads and fleets, but also planets and some data off the world, too.<br />
** The faction sync is happening once every sync frame, but it's possible we might back off the frequency of some of that if it becomes too harsh. Mainly for ExternalData stuff. But for now we'll see how it does.<br />
<br />
* Planet has now had its data split out like squads and fleet memberships and factions and some other classes to have its own DeserializedIntoSelf() method.<br />
** Also PlanetFaction. Whew, wow. For this it doesn't sync the entities during the partial sync, of course, unlike during disk or main network sync.<br />
<br />
==== "ExternalData" Updates That Affect Mods ====<br />
<br />
* The ExternalData framework has gotten a few updates to allow for us to do partial-syncs like we now do with squads and such, versus always just creating something new.<br />
** Any mods that use ExternalData will need to be updated to use the new pattern, although it's not a huge change.<br />
<br />
* FireteamRequiredTarget has been updated to have a DeserializeNewFrom and DeserializedIntoSelf, to ensure that what we are doing is intentional.<br />
** Since this is a class, not a struct, it's highly efficient for us to be able to write to an existing class rather than always replacing it, even in single-player.<br />
<br />
* The following "external data" has been updated to be dramatically more efficient with syncs during multiplayer, employing a variety of strategies that we're using in the main game stuff:<br />
** WormholeInvasionDataExternal (this one is basic and simple)<br />
** AI_PlannedWave_Data (this one is complex in that it has a list of sub-objects and shows how to handle that properly. It even gets rid of theoretical extras on the client machines)<br />
** DoomData (this is really old style in terms of the data, and is not used actively, but does show a way to handle the multi-part sub-data well).<br />
** ExternalData_AIFactionCommon (this one is ridiculously complicated and used for a couple of factions)<br />
*** ExtragalacticBudget and AIPChange as a part of this, and are good simple examples. These don't even have the new bool passed to their sub-objects, because both the DeserializeNewFrom and DeserializedIntoSelf() methods can both validly be used as part of one during-game sync (depends on relative list length, see code).<br />
*** StoredAIPurchaseCostByBudgetForSpecificUnits is a good example of where it's better to just use a bit of extra GC (especially with the new time-sliced GC unity now has) instead of doing extra CPU processing to be a hair more efficient with that memory.<br />
*** Fireteams themselves have changed from having a constuctor for deserialization to having a DeserializeNewFrom method that makes it a bit more explicit what is happening. We also pulled out the id deserialization so that we could reuse Fireteam objects as much as possible if they are being updated.<br />
** DysonExternalData and DysonAntagonizerExternalData (another two examples of the simplest possible cases for updating a modder might have)<br />
** MacrophageGlobalData, MacrophagePerTeliumExternalData, MacrophagePerSporeExternalData, and MacrophagePerHarvesterExternalData, which are also very simple examples.<br />
** RiskAnalyzerData is even simpler, with no sub-objects to modify.<br />
** AIReservesDataExt is seemingly simple, but is dodging accidentally creating two sparse lookups internally on each sync.<br />
** AstroTrainsGlobalExternalData, AstroTrainsPerDepotExternalData, and AstroTrainsPerTrainExternalData are all pretty straightforward, although we saved ourselves a lookup load on AstroTrainsPerDepotData.<br />
** AutosaveDataExt, even though it's not really even needed on the clients at all. Since it has some sub-data that is in a list, and in string format, we're just not bothering to send that to clients at all during syncs since it is a waste of bandwidth.<br />
** DarkSpireData, which has some complexities with the sub objects DarkSpirePerPlanet. It has special notes in the code for any similar cases with a sparse lookup and sub-objects.<br />
** Two "DZ" items for DLC2, which was wildly complicated to convert compared to most things. It involved sub objects DZResourceConversion, and DZUpgrade, among other nested objects. Mostly it was a good example of just following the existing principles on down, but there is one ConversionBag that was tricky enough that we're just clearing and refilling it in a somewhat GC-wasteful way rather than going into the extra complexity and perhaps incorrectness of doing it another way.<br />
** AntiMinorFactionWaveDataExt, ExoDataExt, and MDCExoDataExt, which thankfully were all trivial examples of the common case.<br />
** ExternalData_GroupTargetSorting, which has nothing formal to save or send.<br />
** InstigatorPerUnitDataExternal and InstigatorDataExternal, which again the simple common case.<br />
** SpawnAnimationData and DespawnAnimationData were very old and probably not used, but simple to upgrade.<br />
** MarauderOutpostRaiderSpawnData is again the simple common case.<br />
** MercenaryUnitExternalData and MercenaryGlobalExternalData, which had some more notable complexity. MercenaryBeaconState upgraded with WorkingHasBeenUpdatedThisDeserializationCycle to handle its situation. MercSpawnRequest just does it the inefficient way since these rarely exist, and only exist for a short period when they do. SingleMercenaryGroupState is a strange bit of data, and gets handled in a novel way. Thankfully MercenaryUnitData was a trivial case.<br />
** ExternalData_FactionCommon is old and strange, but was not too hard to update.<br />
** ExternalData_MinorFactionCommon was super old in its styling, but already was efficient enough.<br />
** NanocaustMgrData, NanocaustPerUnitDataExt, and LastSpawnTimestamp are all extremely simple. The old FrenzyFleet stuff is still kinda-sorta there, but never has data since it is legacy, so that shouldn't cause any GC churn.<br />
** FallenSpireGlobalExternalData and FallenSpirePerUnitExternalData had a few quirks, but mostly were the common case with some minor array clearing and preservation.<br />
** One "NP" item from DLC2 required pretty minimal updates to work with this, hooray.<br />
** ScourgeGlobalExternalData and ScourgePerUnitExternalData were both the common case with a tiny bit of list/dict management.<br />
** Two "ZA" items from DLC2 are mostly the common case but with some collection management added in.<br />
** Two "ZM" items from DLC2 are also mostly the common case with a bit of collection management.<br />
** HRFDataExt and MarauderDataExt both were also mostly the common case with a bit of list management. There is a question mark about the regiments aimed at planets, on this and a few other locations, but they are at worst going to be inappropriately blanked out over and over again on clients in MP, which we can fix later.<br />
<br />
* In general, any of the usages of IArcenExternalDataPatternImplementation in mods should be updated to follow the new examples in the main code. The changes are not severe.<br />
** The most important changes are the ones above, relating to SerializeExternalData() and DeserializeExternalData() taking an extra parameter, and then each handling a graceful DeserializedIntoSelf() sub-method (and choosing if there's some data not to sync across during gameplay if required). But beyond that, there are some more changes:<br />
** RelatedParentTypeName has been removed, as it was never used. Same with GetShouldInitializeOn.<br />
*** During InitializeData, the object ParentObject is being cast into an appropriate-type Parent object for general usage, (aka GameEntity_Squad, Faction, whatever) that people can then later use. If the type is wrong, it will just come across as null, and we have it complaining if that's the case. You can do the same or omit that part if you don't care.<br />
<br />
=== Third Off-By-Default Mod: More Starting Options By ArnaudB ===<br />
<br />
* The More Starting Options mod by ArnaudB is now included with the game by default (with permission), but disabled.<br />
** Requires The Spire Rises expansion (DLC1).<br />
** Pick between seven starting fleets and twenty starting battlestations for your custom games. These choices are balanced for regular play and are acceptable to use for achievements.<br />
** The eight starting fleets will offer you a more varied combination of ships so you may explore more varied combinations of technologies and playstyles than those incentivised by the default options.<br />
** The twenty starting battlestations will let you play and test every of the many turrets brought by The Spire Arise DLC, which are otherwise completely absent from the default starting options. You’ll find multiple combinations for both offensive and defensive playstyles, balanced for your enjoyment and giving you hints as to what synergies you could make with a few turrets or ships.<br />
** This mod is off by default as to avoid paralyzing the player by offering too many choices. <br />
** You can activate this as a new player unsatisfied with the default options, or as a veteran wishing to vary your experience of the game.<br />
<br />
=== Mod: Civilian Industries Updates ===<br />
<br />
* Civilian Industries 0.6.4<br />
** Full update notes may be found on the forums: https://forums.arcengames.com/ai-war-ii-modding/civilian-industries/msg222774/#msg222774<br />
*** A large number of code optimizations, directly mostly at performance and multiplayer readiness.<br />
*** An overall nerf to Mobile Ship counts, but a simplified formula will allow easier future modification.<br />
*** A rework to the Barracks. Now scales with Mark Level, Command Tech, and can even let you get more Protectors at mark 7.<br />
*** Buffs to many Protectors. Balance for them is still being worked on.<br />
*** Resources renamed across the board, and structures now state what technology works for what resource.<br />
*** A notification will now show when a Raid is about to fire against your civilians, thanks to Chris' recent changes on the notifications front.<br />
<br />
== Version 2.130 Redux: Dutch Cities and Softer Eyeballs ==<br />
(Released August 31st, 2020)<br />
<br />
'''We accidentally forgot to increment the version number in game. So this would have been 2.131, but is just called 2.130 in the game. Sorry about that, this is perhaps a first?'''<br />
<br />
* New planet naming style added, with over 4000 names in it: Cities (Dutch)!<br />
** Most Dutch cities, villages, and hamlets shorter than 10 characters; also includes many local spelling variations. Created by GreatYng.<br />
** Thanks to GreatYng for creating!<br />
<br />
* Added a new xml tag, external_invulnerability_unit_required_count, which works with external_invulnerability_unit_type or external_invulnerability_unit_tag.<br />
** This basically lets us say that a unit of whatever sort is still protected by others (such as guard posts), but only if there are more than the number specified.<br />
** The default number is 0, which means the previous behavior of "any guard posts present make this invulnerable."<br />
** For AI Eyes, the number is now 3, which means that if there are not at least 4 guard posts remaining on a planet, you can go kill the eye.<br />
*** This is pretty huge, because you can now kill just part of the planet and then kill the eye before going to kill everything else.<br />
** If we need to make further adjustments to the Eyes based on the relative ratios of strength of them versus enemies, we can do that in the future, but for now this is a solid start.<br />
** Thanks to Lord Of Nothing and CRCGamer for reporting.<br />
<br />
* Further balance adjustment: all AI Eyes are no longer Mark 7 at minimum. They are now Mark 5 at minimum, and if their planet would have a higher mark (6 or 7) then they will instead have those higher marks.<br />
** This should help to make a bit more variance with them, and eyes to be a bit less of a pain in general.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fixed HRF Nucleophilic Defenders as well as other defender types not being loadable into transports. Additionally they now count as Frigates and benefit from their hull/shield/damage settings.<br />
** Thanks to Darkshade for reporting and -NR- SirLimbo for fixing.<br />
<br />
* Fixed a couple of issues relating to getMostCommonPlanetForRegiment() with fire teams, which were likely leading to who knows what other errors.<br />
** The PlanetsForRegiment Dictionary was declared as static, and so all of the regiments were trying to use the same dictionary at once, leading to exceptions as well as probably wrong results. Exactly how much chaos this could have caused is unclear, but with some of the LRP threads stalling out this is certainly not going to help (fingers crossed it was the whole thing).<br />
** Now if getMostCommonPlanetForRegiment() is called again on the same regiment before it finishes, it will throw the error "BUG: called getMostCommonPlanetForRegiment() again for a fireteam regiment before the last call finished. Will break both calls." Hopefully we don't have people getting this, but if we do we need to know about it to fix that. In that case, the workingPlanetsForRegiment dictionary can't work as a member variable at all.<br />
** Additionally, if there's an exception in getMostCommonPlanetForRegiment() it will now throw an exception but then exit more gracefully, letting whatever calling code keep doing its thing.<br />
** Thanks to CRCGamer and TechSY730 for reporting.<br />
<br />
* A few versions back, we made some changes to how the icons are rendered on the galaxy map, including planet icons. We made them keep their orientation better, but one of the things that was an unfortunate side effect of this is that the colliders on the lines between planets were often taking precedence over the actual planet or the ships at the planet. That is now fixed.<br />
** Thanks to TechSY730 and CRCGamer for reporting.<br />
<br />
* Heavily reworked how Journal_TooMuchAIP calculates both how many planets you have paid AIP for, as well as how many planets are neutered. It was triggering the journal entry far too early, previously.<br />
** Please see the code or here for details: https://bugtracker.arcengames.com/view.php?id=23609<br />
** Thanks to Sigma7 for reporting, and Badger for helping figure out what was wrong.<br />
<br />
* Fixed old wording on the AI Eyes that still said "when there are enough fleets present on this planet" to instead read "when it is sufficiently outnumbered on this planet."<br />
<br />
== Version 2.130 Civilian Industries ==<br />
(Released August 29th, 2020)<br />
<br />
* For determining what your performance is like, the game now uses only one second of data instead of ten seconds.<br />
** This makes the sim speed average a lot more responsive and natural-feeling.<br />
<br />
* The "suppress upgrade prompt" setting and keybind now both work on fleet upgrades and not just science tab upgrades.<br />
** There is some extra info in the tooltips and popups to reflect this, as well.<br />
** Thanks to Fritz1776 for suggesting.<br />
<br />
=== Second Off-By-Default Mod: Civilian Industries By StarKelp ===<br />
<br />
* The Civilian Industries mod by StarKelp is now included with the game by default (with permission), but disabled.<br />
** This lets people simply enable the mod by clicking a button in the settings menu, rather than having to find and download the mod from elsewhere.<br />
** StarKelp has been a volunteer contributor to the main codebase off and on for a while, and this mod contains both code and xml.<br />
** Full description of the mod is included in the tooltips in the game, but also here:<br />
*** Every empire is only as strong as the people within.<br />
**** Protect your people, and they will help your empire flourish.<br />
**** From collecting and processing various resource around the galaxy to bolster the economy, to taking up arms on their own to aid your survival, you'll find their help invaluable in the long term.<br />
**** As they flourish, so do you.<br />
*** Adds in the Civilian Industry faction, a potent defensive faction that can be allied to either a player, or a faction team.<br />
**** They will expand alongside their respective ally, and produce a large number of defensive forces to aid their team.<br />
**** They gain a new resource type per planet they expand to, and will work diligently to spread these resources throughout their empire.<br />
*** When allied to the player; you will find your command station and battlestations have access to a few new structures that you can invest in to greatly incresae the power of your civilian economy.<br />
*** Please check Galaxy Settings for many tweaks in regards to how they behave.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fixed a bug in GetIsWithinRangeOf() that could happen in the selection logic (and probably other places) if a background thread marked a unit as deleted as it was doing the range check.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
* It is now possible that your logs will wind up having the message "BUG: overriding speed limit for group X to [a negative number below -1]. Overflow? Setting to -1 instead."<br />
** If this is frequent, it may slow down your game, but the stack traces will let us know where we are going wrong and causing this to happen.<br />
** We fixed one area where MAYBE this could be caused, but probably that was not possible in the place we fixed it. Most likely the problem is in something that is calling GameCommand_CreateSpeedGroup with a command.RelatedIntegers[0] that is greater than the 32767.<br />
*** With that in mind, anything that is larger than that being passed into that method is now automatically corrected down to 32766. This may lead to some turbo speed groups, not sure, but at least they won't be erroring... and that IS what the calling code is asking for, so maybe it's intentional?<br />
** At the same time, in some other places in the code where it was checking to apply the speed only if it was "not -1", it is now checking to apply the speed limit if it is "greater than 0." This seems more like the correct intent, and hopefully won't break anything.<br />
** And beyond that, prior to serialization, any speed groups with an OverrideSpeedLimit less than -1 will automatically just set their value to -1 silently and thus avoid popup errors that could be really annoying in savegames for folks. This has been an issue on and off since July 24th, apparently.<br />
** Thanks to Lord Of Nothing (twice over), TechSY730, GreatYng, and Apthorpe for reporting.<br />
<br />
* Add a new time_must_have_been_on_planet_before_transforming_if_outnumbered_or_outnumbering, for use with transform_when_outnumbered and transform_when_outnumbering.<br />
** This defaults to 0 seconds, which has been the behavior in the past.<br />
** But now for all of the ships (mostly AI Eyes, but also some guardians) that use transform_when_outnumbering, it now has a value of 2.<br />
** For those that use transform_when_outnumbered, it has a much higher value of 30, to keep them from downgrading their alertedness too easily.<br />
** The AI eyes will still switch between alerted and unalerted status every so often in a general battle, since their alerted status increases the balance of battle in their favor so much, but now it won't be a constant thing and ships can continue targeting them in a reasonable fashion.<br />
** Thanks to whakomatic, Ovalcircle, MasterGeese, Gdrk, and GreatYng for reporting.<br />
<br />
* Additionally, previously anything that was transforming via one of those two methods was having its health and shields and cloaking points all reset to full.<br />
** Now, however, when transformed via these two cases ONLY, it keeps the health and shields and cloaking point losses after transformation.<br />
** This makes it so that battles with AI eyes are actually something you can win, even as they cycle back and forth between statuses. And in general this just makes sense, and is important on the dire guardians that use this same sort of mechanic, too.<br />
** Thanks to whakomatic, Ovalcircle, MasterGeese, Gdrk, and GreatYng for reporting.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* GameCommandTypes are now serialized by index rather than name, which chops off the vast bulk of size from most GameCommands, leading to even snappier networking.<br />
** Honestly this is a very small boost in most cases, but this also took like two minutes to add.<br />
<br />
* The network traffic logs have all been updated to be able to actually report how many bytes were read in for each message that the host or clients receives. Before it was saying ?? because we were checking prior to doing the reading.<br />
** Note that depending on the networking platform in use, there is sometimes extra buffer data that was read from the socket, but if it wasn't part of the game, we just ignore all that. This is also ignoring packet header sizes, so we're just talking payloads here (but that's consistent with the send records, too.<br />
<br />
* In the escape menu, on clients and the host, it now has a new Multiplayer Stats section when you are in multiplayer mode only.<br />
** At the moment, this shows how many messages have been sent or received in total, and how many bytes/kb/mb have been sent.<br />
*** These all apply to the current session only. So if you are the host, it is the stats since you loaded up the server and people started connecting. If clients come and go, it's including all of that. If you're the client, it's the amount since the last time you connected; if you disconnect and then come back, it starts over.<br />
** This is pretty important information in terms of figuring out just how much data is actually being sent back and forth, and how it changes during gameplay, so that we can react to any unexpected spikes if there are any.<br />
<br />
== Version 2.129 No Shrooms For Ships==<br />
(Released August 28th, 2020)<br />
<br />
* Nanocaust now prioritize holding planets adjacent to their homeworld<br />
** Thanks to crawlers for reporting<br />
<br />
* The nanocaust units now prefer to spawn a bit further from their centers; it looked kinda weird when a giant Nanocaust ship would spawn right on top of a nanobot center.<br />
<br />
* Added a lot of extra instrumentation to the deserialization and serialization of factions, since there seems to be some sort of error in there with savegames from specific versions.<br />
** Essentially with this sort of thing on, we can now manually look through the deserialization log and see if we notice where field data stops making sense. It was obvious that it was getting something like "I am hostile to 20 thousand factions," which is nonsense data, but it was not clear where the data was going wrong prior to that.<br />
** From this, we could then see that most of the data reads in the player faction seemed reasonable, but the faction right after them was immediately messed up. This is after a lengthy code review turned up nothing wrong, so it's always possible that it's some sort of edge case that has been around for longer than we thought.<br />
** Added in code to make it so that if an exception is thrown while deserializing a faction, we will now repeat that error better and stop doing further deserialization attempts. It turns out that was what was happening, and a more careful reading of the log could have saved about an hour and a half of work (oh well, things in the future will be easier to debug).<br />
** Thanks to Lord Of Nothing for a very challenging save that led to these changes.<br />
<br />
* Fixed an issue with some savegames that had hacked dyson or dark spire ships, where the HackToGrantShipLine_DontDestroyTarget hack had been removed and split into several versions a few versions back.<br />
** We now have added HackToGrantShipLine_DontDestroyTarget back in, in a deprecated fashion, so that old savegames with this data in it can load.<br />
** Thanks to Lord Of Nothing for the save that let us find this.<br />
<br />
* Fixed a bug in the prior build where the "flair" overlays for ships in the main view were either black (some machines) or a rotating color set of insanity (others).<br />
** One line was accidentally omitted in the new build of the shader that we made.<br />
** We also updated some calling code to the shader in a way that is harmless but not actually needed for this fix.<br />
** Thanks to Strategic Sage, Isiel, CRCGamer, and TechSY730 for reporting.<br />
<br />
* The "Icons Disappear When Camera Lower Than" setting in the main camera window has been updated as follows to have this note<br />
** Note: this setting does nothing (icons always draw) if you have 'Skip Drawing Ship Models' turned on in the Performance section.<br />
** (Also, this is how it actually now works).<br />
<br />
* If a player is already on a planet viewing that planet, and a further command was sent to view that planet again (as if they were not already there), then funky stuff happened in various places, including the wormholes getting half-initialized and not drawing properly in scale.<br />
** To solve this, it simply doesn't do anything if you try to re-open your view to the existing planet you are already on.<br />
** Thanks to StarKelp for reporting.<br />
<br />
== Version 2.128 Don't Lie About Distant Future Waves, AI ==<br />
(Released August 27th, 2020)<br />
<br />
* Fix a bug where the scourge would sometimes suicide into multiple layers of defensive planets in the (foolish) hope of hitting the weak target on the other side.<br />
** This is an intelligence improvement for all factions using fireteams (Hunter, Warden, Nanocaust, Scourge, etc etc).<br />
** Thanks to Crawlers for reporting<br />
<br />
* Add some defensive code to the Fallen Spire.<br />
<br />
* Put in extra logging for the SpeedGroup serialization and deserialization, to figure out where there are occasional exceptions being logged.<br />
** Thanks to TechSY730 for reporting.<br />
<br />
* Sniper Energy Wave on the Dark Spire Eidolon has been renamed to just be Energy Wave, since this is not an infinite-range weapon.<br />
** Thanks to crawlers for reporting.<br />
<br />
* DoForKnownWavesAgainstHumanHomeworlds in WaveUtils has been renamed to DoForKnownWavesAgainstHumanWorlds, which is what is accurate.<br />
<br />
* A whole bunch of extra array indexing calls into QueuedWaves have been made more efficient in the AI HandleWavesForAI() method.<br />
<br />
=== Interface Improvements ===<br />
<br />
* The planet's tooltip has been updated to show the owner on the same line as the planet name, but positioned way over to the right.<br />
** This keeps things pretty condensed, but avoids some clashes of words where it seemed to be saying something like "Permanently Watched Owner:" as one phrase.<br />
<br />
* Previously, there was a chat message going out as soon as a wave was queued, but before it would become visible to the player in the actual interface (based on their chosen galaxy map settings for how much warning to get).<br />
** Now it only shows the actual chat message from the AI as the wave is being revealed to players.<br />
** This also fixes an issue where it was for some reason actually giving the wrong planet name that it was going to attack in some cases, since the announcement came before it finished changing its mind about the real target it wanted to hit.<br />
*** This latter one may have been more common in multiplayer, but it's hard to be sure. At any rate, it just tells you real information now.<br />
<br />
* The second chat message that goes out (with the audio taunt) when waves are launched now also happens when they are revealed, and no longer duplicates when in multiplayer mode.<br />
<br />
=== Mod Compatibility Improvements ===<br />
<br />
* There is a new DoPerSecondNonSimNotificationUpdates_OnBackgroundNonSimThread_NonBlocking() method that gets called on each faction each frame, and which takes in a note which says if it is the first faction of its type this frame or not.<br />
** This lets us move notifications for factions into their own files, which makes notifications modding-compatible.<br />
** There are some other supporting methods that have been added to handle this, but understanding them is not required for using this,.<br />
** It is worth noting that ALL of the existing DoPerSecondNonSimNotificationUpdates_OnBackgroundNonSimThread_NonBlocking() calls do happen in a loop prior to the new DoPerSecondNonSimNotificationUpdates_OnBackgroundNonSimThread_NonBlocking() being called.<br />
** As an interesting side effect, this actually makes it so that notifications will now work for people in spectator mode in multiplayer for the first time.<br />
** The nanocaust data has been moved out of the human file as an example of how to do the others.<br />
*** Same for antagonized dyson spheres, and the dark spire. It would be great to get the other factions moved over to their own files for the sake of cleanliness, but functionally there will be no difference for our things in the main game and expansions now.<br />
** Thanks to StarKelp for requesting the ability to add notifications in mods.<br />
<br />
* Added a new method DoPerSecondLogic_Stage0Clearing_OnMainThreadAndPartOfSim_OncePerFactionTypeEvenForFactionsNotInGame().<br />
** This is called on the GetDefaultImplementationForLobbyOrClearingOnly() from the faction TYPES, which means it happens even for the factions not in a game. Great and easy place to clean up, and we know it happens only once per cycle per faction type, and we also know that it happens even if a faction is not in the current campaign.<br />
** This is useful for factions that had some data in a prior campaign, but the player loaded a new savegame and they are not in this one.<br />
** All of the various data from these that was previously in the Human class and in DoPerSecondLogic_Stage1Clearing_OnMainThreadAndPartOfSim() has been moved to the new stage0 for each of the specific class types, which again is more mod-friendly and should prevent the issue of certain mods being unable to clean themselves up between campaign loads.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* When the host is waiting on a client that is behind, it now shows a message saying which clients are behind and being waited on.<br />
<br />
==== Bugfixing ====<br />
<br />
* The galaxy map spacebox background is no longer serialized into savegames. Instead it is deterministically calculated based on the map seed.<br />
** This makes very little difference for single player, although you will notice that reloading the game or going back and forth to the map, or hitting regenerate map on the lobby no longer changes the space background.<br />
** But for multiplayer, this keeps things consistent between all players.<br />
** For existing savegames, you will notice that the spaceboxes become something new and stay that.<br />
<br />
* It turns out that the planet spaceboxes were not being serialized at all in savegames before, but their rotations were.<br />
** This was leading to very different planet background views in multiplayer, to a very distracting degree.<br />
** This has been made deterministic, and we no longer store even the rotations in savegames.<br />
** For single player there is no real change except that the savegames are a tiny bit smaller.<br />
** For existing savegames, you will notice that the spaceboxes become something new and stay that.<br />
<br />
* Fixed inconsistent sorting between runs of the game (and between differnt clients) for rows in the following tables:<br />
** AIGuardPostAndCommandPlacerTable, FleetDesignTemplateTable, AIShipGroupCategoryTable, and SpaceboxDefinitionTable.<br />
** These led to various MP inconsistencies, including the spaceboxes still being divergent on planets despite the math lining up.<br />
<br />
* Fixed an issue where the home planets of other players in multiplayer games just looked like normal planets instead of homeworlds.<br />
<br />
* There were a bunch of cases where human factions were still named wrong during multiplayer (and differently on the host and client), saying the wrong player's name or Unknown Player in various cases. Fixed all of those.<br />
** Additionally, in the case of multiple players owning a faction, if they did not choose an empire name, it now says all of their names together (but no more than three) as the faction name.<br />
** If there are more than three players controlling a single faction, that gets too wordy, so it just says "and X more".<br />
** When loading the single player games of other players, you will now see their chosen account names (from in AI War 2, not Steam or whatever) instead of your personal profile name.<br />
<br />
==== Seeing Where Other Players (Or Spectators) Are Looking ====<br />
<br />
* The way that the gimbal icons decide which diffuse color to use is now more efficient on the GPU (this is minor, but hey).<br />
<br />
* It is now possible to have a secondary diffuse color for the flair (really used for selection circles now), which is multiplied by the main "other diffuse color" of the icon.<br />
** This lets us do things like change the opacity or color of the selection ring around a ship or planet.<br />
<br />
* When you are viewing a planet, the game's way of showing the selection circle around it is the same as it always has been.<br />
** However, when someone else in multiplayer is viewing a planet other than the one you are viewing, it now shows a dimmer and more-transparent selection circle to show you that someone else is looking there.<br />
** If someone else is looking at the same planet you are looking at, then it will show the normal bright selection circle in a faint green rather than white.<br />
** This is something that is deceptively important, because we need to make sure that we know which planets are "tier 1" planets on clients and the host, which lets us verify that ViewedByPlayerAccounts_DuringGame is being set properly on all machines (it is). This keeps the game in the sync, which we can now tell is working properly.<br />
** But also this is just a helpful indicator for players to help with coordination. ("Check out this planet I am looking at in the northeast" is so much easier to say than trying to direct them to a name).<br />
<br />
* As an added help, in the galaxy map view when you hover over a planet, it tells you which other players are viewing a planet. This may be players in exclusive control of a faction, or one of several player players controlling a faction, or just a spectator, so it shows you their name as it would appear in chat.<br />
** For games with more than two players, this is fairly important for purposes of clarity. In a two player game it's easier to just infer what is going on.<br />
<br />
* When a client is disconnected, other clients and the host can still see what planet that client WAS looking at, and that planet still counts as a Tier 1 planet for processing, but hovering over it will show the name of the player with (Disconnected) behind it on the host.<br />
** Presently clients cannot see the status of other clients.<br />
<br />
==== Disconnection And Re-connection Verified ====<br />
<br />
* We can now verify that after a client disconnects in a disorderly way, the host notices a bit later and then continues on without them (they can choose to pause or not).<br />
** We can FURTHER verify that the client can reconnect to that running game with only a few-seconds interruption to other players who are still going. Even if the client had crashed and had to restart the game or their computer, they are able to get right back in there.<br />
** The original AI War did not remotely have any of these capabilities, but this works on all three networking platforms.<br />
<br />
== 2.127 Cranky AI Exceptions ==<br />
(Released August 26th, 2020)<br />
<br />
'''This was originally released as a beta on the 26th, but then changed to a main branch release on the morning of the 27th.'''<br />
<br />
* The Dark Spire now responds properly to being hacked by being cranky<br />
** Thanks to crawlers for the bug report<br />
<br />
* Fix a bug where the AI was incorrectly combining some Hostile To All factions when spawning extragalactic war units.<br />
** This was leading to more extragalactic war units than one would want.<br />
<br />
=== Exception Fixes ===<br />
<br />
* Added new debugging instrumentation into ImportIntoDynamicTable_XMLDirectory, so that we can find errors that may happen in there from time to time on some machines.<br />
** Also put in some code that should make it load faster for mods and expansions that don't have certain folders.<br />
** Thanks to Ovalcircle for the report of something mysterious in this area on his system.<br />
<br />
* Also expanded the debugging instrumentation on ReadXmlFileIntoBatchProcessingLists, same reason.<br />
** Ditto DoForXmlFolders.<br />
** And finally, ditto ActuallyImportAllOfTheBatchedRows.<br />
** Thanks to Ovalcircle for the report of something mysterious in this area on his system.<br />
<br />
* ArcenXMLElement.GetNewFor has had its debugging instrumentation greatly expanded, and also has been split into one version that expects a data table, and a new GetNewForNonTable variant that does not expect a table.<br />
** The idea here is to catch various forms of errors early.<br />
** This in turn caused a cascade of other changes to other methods needing variants of each other along these same lines, and having better instrumentation.<br />
** Thanks to Ovalcircle for the report of something mysterious in this area on his system.<br />
<br />
* Fixed another rare race condition that could happen with the vis code, this time in SetFormationPositionFromSquad.<br />
** Thanks to NRSirLimbo for reporting.<br />
<br />
* If for whatever reason the game was not able to proeprly write your settings data, it was still overwriting your settings file previously. It will no longer do that.<br />
** Additionally, a lot of extra instrumentation has been put into GameSettting.SerializeGraphicsTo and GameSettting.SerializeTo, so that we will know better what is wrong if it is trying to save improperly. These should also be more resistant to saving incorrectly in the first place.<br />
** Thanks to Isiel for reporting.<br />
<br />
* If a savegame has somehow been made that has a blank savegame in it, then it will try to load it with the info of the current version of the game, with a warning in the log that this may fail very badly.<br />
** Thanks to Isiel for reporting, and providing a save that was probably made while the game was in an invalid state.<br />
<br />
* Fixed a case where trying to load certain saves could fail silently as far as the interface was concerned. Now it actually shows you a proper error message.<br />
** And then fixed a whole bunch of cases where certain code paths on almost-certainly-broken saves would return very genric and unhelpful errors when you tried to load them.<br />
** This doesn't really help us actually load the savegames in question, but tells us more about what is wrong with them.<br />
** Thanks to Isiel for reporting, and providing a save that was probably made while the game was in an invalid state.<br />
<br />
* Suppressed a harmless popup that could happen in ReactToShotHittingSquad during cross-thread race conditions. Now it just fixes the data and moves on.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
== Beta 2.126 Dark Spire, Eyes, and Fixes ==<br />
(Released August 22nd, 2020)<br />
<br />
'''To play this version, please be sure to choose the current_beta branch on Steam. The central game loop changes we made in the prior version did not blow up, but a few other things did, so we're glad we went the beta route. If for some reason this beta has problems but the prior one worked for you, we have temporarily made the most_recent_stable_beta active and pointing to 2.124. But this version should actually be more stable (knock on wood). We'll be back out of beta by mid-week the week of the 23rd.'''<br />
<br />
* Fix a bug with DS Conquest VGs and the new hack<br />
** Thanks to gigastar for reporting<br />
<br />
* Fix a bug with the Full Metal notification<br />
** Thanks to a screenshot from Oval for making me aware of this<br />
<br />
* The AI should now attempt to play voice lines for Exogalactic Strikeforces, and when you spot the Nanocaust.<br />
<br />
* The DS is no longer allowed to spawn Loci on planets with Dark Spire Wards<br />
** Thanks to crawlers for reporting<br />
<br />
* Make the Dark Spire more aggressive about spawning Loci<br />
** Thanks to crawlers for suggesting<br />
<br />
* The player can now choose the starting armory for player-allied scourge<br />
** Thanks to crawlers for suggesting<br />
<br />
* Improve the hovertext for some scourge units just a bit.<br />
<br />
* Fix a bug where new games in the beta weren't starting correctly<br />
** Thanks to Keith and Tynendir for reporting<br />
<br />
* Capturing an AI homeworld no longer generates AIP. This only applies to games creates on 2.125 or above.<br />
** Thanks to GreatYng for suggesting<br />
<br />
* AI Eyes now trigger based on whether you have more Strength on a planet, not off the number of fleets<br />
** This is not necessarily the final state for Eyes, but having them trigger off of 'number of fleets' didn't make any sense anymore. This is a functional stopgap until someone has a better idea<br />
** Thanks to a number of people for discussing, including Flypaste, Asteroid, Democracy, GreatYng and others<br />
<br />
* Fixed typo in multiplayer message.<br />
** Thanks to fwiffoforce for reporting.<br />
<br />
== Beta 2.124 HRF Pacekeeping ==<br />
(Released August 18th, 2020)<br />
<br />
'''To play this version, please be sure to choose the current_beta branch on Steam. If this isn't blowing up in major ways, we'll move it back to the main branch within a few days. If it is blowing up a lot, then it may be into next week before we come back from beta. We changed too many fundamental things with the game loop to just release this with no beta, even though we were careful.'''<br />
<br />
* Minor rework to minor faction hacks. Its now more expensive (in line with the previous hacks). The description no longer mentions an AI response. The DS and Dyson units are now upgradable, but not very much. These are intended to be 'cool little tidbits' but nothing to really swing the game<br />
** Thanks to GreatYng and Lord of Nothing for bug reports and comments<br />
<br />
* Add a 'Full Metal' indicator in the metal bar<br />
** Thanks to Nyarlathotep. Iä! Shub-Niggurath!<br />
<br />
* The hovertext prompt that describes when swapping ship lines will scrap your units has been modified to describe the current behaviour correctly ("Your ships are scrapped if they are loaded, or the flagships are on different planets"). <br />
** Thanks to StrategicSage and Ubifan for reporting<br />
<br />
=== HRF Changes ===<br />
<br />
* The HRF ships now have some unique names.<br />
<br />
* The HRF now create a structure at game start time that you can hack for a new ship line (using the backported DLC2 tech) and for 1K science<br />
<br />
* Fix a longstanding bug where the Human Resistance Fighters would only say their 'defeat' voice lines, not their 'victory' voice lines.<br />
** Thanks to Nyarlathotep. Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn.<br />
<br />
* The HRF should now pack a bigger punch when they arrive, but they are a bit less likely to show up.<br />
<br />
=== Bugfixes And Tweaks ===<br />
<br />
* Some minor improvements to the ability of vulnerable Vengeance Generators to be killed<br />
** Hopefully this helps. Thanks to Lord of Nothing for reporting, and Puffin for suggesting the improvements<br />
<br />
* Better enforce the 'can't repair ImmuneToRepairs' unit interactions. Still a bit weird.<br />
** Thanks to MasterGeese for reporting<br />
<br />
* SerializeByInternalName and SerializeByIndex both now accept FieldName as an optional parameter so that we can see what is happening within them from a serialization logging standpoint.<br />
<br />
* A bunch of extra serialization logging has been added into the world and the faction configuration objects, to make finding errors there easier.<br />
** However, it turns out that there were no public errors on this, just an error in a working copy on one developer machine that had a save from between two updates from that same developer.<br />
<br />
=== Milestone: Multiplayer Pacekeeping Functional ===<br />
<br />
* In the event of a campaign switching which player is the host (this probably means one player manually emailing the game to another), the game now tries to do a better job of handling that.<br />
** In the end this should work fine, but we haven't bothered testing this yet as this is probably kind of an edge case compared to most other things we're working on right now.<br />
<br />
* All of the "frame number" information for sim frames is now just serialized on the network and never to disk.<br />
** This information is really only useful within a single run of a campaign (aka after loading it off disk and playing until you exit to the main menu or the OS).<br />
** Even if you go just back to the main menu and load back into the game directly after, there's no reason not to start those numbers off fresh again.<br />
** We've thus switched to a number format for serializing these that will "only" allow for 160 hours of continuous realtime play in a given campaign, without exits to the main menu. This is the definition of excessive, and could always be changed in the future if it was needed.<br />
<br />
* A variety of variables that really are only for the network, and serialized but not to disk, now have the prefix Network_ so that we can tell those apart with ease.<br />
<br />
* In multiplayer, the basics of "host waiting for clients to catch up" is now in place. This prevents the strange lag that clients were seeing, which was happening because they were back in time.<br />
** However, also in multiplayer, unlike the original AI War, it will not definitely wait around for players who are missing. If those players are not connected, then you can unpause and play without them until they arrive. Only once they are present do you have to wait for them to sync up.<br />
*** If this latter choice turns out to be problematic for some reason, we can always add a toggle for that or change it. But it seems friendly. Chris remembers nights where 1 person out of 4 player game couldn't make it, so just keeping on playing without them would have been so nice versus having to go in and change the status of their account before playing.<br />
<br />
* Various of our "simulation profile" variables that were set a loooong time ago in a different way for multiplayer and single player were making multi-player feel sluggish. We've tightened up this some in order to feel better under a pretty general set of networking conditions.<br />
** We may need to revisit this in the future (during alpha or beta) to make these things that people can configure if they are in a situation of, for instance, high packet loss or extremely high or low pings, to get the best possible experience at any given time.<br />
<br />
* Various other changes have been made in order to make the client send over commands to the host as soon as possible, and then to make sure that the host causes those commadns to be executed on the FIRST simulation frame of the next batch, not the last frame of that next batch.<br />
** All in all, the game now stays in time sync, across Valve's server relays and back, and things are snappy and responsive on both the client and the host. There are moments of delay that cause a brief "waiting" message to flash up for maybe a quarter of a second every so often, but it's really a minor thing and is something that we can improve with tuning in the future.<br />
** The overall functionality is there to the point that if background threads and floating point math were not knocking things out of sync, this would be a perfectly playable alpha. As it stands, it's quite playable for a few minutes at a time, at least on Chris's two test machines, without things becoming noticeably off.<br />
** It's also worth noting that the simulation speed on the host shows up as being something like 80% right after starting the game, which is misleading because it had one very long frame where it was waiting on the client to connect and sync up. That will be fixed in the future, but it self-resolves the visual artifact within something like 20 seconds of starting, anyhow.<br />
<br />
== Version 2.122 Empire Names ==<br />
(Released August 17th, 2020)<br />
<br />
* *Makeshift Drones now once again self-destruct when attacking instead of only self-attritioning slowly.<br />
** Thanks to NR SirLimbo for fixing.<br />
<br />
* The lobby now once again allows for you to zoom in and pan around, since some maps can be larger than you can comfortably see on a single screen.<br />
** However, every time you generate a new map, it will default to showing you the entire map completely zoomed out.<br />
** It also no longer EVER allows edge-panning in the lobby, as just general usage of the lobby will wind up with you accidentally panning the lobby around if that is in place.<br />
** Thanks to CRCGamer for confirming our suspicion that we'd need to do this.<br />
<br />
* Fixed ANOTHER bug with the lines being offset from the planets in the galaxy map, this time when you were zoomed in. The more zoomed in you were, the more off they got.<br />
** This bug was caused by our latest fix to the lines being off when you were zoomed out. Now it should work at all zoom levels. This was an annoying one, to be sure, but we're glad to have it finally lining up all the time.<br />
<br />
* Fix a bug where player-allied scourge weren't building properly<br />
<br />
=== Multiplayer Progress ===<br />
<br />
* Added a new Human Empire Name setting on player factions:<br />
** If left blank, will be the name of the first player controlling this faction. If you want your empire to have a different name than your personal name, you can do that here. If multiple players are sharing a faction, then they can give it a name that represents their shared interest in it.<br />
** This can be edited during the game (like player colors can be), or in the lobby.<br />
<br />
* When a new player joins as a client to a game, it now creates a slot for them and puts them in charge of it instead of them defaulting to spectator mode.<br />
** It assigns their colors properly, and all of that sort of thing, too.<br />
<br />
* Player accounts beyond the first are now removable, which lets players go back into spectator mode, or (later) control a single faction via multiple players helping.<br />
** This makes the default case (everybody has their own faction) set itself up by default, but then lets players back things out into the less-usual cases (shared factions, spectator mode, etc).<br />
<br />
* Players beyond the first are now auto-assigned a starting planet somewhat at random, letting them choose something on their own later.<br />
** A whole lot of logic that was very not-MP-safe is now MP-safe.<br />
<br />
* When loading a savegame or quickstart into the lobby, or loading the last settings for the lobby, it strips out all human players beyond the first.<br />
** This is consistent with it then recreating player accounts as those come in, too.<br />
<br />
== Version 2.121 Savegame Hotfix ==<br />
(Released August 17th, 2020)<br />
<br />
* Fixed a deserialization bug in the prior version that made any games saved with a dyson sphere in them not able to be loaded if they were saved in the prior version.<br />
** The nature of the issue was such that those savegames will now load without issue, thankfully.<br />
** Thanks to Lord Of Nothing, CRCGamer, fatcat__25, GreatYng, Djri123, Djri123, mekolab, and goz for reporting.<br />
<br />
== Version 2.120 Improved Lobby Map Experience ==<br />
(Released August 14th, 2020)<br />
<br />
* Fix a bug where sometimes the AI's ships wouldn't be allowed to retreat<br />
** Thanks to Sigma7 for reporting<br />
<br />
* Hopefully fixed a problem where sometimes allied scourge could kill AI Command Stations immediately after a game load<br />
** Thanks to GreatYng and ZeusAlmighty for reporting<br />
<br />
* Fix a typo with the Spire and Marauder Beacons<br />
** Thanks to Apthorpe and Ovalcircle for reporting<br />
<br />
* Fix a bug where hovering the Hacking resource bar entry would give a negative number during the superterminal hack<br />
** Thanks to GreatYng for reporting<br />
<br />
* Improve the Hacking Resource bar hovertext for the case where you have multiple hackers. Note it still doesn't show hacks against planets.<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* The MDC hovertext no longer mentions Exos<br />
** Thanks to Strategic Sage for reporting<br />
<br />
* Exogalactic Strikeforce speed updates:<br />
** Previously, Exos had travelled at 1800 speed (as of a few patches ago. Before that they didn't have a consistent speed).<br />
** Now Exos travel at "Average speed of their units + 20%" or "800", whichever is higher. This should feel less like they are speed-racing to your homeworld. For speed-context, 800 is the speed of a Parasite.<br />
*** Thanks to GreatYng and Lord of Nothing for discussion<br />
<br />
* Fix a typo in the hovertext for larger numbers of planets <br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Remove a mention of Fleet Exp in a tooltip<br />
** Thanks to Lord of Nothing for reporting.<br />
<br />
* Take safest path through galaxy now uses the modifier key alt, while take shortest path now uses the hotkey ctrl.<br />
** The prior hotkeys of X any Y conflicted with other functions and changed your unit stances or sidebar status, etc.<br />
** Thanks to Sigma7 for reporting.<br />
<br />
=== Ability To Reset Camera View To Default ===<br />
<br />
* New hotkey in the camera section: Reset Camera Rotation And Tilt<br />
** Default ctrl+R.<br />
** Press this button combo to reset the camera's rotation and tilt to the default values.<br />
** Thanks to dv, Ovalcircle, Bobtree, and many others for requesting.<br />
<br />
=== DLC2 Backports ===<br />
<br />
* The Dyson Sphere Golem can now be hacked like an ARS for one of a small selection of Dyson ships. You only can use this hack once.<br />
<br />
* The Dark Spire Vengeance Generators can now be hacked like an ARS as well<br />
<br />
* This is a backport of a DLC2 feature that allows for a minor faction to have a structure which can be hacked like an ARS for unique ships. This is usable by modders with only some XML. <br />
<br />
* Approximate usage: in the minor faction GameEntity XML, for the ARS-equivalent, set the following<br />
** Assign it the HackForShipType tag<br />
** Make it eligible for the HackToGrantShipLine_DontDestroyTarget or HackToGrantShipLine hacks<br />
** Then add the following additional fields<br />
*** grants_stuff_to_be_added_to_player_fleets="true" <br />
*** grants_stuff_to_be_added_to_player_fleets_strikecraft_options="X" <br />
*** grants_stuff_to_be_added_to_player_fleets_frigate_options="Y" <br />
<br />
* Then for the ships you want to have available, set one of these<br />
** <fleet_membership name="AddedToFleet_MinorFaction" ship_cap_group="Strike" weight="100" min="30" max="35" faction="factionName"/> <br />
** <fleet_membership name="AddedToFleet_MinorFaction" ship_cap_group="Frigate" weight="100" min="1" max="1" faction="factionName"/><br />
*** Note the FactionName in the fleet_membership must match the name of the faction (I believe it checks the TracingName for the faction, which is set in C#)<br />
<br />
=== Dark Spire Improvements ===<br />
<br />
* There's now a preliminary Journal Entry for the Dark Spire when you first see them.<br />
<br />
* There's now a Journal Entry for when the Dark Spire enter conquest mode (ie from the Fallen Spire campaign).<br />
** This explains what Conquest Mode is, and it's much harder to miss.<br />
<br />
* The tooltip for the Locus now prints different text in Conquest Mode.<br />
<br />
* Thanks to crawlers for the bug report that prompted these enhancements<br />
<br />
=== Galaxy Map And Camera Display Work, Lobby Map Overhaul ===<br />
<br />
* The galaxy object now has a a FindSpatialCenterOfGalaxyInGalaxyCoordinates() method, which lets us find the center point of the galaxy based on however the planets were seeded.<br />
** Also added FindSpatialBoundariesOfGalaxyInGalaxyCoordinates() to let us find the overall bounds easily.<br />
** But actually we're going to not bother using this, turns out.<br />
<br />
* We were also working on a CenterGalaxyOnAllPlanets() method, but we've abandoned that for a different approach. The code is mostly complete and left in for now so that we can revisit it if we find a use for it.<br />
<br />
* The old-style cameras have been disabled for a long time (years) in xml, but we've now removed them from the code as well.<br />
<br />
* Added extensions GetWorldSpaceBottomLeftCorner and GetWorldSpaceTopRightCorner for UI RectTransforms.<br />
** The chat window in the right hand side of the lobby in multiplayer now uses this and a world space to camera transform to calculate its ScreenSpaceLeft, which lets us, regardless of your screen resolution, DPI, aspect ratio, or custom settings in this game itself, figure out where the UI ends and avoid underlappig it.<br />
** Same thing with a ScreenSpaceRight on the map tab left sidebar.<br />
** Same with ScreenSpaceTop on the footer controls, and ScreenSpaceBottom on the header controls.<br />
<br />
* For the galaxy map camera, the zoom now lets you go out farther in the lobby, and even farther in the multi-player lobby, so that it can always fit the map entirely in the main view screen.<br />
** Tested this with the game at 900px wide, 1800px wide, and 2560 pixels wide. In all cases we now come out with a consistent result.<br />
<br />
* Fixed up a bit of logic for the dynamic zoom for resolutions smaller than 1200px x 900px.<br />
<br />
* In the lobby, the galaxy map camera no longer responds to mouse or keyboard input at all. This is an overhaul that has been requested for years and years.<br />
** Now the lobby always has the map as zoomed out as it can.<br />
** It is also centered in whatever the available space is (depending on if the right-hand sidebar is there or not, that may or may not be centered on the actual screen).<br />
** This is extraordinarily useful, in that it lets you cycle through maps with ease, and there is typically not too much detail that you need to see in them like you would during an actual game.<br />
<br />
* The math for how much the galaxy camera should be able to zoom out has been entirely re-coded from scratch, and is now vastly more efficient as well as something we can actually follow.<br />
** Instead of taking something like a thousand loops to get a kinda-bad answer, it now takes typically under 60 loops (often under 20) to get a highly accurate answer.<br />
<br />
* In the galaxy map display calculations, and number of strange magic numbers were removed, now that we have the proper math in here. Wow this was unexpectedly hard.<br />
<br />
* At very long distance zooms, the planets were STILL being visually offset from their lines that they were above, it turns out.<br />
** This had to do with how we were offsetting the icons in order to avoid z-fighting, and how that was getting magnified by us scaling up the planets at further zoom distances.<br />
** The fix for this might introduced some z fighting, but probably will not because of the way that we are rendering these as "cutout" style transparency, and with GPU instancing determining the order of draw.<br />
<br />
* In the lobby, the planet you own is no longer ringed in white selection, as the in-game "planet you are on" is done. Now it just shows the planet color, plain and simple.<br />
<br />
* In the lobby, if you have the setting "always show planet names" on, it still won't do that, because that will make the fixed-size galaxy map potentially impossible to read.<br />
<br />
* The galaxy map in general shows planet names that are un-owned as being far less blinding white in their text.<br />
<br />
* In the lobby, it no longer shows the first owning player name under the name of the planet.<br />
<br />
* The visual scale of the actual planet spheres in the lobby is now about a two thirds what it previously was, but the text is almost as large as it was before. If the text is too small, we can adjust it up.<br />
<br />
* In the lobby, hovering over a galaxy map link no longer highlights the two planets adjacent to it, since that is visually confusing in that context only.<br />
<br />
* Added ShowTooltipNarrow() and ShowTooltipWide() to the IPresentationLayer and IBattlefieldHandler, so that we can trigger tooltips super-directly from deeper-in code.<br />
<br />
* In the lobby, hovering over planets now makes it show a tooltip at the mouse cursor that says the name of the planet (since that might be obscured by being very near the top of the screen, now), but also some other information.<br />
** It says how many wormholes there are, and gives a comment if that will be extra hard to defend.<br />
** It also shows the name of any human players who are going to have that as their starting planet, in their appropriate colors based on their faction color.<br />
** There was some funky stuff in the hover logic for the galaxy map that made this super difficult.<br />
<br />
* Fixed a funky bug relating to tooltips that were showing the same text as before, but had themselves cleared and then wouldn't keep showing the text anymore until it was given different text.<br />
** The first time this ever manifested was in giving tooltips on the lobby galaxy map, but it's an old old bug.<br />
<br />
* Fixed an issue in the lobby where it was not showing the names of planets automatically for planets owned by players other than yourself.<br />
<br />
* The map types list in the lobby has always been kind of randomly organized, which was annoying. More recently, it has been in a different order every time you start the game.<br />
** Now it is in the order Realistic, Simple, and then all the others alphabetically.<br />
<br />
* Fixed a bug when loading directly into the game and not visiting the lobby where it did not set the dynamic zoom properly in the last few internal builds.<br />
<br />
* Also fixed a boneheaded typo in the very most recent internal versions that was making the height of the dynamic zoom calculation slightly off.<br />
** There is still something a bit off with the squares map type and how it displays in the lobby (it is offset upwards and also shown too small), but all the other map types work and so this seems to be some sort of data issue with that map type and not a problem with our central algorithm.<br />
<br />
== Version 2.117 Ion Cannons And Melee Units ==<br />
(Released August 11th, 2020)<br />
<br />
=== Balance Work ===<br />
<br />
* Ion Cannon Shots can now:<br />
** Damage both the personal shields and hull of a target in one shot (including killing it outright).<br />
** Kill multiple ships in the same stack in one shot.<br />
** Thanks to GreatYng for pointing out the oddity of Ion Cannons not being able to do these things.<br />
<br />
* AOE shots can now hit any enemy bubble shield overlapping the explosion, rather than only being able to hit the shield if the generator (or something it's protecting) were physically within the explosion.<br />
** Thanks to NRSirLimbo for reporting and RocketAssistedPuffin for the save.<br />
<br />
* Crippled units (i.e. player flagships) can now pass through enemy bubble shields and traverse wormholes covered by them, to avoid being stranded in hostile territory.<br />
** Thanks to tadrinth for reporting and RocketAssistedPuffin for the save.<br />
<br />
* Melee units in attack-move mode will now go after units within a limited range (equivalent to a weapon with range=Normal1), so you have a middle-ground between "only attack your direct target or things actually touching you" and "pursue anything on the planet".<br />
** Also, even when not in attack-move mode, player melee units without orders (and not in hold-fire mode) now automatically move to attack nearby targets. If all such targets die or move away, the melee unit goes back to where it was.<br />
** Thanks to OzoneGrif, wm46, RocketAssistedPuffin, and Ubifan for the suggestions and saves leading to this change.<br />
<br />
* Fixed a bug where deathgrip tackle drones had a gun that could shoot immobile targets, greatly confusing their logic. That gun now has the only_targets_mobile_units flag.<br />
** Also fixed a bug where tackle-drone-launchers could give their spawned drones a direct attack order to go after an immobile unit.<br />
** Thanks to tadrinth and RocketAssistedPuffin for the reports leading to these discoveries.<br />
<br />
=== Bugfixes ===<br />
<br />
* Scourge: fix a bug where player-allied scourge were building tons of Builders but no Fortresses (they were mistakenly thinking they were minor faction allied)<br />
** A number of people on discord noticed the lack of Fortresses<br />
<br />
* Potentially fix a bug where Regenerator Golems were regenerating things while crippled<br />
** Thanks to crawlers for reporting.<br />
<br />
* AI Reserves now will create anti-player zombies.<br />
<br />
* Take another stab at 'adjacent planets watched'. Sigh.<br />
<br />
* Fixed an issue where on computers without GOG Galaxy installed, they would get a harmless-but-annoying error message at game startup.<br />
** Thanks to Badger for reporting.<br />
<br />
* Minor tweak to target list planning; use a case insensitive comparison for zombification.<br />
<br />
* The 'total units' count should now include stacks.<br />
<br />
* The AI "Great-Turrets" are now simply called "Turrets" again, as at this point balance-wise the player turrets and AI turrets are similar.<br />
** Thanks to GreatYng and RocketAssistedPuffin for bringing this to our attention.<br />
<br />
* Exogalactic War Units now use a better spawn-in message than before<br />
** Thanks to zeusalmighty for reporting<br />
<br />
* Fix a problem with the Custodian description text<br />
** Thanks to GreatYng for reporting<br />
<br />
* The semicolon was previously not supported by our chat log format (our "condensed ascii"), but now is.<br />
** Thanks to Badger and Sigma7 for reporting.<br />
<br />
=== Multiplayer And Lobby Work ===<br />
<br />
* Heartbeat messages from the client to the server and vice-versa are now omitted from all of the networking logs. They were making things far too cluttered for us to be able to see real information when we had network logging of various detail levels turned on.<br />
<br />
* Some excessive logging on GOG and Steam with regard to their send result statuses has been removed, as again this was clogging up our network logs.<br />
<br />
* The clients now have a secondary FromClientToServer_SignalDoneButHasNoCommands that they can send in place of the FromClientToServer_SendMyNextCommandBatch when they don't have any commands to send (which is most of the time, statistically).<br />
<br />
* GameSpecificNetworking now has a DoPerFrameLogic() method, which lets us efficiently set some per-game settings like we do for the arcen debugging stuff.<br />
<br />
* New setting in the Network section of the settings menu: Network Logging Includes Frame Auths.<br />
** In the lobby and during gameplay, there are messages sent by the network every 100ms or so to keep themselves in sync, and if you have them included they will tend to crowd out the rest of the messages that are sent. So by default these are disabled.<br />
<br />
* New setting in the Network section of the settings menu: Network Logging Includes Command Batches.<br />
** In the lobby and during gameplay, there are messages sent by the network as frequently as every 100ms, but more often some sporadic multiple of that. This is how factions tell everyone what they want their ships to do, and how human players say the same. There's very little that we can say about this in a meaninful way in the networking log level, and again this will tend to crowd out the other messages that happen. So by default these are disabled, but bear in mind that most things that players actually cause to happen are being caused through these batch messages.<br />
<br />
* Found and fixed a general issue where the player accounts were not properly being cleared (and fully resetting the player account IDs) during all cases where a game is loaded into the lobby. At a bare minimum, it was affecting the "open a custom game with my last settings."<br />
** That would have eventually led to out of bounds exceptions, over time, and in general was cluttering up some areas important for multiplayer, but it had not had a negative impact on anyone so far.<br />
<br />
* Fixed a bug that was causing all sorts of craziness on clients in multiplayer in the lobby, with them not getting their galaxies full cleared.<br />
** This was leading to things not being properly in sync between the client and host, like planet names or locations, and things like extra planets or planets in old locations, or noninteractive planets at a whole other scale visually from the real planets. It was quite messy! All of that is now corrected, thankfully.<br />
<br />
* In the lobby, when you change the number of human factions, it now regenerates the map immediately. For other factions it does not bother, never has, because there's nothing different to see at this point in the galaxy.<br />
<br />
* The WorldSetup objects now have a readonly SetupTypeName on themselves, so that we can tell what they are.<br />
** ChangedSinceLastMapGenCall on this same object is now a property, which lets us throw out debugging messages when it is being triggered for whatever reason.<br />
** Something has been causing extra calls to be sent through the map generation pipeline in a redundant fashion that makes everything slower than it needs to be.<br />
<br />
* Removed the ability to send a WorldSetup object via GameCommand, as that is actually highly antithetical to the way we edit that data as of the last year and a half or so.<br />
** We specifically try never to adjust the entire thing, because several players at once could be editing different parts of it and we want those bits to all merge at once.<br />
** Got rid of the SetupOnly_ChangeSetup GameCommand, which was set to use this sort of thing.<br />
** Got rid of the LobbyWorking_HasBeenChangedAndShouldTransmitChanges() method on WorldSetup, which was being used by a loop in the footer to keep clients up to date.<br />
*** The problem with this is that this was far older code, back from perhaps 2017, and it was using an older and more sledgehammer-y approach to try to keep clients and the host in sync. When the lobby was redone in 2019, this became obsolete but was still hanging around and so caused some nontrivial chaos.<br />
** LobbyWorking_HasBeenChanged() has also been removed, as it seemed duplicative and was no longer in use perhaps?<br />
*** Oh goodness, this was actually how we were ever updating the long-term stored version of the game (as opposed to the lobby working copy). This was not a good way to do it, but it was not quite as antiquated as we thought.<br />
<br />
* Fixed a rare nullref exception that could happen in the ships sidebar if you were not properly on an actual planet.<br />
<br />
* Fixed an issue from the last few months (probably) where if you had an error during map generation, it would still try to dump you into the world and then give you tons of other errors. It should have been stopping you and making you fix whatever was wrong.<br />
** This is most common when there are not enough planets for all the factions you have chosen, or a few other rare cases. One such case is just discovered internally, and that's you having a planet starting index that is higher than the number of planets currently in the world.<br />
<br />
* Helper_AssignHumanHomeworld() and the AI variant are now Helper_TryAssignHumanHomeworld() and an AI variant.<br />
** It was already quite possible for these to fail if the player had selected something invalid, such as previously having clicked a planet with an index above 40 and then choosing a map size of 40 planets.<br />
<br />
* The game now auto-assigns humans a planet that is valid if they don't have a valid option, and it does so in a multiplayer-compatible fashion.<br />
** Previously this tried to do the assignment, but did not do so in a way that worked, and even if it had worked it would have only worked for one player.<br />
** This also includes a new sub-gamecommand, StartingIndex_FromAutoAssignInMapgen, which efficiently lets the UI know what is happening without triggering an extra map generation cycle or accidentally overriding a distinct change made by the player.<br />
<br />
* The lobby is now substantially more responsive even in single player, although it seems to be having some extra calls that we are still hunting down.<br />
<br />
* Fixed an annoying issue that was causing an extra regeneration of the map to happen when you first went into the lobby in single player or as the host, leading to the lobby load time being half a second or so longer than it should have been.<br />
<br />
* Fixed an issue where if one person in the lobby adjusted the following fields, it would not be reflected for the other players in the GUI (but would in the map itself):<br />
** Planet naming style.<br />
** Map type.<br />
** All of the other map sidebar controls were showing things properly and also able to be controlled from any client or the host.<br />
*** Do bear in mind that if you manually enter a map seed, it won't appear for the other players until you hit "Regenerate Map," but given that does not actually affect the map until that button is pressed, this should not be overly surprising.<br />
** All of the faction controls and their sub-controls have been workign properly from the start, and still seem to be.<br />
** Same thing with the galaxy option controls (all of them), which is pretty exciting.<br />
<br />
* The "Campaign Name" is something that is only for savegame management, and thus is only relevant on the host side. The clients now see "Will be set by host" as the text in that box, and cannot change it.<br />
<br />
* The "Start Game" button is also something that we are limiting to be host-only, for a variety of reasons. The biggest is that they need to set a campaign name, but that's entirely host-side.<br />
** Clients clicking this button now get a message that asks them to wait for the host to do it.<br />
** Actually, for the sake of ease of use, the "Reset To Defaults" button and this one are just hidden on clients in multiplayer. Clicking Reset to Defaults on a client results in an error for a lot of good reasons based on how it is trying to accomplish that.<br />
<br />
* All of the lobby controls now seem to work properly for both the host and client. There are still some things in chat that are messed up, and we're missing controls for making clients not always be spectators, but we can also get into the game.<br />
<br />
* Fixed the harmless but annoying "StartingIndexChanges: factionIndex 1 passed when faction count was 0" error message that would happen on clients after a host gave orders to start.<br />
<br />
* The campaign name and its textbox is now just plain invisible for clients in a multiplayer game, again to avoid confusion.<br />
<br />
* The right-hand sidebar in the lobby in multiplayer is now split into two scrolling parts.<br />
** The top part has information about the connected players and the factions that they are a part of, and never auto-scrolls around.<br />
** The bottom one has the actual chat messages, and auto-scrolls to the bottom when new messages come in.<br />
** The fonts of both are a bit smaller, from size 12 down to 10.<br />
<br />
* From past changes, we can now verify that the proper name shows up for clients on the host, instead of it just saying "Player 2" for them.<br />
** However, text messages from the client in the lobby show up with the color of the client but the name of the host?<br />
<br />
* Hitting enter while in the chat textbox in the lobby now actually sends the chat properly, as already worked in the main game.<br />
<br />
* In the multiplayer lobby, the top panel now shows the status of the various PlayerAccounts that are in a game. Specifically it shows any who are connected or disconnected, or which ones are you, etc.<br />
** It also shows players that have an account in this game at the moment, but who are absent.<br />
<br />
* Fixed a bug where player accounts were being created with the name of the host, not the connecting client, which was confusing all sorts of things.<br />
<br />
* The preferred colors from the player profile on each local machine is now sent over and applied to their player account for later reference. This was also causing endless new player accounts to be created, since there was never a match to the connecting client.<br />
** A variety of pieces of code had to be updated to support this.<br />
** Apart from them selecting a color for their faction, this gives them a chosen color in text chat.<br />
<br />
* Added a new OnEndEdit() event for text input boxes, which lets us trigger things when a player clicks out of a textbox.<br />
** This now happens for the map seed in the galaxy map, same as with hitting enter, as both now trigger an immediate regeneration of the map (without you having to hit regenerate map manually).<br />
<br />
* Faction colors for player factions now come from the network data rather than just the local data, which is important for multiplayer.<br />
<br />
* Fixed the bugs with lobby chat messages not appearing properly on the client and host in various ways.<br />
<br />
== Version 2.116 GOG Networking Done ==<br />
(Released August 6th, 2020)<br />
<br />
* Fix a bug where the 'Watch Extra Hops Worth Of Planets' code was being applied incorrectly<br />
** Thanks to Tynendir for reporting.<br />
<br />
* Fixed a bug where Macrophage Spores don't move to new planets when loading a second save game.<br />
** Thanks to GreatYng for reporting, and StarKelp for fixing.<br />
<br />
=== Milestone: GOG Galaxy Networking Integration Complete! ===<br />
<br />
* The Arcen GOG Wrapper has been majorly updated to get your GOG Galaxy Friends list and the status of them so that you can play multiplayer with them if you want to.<br />
<br />
* When you are in the GOG networking mode, it now shows the list of your friends, just like it does for Steam.<br />
** Basically all of the functionality is identical here, in terms of how it shows those who are online, offline, and in-game, and lets you filter between them, etc.<br />
** The one difference is that in Steam we show the "in this same game" status as a light green (like Steam does), and in the GOG version we show that status in a purple color (to match their color theme).<br />
<br />
* The host computer now is able to open up a lobby for friends when it says "open server."<br />
** This works with all the various NAT punchthrough that GOG Galaxy supports, which we are not entirely clear on the details of. This may be as robust as Steam, or slightly less so, but we honestly have no idea. We'll be interested to hear from you! But either way, it's out of our hands at that point, so it's just information gathering.<br />
** The host is also now properly destroying the lobby when it shuts down, so that others won't try to connect to it and not see it.<br />
<br />
* When clicking the Join menu in GOG, the client now sees lists of their friends with four categories instead of just three.<br />
** Friends who are in-game but not in a lobby right now are showed in a dull light purple. Friends who are in game and have an open lobby show up with a bright purple status.<br />
** You can also cycle through all friends, open lobbies, friends in this game, and online friends.<br />
<br />
* In the listing of connections, for GOG it now shows a button that says "closed" instead of "connect" next to each friend who does not have an open lobby.<br />
** With Steam, someone could be in offline status but still let you connect to them. With GOG, we have to have a lobby ID to connect to, so there's no way to hide that and still even attempt a connection to someone.<br />
<br />
* GOG clients are now able to search for lobbies and correlate those to their friends list, which under the hood is a several-step process.<br />
** We are filtering out any potential rogue lobbies created by bad actors, and correlating them specifically to those owned by your friends.<br />
** It's possible that a friend might jump from the status of being offline (prior to opening the lobby) to showing up as someone you can connect to (when they open the lobby), actually, so potentially this actually does allow for the same sort of quasi-stealth game connections that people can do using Steam.<br />
** That said, since lobbies have to be advertised (to your friends) and we can't have a client just blindly try connecting by userID like in Steam, if you open a lobby and your other friends are actively in GOG looking to join a game of AI War 2, they would see that. Not a big thing, probably, but it's something we've noticed about the nature of these two differing systems.<br />
** You may find yourself having to hit refresh a few times on the client side in GOG, as there is a few seconds of lag before the lobby that the host creates shows up. It seems to be under 4 seconds at the most in current tests.<br />
<br />
* GOG clients can now actually initiate connections to a host lobby. And it works!<br />
** The client is aware of getting into the lobby, although it takes a few seconds.<br />
** The client also does gracefully tell them that they are leaving the lobby, and the GOG servers and the host are both finding out about that properly.<br />
<br />
* The GOG Galaxy networking client is absolutely fully implemented, now!<br />
** A huge amount of the actual send/read logic was able to be pretty much identical to Steam, which was not super far off from what we did with LiteNetLib.<br />
** Pro tip: if any other developer is ever wondering about SendP2P messages on the GOG network, those can take any size, not just stuff under 1200 bytes. It handles all of the fragmentation and recombination extremely well, and just as fast as Steam or other services.<br />
** The initial connection process to a lobby with GOG is a bit slower from North Carolina in the US than what we are seeing to Steam, ranging from 4-6 seconds on the first creation of a lobby on the run of a game to 2 seconds for ones after that. But once the connection is established and brokered, it's easily as responsive for us as Steam.<br />
** For us, this is routing through the internet and some firewalls, so the NAT punchthrough or relay servers or whatever it is in this case seem to be doing their job. We certainly did not mess with any ports.<br />
** Because of the nature of how data is read in from the buffers in GOG, we actually were able to get slightly more efficiency and speed with how we manage the heap compared to Steam or LiteNetLib. It's probably not usually a huge advantage, but it is something that we appreciate the efficiency of.<br />
** Essentially all three of the networking options have their own pros and cons a bit, but are all extremely good. That's a real relief to see, and to see them all working.<br />
** At this point it is now down to making the game networking actually work properly to have the game run, and that's a networking-framework-agnostic process.<br />
*** In a lot of respects it feels like after a large move of house, where all our stuff is now out of the old house and into the new house, but we still have a lot of unpacking and arranging to do. It still feels excellent to be done with the movers and have everything in one location now.<br />
<br />
=== More Multiplayer Work ===<br />
<br />
* Removed some old and unused code that is from the Valley Without Wind versions of multiplayer, checking for disconnections due to inactivity. We are handling that at a lower level, now.<br />
<br />
* Got rid of some old code that was mainly in the older version of our engine pre-Raptor, which was checking for "pthread exceptions" that was never something that could happen in the newer engine that we've replaced it with.<br />
<br />
* The game now has some self-checking code in there for giving us some actual feedback when it decides that it can't run the simulation or show visuals for more than 3 seconds at a time.<br />
** This is a pretty rare case, but it was the "too many changes and the client machine goes to black screen and unresponsive" issue.<br />
** This may have fixed the issue, although there also seemed to be another issue that was related to this.<br />
<br />
* Took out some other unused and old data.<br />
<br />
* The "UseSeed" command in the lobby no longer triggers the gamesettings to be saved. That was not useful, and slowed it down for no good reason.<br />
** It turns out that this was blanking out the settings data in a strange way a lot of the time, and causing the black and white view of the game after you reloaded. It also was apparently directly the cause (somehow) of the infinite black screen on the client after this was triggered.<br />
<br />
* Put in a lot of extra error handling for the steamworks networking in particular in case it has internal exceptions while trying to send something.<br />
<br />
* The cumulative effect of a lot of these changes has basically fixed a ton of issues in the lobby, including:<br />
** Clients not being able to use certain buttons or dropdowns.<br />
** Certain dropdowns not showing the right values to clients.<br />
** The client and the host getting a different view of things after certain buttons or dropdowns were used.<br />
** For a while there I was thinking that I was maybe going to need to make some of the controls for the lobby host-only, but now that's definitely not the case!<br />
<br />
== Version 2.115 Imperial Summons ==<br />
(Released August 4th, 2020)<br />
<br />
* You can now have multiple copies of the Devourer and Zenith Trader in a game<br />
** There's no technical reason for this limitation, and we're encouraging Zenith stuff because of the coming Onslaught<br />
<br />
* Quickstarts are sorted alphabetically again, instead of when the quickstart was created<br />
** Thanks to ArnaudB for the bug report<br />
<br />
* Add some defensive code to the Dyson Sphere<br />
** Thanks to GreatYng for reporting.<br />
<br />
* Fixed a cross-threading nullref exception that could happen during unit unselection (probably due to it dying).<br />
** Thanks to GreatYng for reporting.<br />
<br />
=== Imperial Fleet Summoning Changes ===<br />
<br />
* The AI now generates some weaker bonus exos against miscellaneous player targets (energy producers, MDCs, GCAs, etc), just to keep things exciting.<br />
* Fix a bug where Exos were trickling into their targets instead of moving as groups.<br />
* Start the Exos the moment you finish the hack, instead of some random time < 30 seconds from when the transceiver finishes.<br />
** Blame MasterGeese for these changes<br />
<br />
=== Multiplayer And General Lobby Work ===<br />
<br />
* The "partial map generation" code for giving a preview in the lobby now does even less work, bringing our mapgen times down to 200ms or so on average.<br />
** Because of this, we've also moved the mapgen code during partial-map-generation onto the main thread, to keep things as fast as possible. The full map generation still happens on a dedicated background thread.<br />
<br />
* During the lobby, the way that we handle the execution frame loops is now entirely new, and basically skips over a lot of things that were artificially introducing lag.<br />
** This makes the lobby perform far better in general, and also makes the map generation times absolutely flyyyy compared to what they were before, on single or multiple player maps.<br />
<br />
* This is leading to a number of substantial bugs in the lobby, temporarily, but will make the lobby performance far superior in both singleplayer and multiplayer as we get those resolved.<br />
<br />
* The silent "generate partial map" or "generate full map" complete messages now tells you how long it took.<br />
<br />
* The way that mapgen works, it now has a couple of different contexts that it passes in, so that each one has its own random number generator that is not dependent on the others.<br />
** This lets us ensure that there is consistency between runs of the same code on different machines, and on the detailed version (for play) and the non-detailed version (for viewing in the lobby).<br />
** This is largely solving the issue that we just have started having in this latest round of internal builds with a difference in the final map and the original map.<br />
<br />
* Renamed the Generate() method on map generators to GenerateMapStructureOnly() to be more clear, and also make our code more eaily searchable.<br />
<br />
* Adding a planet to a galaxy no longer requires passing in a context object at all. It now generates its own internal random number generator for its initial variables based on the galaxy map seed, its index, and its original position.<br />
** One of the side effects of this is that now when you change which planet you want to be your starting planet, it will keep the name the same instead of shuffling them around.<br />
** This sort of name-stability has actually never been in this game before, and always was mildly annoying. But in multiplayer lobbies it was going to be even more annoying. "I'll take Adam." "Okay, sure." "Well, I clicked it and now it is called Brian, but that's the one I meant." "Wait, what?"<br />
<br />
* When you are loading a savegame or a quick start as a template into the lobby, it now immediately regenerates the map rather than using the old map, because it's highly likely that the new structure will be different in some fashion.<br />
** This then also solves the problem of clients being different from the host on first connect, probably; that was kind of a compound problem in general.<br />
<br />
* Fixed an order of operations issue that could lead to the occasional "No human players found to seed homeworlds for!" error in the lobby in general, but more recently in multiplayer more frequently.<br />
<br />
* Possibly fixed the issue with later player accounts in multiplayer being renamed incorrectly to "player 2" and such.<br />
** There is still a fair bit of duplicate data happening between data structures, and some lobby/startup code that is blatantly single-player-specific that we need to get sorted out.<br />
<br />
* Dramatically cut down the time it takes to generate planet random seeds, but still with keeping them consistent as you click around the galaxy, by pre-generating the random seeds as the first 300 calls to the "broad random" for the galaxy. Any seeds needed after that will be generated the slow-but-unique way. This means mainly things like nomad planets or other things that are late additions. When just adding a planet or two, it's not so slow as to be a problem.<br />
<br />
* Until now, if you loaded an existing savegame it would automatically put you in control of the first player account, even if your profile name did not match.<br />
** It now continues to do that when you are loading as a single player game, which is enormously helpful for testing and just in general, really. But in multiplayer, it now tells you a list of what the available profiles are, <br />
** In general, if you are loading something as a template, it now clears all the old player account data and loads in your own current name as the new first player account (and further players are already added properly as they connect).<br />
<br />
* Fixed up the way that planets are shown as colored in the lobby galaxy map, so that it will work well with multiplayer and also with the new faster single-player-generated stuff.<br />
<br />
* Improved the logic for it properly setting you to be viewing the new planet you've selected after you make a selection in the lobby. Another thing that did work, but with the revised logic had to be made to work all over again.<br />
** This concludes the fixes to all the known bugs that we are aware of that we've introduced into the lobby today.<br />
<br />
* Fixed another nullref that was happening only on the multiplayer custom games after today's changes.<br />
<br />
== Version 2.113 Dyson Growth ==<br />
(Released August 3rd, 2020)<br />
<br />
* Fix a null reference exception if the game wants to spawn a Relic but you own basically every explored planet<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fix a bug with Dyson Sphere units not marking up<br />
** Thanks to GreatYng for reporting<br />
<br />
* Fix a typo in a Battlestation description<br />
** Thanks to ovalcircle for reporting<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed one oversight that was causing the factions tab chat to not show its chat text properly, unlike map and options in the lobby.<br />
<br />
* As text messages come in inside the lobby, it now scrolls to the bottom of the chat window, as you would expect.<br />
<br />
* The maximum length of chat messages in the lobby is now 1000 characters.<br />
<br />
* GetLocalPlayerFaction() is now GetLocalPlayerFactionOrNull(), to support spectator players.<br />
** Additionally GetFirstPlayerFactionOrNull() has been added, and GetIsFriendlyToLocalFaction() and GetIsHostileToLocalFaction() have been updated to work based on that in order to extend support for spectators even further.<br />
<br />
* Planet visibility is no longer determined from your local faction (since for spectators that might be null, and for all humans it is identical anyhow). It now just uses GetFirstPlayerFactionOrNull(), since that's slightly more effient and supports spectators.<br />
<br />
* Huge areas of the AI have been updated to allow for spectators, generally giving them information that mirrors that of what the first player is seeing (objectives-wise and so on).<br />
** In other areas, it simply updates things to not erorr out when you hit hotkeys, etc.<br />
** Spectators also can't run "cmd" messages from chat; it will just show the text as if it were not a command.<br />
<br />
* GetLocalPlayerFaction() on the planet object has been removed, as that did some risky caching for multiplayer in general, and also was not really compatible with spectators.<br />
<br />
* Fixed a couple of errors where non-sim-but-background-fation-AI code was referring to the local player faction. It now refers to the first player faction.<br />
** Probably this would not have made much difference, unless the game switched hosts partway through or something like that.<br />
<br />
* The chat controls in the lobby now work, though there are some bugs in them still.<br />
<br />
* The correct name for each player faction now shows up for even for players who are in spectator mode.<br />
<br />
* Player factions in spectator mode now see in the lobby chat area that they are in spectator mode.<br />
<br />
* Both the lobby chat and main game chat now support more characters in their text -- basically anything that our "condensed" ascii format is allowed to display.<br />
<br />
== Version 2.112 Steam Networking Complete ==<br />
(Released July 31st, 2020)<br />
<br />
* The description of the Ensnarer Battlestation now explicitly mentions that it can use AI Great-Turrets<br />
** A number of people have reported this as a bug over the years, so hopefully that won't happen anymore<br />
<br />
* All of the Fallen Spire ships, including those in the Spire Railgun Shop optional mod, have had their health and shields doubled, but their firepower halved.<br />
** This should make battles with other mega-units last longer, which feels more appropriate, but keep their "damage over time" the same. <br />
** When these were going toe to toe with the AI Exogalactic War Front units, they seemed to disappear too quickly, making them feel weak. This should keep their effectiveness the same as before, but make the battles take about twice as long with those large ships, so that it doesn't feel like instant evaporation at least.<br />
** The one unit not adjusted is the Spire SuperDreadnought from the Spire Railgun Shop mod. That was already maxed out as a "kills everything and is basically invincible" sort of ship.<br />
** Thanks to a variety of players for weighing in on the feel of these units, and Badger for suggesting this adjustment.<br />
<br />
* Rather than having a slider for the number of planets in the galaxy map view, there is now a dropdown.<br />
** This prevents the intense "regenerate map spam" and lag that was inherent in using a slider, along with making it easier to choose a certain number of planets.<br />
** We have made it so that it only gives you multiples of 2 below 60, multiples of 5 below 100, and multiples of 10 above that. This makes it easier to quickly peruse the range.<br />
** Each entry has some commentary on what it will mean to the feel of the map if you are hovering over it in the dropdown with the number of planets expanded.<br />
** Actually, it wasn't even regenerating the map after you changed the number of planets, which was really confusing! You had to hit regenerate map. Now there is no confusion.<br />
** All of this is easier to use as a player in general, on top of being something that is easier to deal with in multiplayer for sync purposes, too.<br />
<br />
* Fixed a longstanding bug where dropdown selections that were open could persist when leaving the lobby or changing tabs within the lobby.<br />
** Thanks to MaverickPenkenn for reporting.<br />
<br />
=== Milestone: Steam Networking Integration Complete ===<br />
<br />
* Fixed an issue where multiplayer clients disconnecting from a host would try and fail to save the last settings from the lobby. Now it does not save the lobby settings from a session you are just a client of.<br />
<br />
* All of the networking frameworks have had their "send to anyone here and myself" code consolidated into the network authority, so when an interface is partially implemented it won't wind up stalling out waiting on the host.<br />
** Less code duplication is also always good, but it wasn't clear that this was a complete commonality until we got partway into the Steam framework implementation.<br />
<br />
* A new ArcenSteamClientConnection wrapper has been created to keep track of the Steam connection on servers.<br />
** This now properly is registered while the steam connection is alive, and all of the "waiting for player to connect" and "player disconnection" events now happen properly.<br />
** For some reason, we are not getting the "host has accepted you" callbacks on the client end, but that doesn't really matter. As we start actually having our challenge-response data sent via the higher-level networking code, that bit will become irrelevant as it establishes itself within part of one second anyway. It's just a curiosity, or potentially something that is only meant to trigger host-side. Frankly the documentation is sparse in points, both from the Facepunch C# wrapper and the Valve C++ baseline, so this might be working as intended.<br />
<br />
* Substantial progress on the Steam network transmission of data. Still not quite seeing it register yet, but we're getting close.<br />
<br />
* The full suite of network logging has been integrated into our steam networking wrapper, now.<br />
<br />
* When a Steam host shuts down the connection, the steam client computers now definitely notice and react to that. The inverse was already working from the start.<br />
<br />
* Figured out the missing information on how to get data from the facepunch steamworks wrapper (call Recieve() to trigger the other events), and are sticking with the derived classes methods rather than the interface method, since for relay connections it seems like the interface method is not fully implemented.<br />
** With this in place, we're now getting messages on the client machine, and they are properly decoded! The host for some reason still doesn't get messages back, but this is progress.<br />
<br />
* Fixed a bug in our connection status window code that was causing it to stop showing a timer on connection stages after the earliest ones.<br />
** With LiteNetLib, that all flashes past so fast we could not tell that was even happening. With Steam currently stalling out with the host not getting messages, it became apparent.<br />
<br />
* Previously it was possible for our socket mode to be off, and silently ignoring messages we were sending.<br />
** This was initially done to make it so that any lingering messages that would try to be sent after a disconnect would not cause visible errors, but in this case we've wound up with the socket state being off on the steam networking, despite it being active, and this thus resulting in client messages being composed but not actually sent. That was not obvious because of the lack of error messages.<br />
<br />
* Figured out a stupid mistake in our own code, indeed a single line of code, which was preventing the client from sending data properly back to the host.<br />
** Steam networking is now fully functional in terms of sending data back and forth. There is some sort of issue with the world data not getting across properly, but we have to now verify whether that's limited to Steam or also happens on LiteNetLib.<br />
<br />
* Added in a substantial amount of extra error tracking in our univeral and game-specific network message handlers.<br />
** This helps us to find out where errors actually are.<br />
** In the case of steam, right now we are getting some exceptions when the host tries to tell the client what their player profile number is.<br />
<br />
* Fixed a simple typo that was having us send a junk message via both frameworks to the client when they first connected.<br />
** In both cases, this led to the galaxy map not showing up properly on the very first world connect. But in the case of Steam networking, it also led to an exception because the byte array was too small.<br />
** This extra smallness is actually more accurate, and basically it was only not erroring with LiteNetLib because the buffer array was larger than needed because they are pooled.<br />
** This is an interesting difference between these two networking frameworks, but neither one is particularly "wrong. But it does make Steam slightly more sensitive to certain errors in a way that is useful, because it's an error in both cases that manifests in other places.<br />
** Anyhow, this seems to argue for us to internally use Steam as our main testing framework, additionally because that means we are round-tripping out through the internet and Valve's servers and back rather than having the speed of a LAN.<br />
** This also means that the Steam networking library is fully completely integrated, which is a very major milestone! Now it's all game logic, regardless of what is going on with the two networks.<br />
** Also worth noting that it's under 3 seconds to connect a client to the lobby in our test case, using the Steam relay servers, etc. On the LAN it is under one second, so that's pretty killer.<br />
<br />
=== More Multiplayer Work For All Frameworks ===<br />
<br />
* "Planet GalaxyMapVisuals in CenterGalaxyViewOnPlanet null!" will no longer happen. It was a thing relating to trying to center on a planet slightly too early, and the population of the galaxy map still having failed.<br />
** We are now bypassing that and using the raw internal transform offsets to calculate the correct camera position.<br />
<br />
* In response to the initial challenge from the host, the client no longer just sends their profile name. They now also send their list of installed and enabled expansions and mods.<br />
** The host then compares that list to its own installed and enabled expansions and mods. If there are differences, then it rejects the client connection and does a popup on the client and a chat message on the host side explaining why.<br />
** It also notes in there that both parties can enable or disable expansions or mods in the Game tab of the Settings menu to get things to match.<br />
** Please note that, yes, in some cases there will be mods that are enabled but which "wouldn't do any harm" because their functionality won't be triggered in the campaign in question. We don't have any way of knowing that, so we have to err on the side of caution.<br />
** When it comes to expansions, there are none that "wouldn't do any harm," because all of them add some ships and features to the game in general that all players need to have. For instance, the first expansion adds a bunch of new turret options that are available to choose from in any game you play with that expansion on.<br />
** At any rate, we've gone out of our way to make it easy for people to disable expansions and mods so that they can play with friends who don't have those same expansions or mods. The last thing we want is for the only solution to this sort of thing to be someone reaching for their wallet or having to faff about in the filesystem.<br />
<br />
* Low-level chat messages that are sent to everyone from the host are also now sent to the host themselves. Previously, they could not see messages of this sort, turns out.<br />
<br />
== Version 2.111 Initial Steam Connection ==<br />
(Released July 30th, 2020)<br />
<br />
* Fix a null reference exception in my new spire relic code<br />
** Thanks to Chuito12 for reporting<br />
<br />
* Nanocaust: Make the AI wait a bit longer before unleashing Exogalactic units on it. Remove some deprecated code<br />
** Also the exogalactic units won't hang around to kill the entire nanocaust, so there's a chance it can recover.<br />
<br />
=== Milestone: Initial Steam Networking Connection Between Client and Host ===<br />
<br />
* The Steam versions of the game now initialize relay access on startup, to make it so that the first connection using Valve's relay network will be extra fast.<br />
** If you wind up not playing any multiplayer, this is absolutely harmless. If suddenly it is flagging your firewall on game start on the Steam versions of the game, though, that might be why.<br />
<br />
* The basic connection through Steam's newer networking sockets connection is now in place, using their relay servers as recommended. This is the approach that absolutely bypasses NAT traversal and anything else of that sort, and in fact hides your IP address from anyone you are playing with. The claim is that their backbone is faster in most cases than the general internet one.<br />
** If need be, we can make a "Steam over IP" version that allows for their networking sockets stuff to run more directly over UDP, and only fall back to their relay servers if there is a problem. This would be a lot like LiteNetLib, except with much better NAT punchthrough making use of ICE and STUN and all those things.<br />
** For now we are sticking with Valve's recommended practices.<br />
** Beyond just getting the initial connection up, we don't have anything there yet, but on the server we can see the Steam username of the client who requested to connect and who forged the connection.<br />
<br />
== Version 2.110 AI Exogalactic War Front ==<br />
(Released July 29th, 2020)<br />
<br />
* Spire Relics now have additional text in their descriptions explaining either A. whether the relic is on route to a particular planet , or B. that this relic must build on this planet<br />
** Thanks to Lord of Nothing for suggesting<br />
<br />
* All of the units that were previously named "Galactic War [name]" are now just named "[name]"<br />
** However, in the tooltips for them, their faction should now say "AI Exogalactic War Front" in whatever the hunter fleet's color is, rather than saying the AI Hunter Fleet.<br />
** This lets us keep the shorter name, while making their sub-group and source a lot more clear.<br />
** This does need testing, so please let us know if it doesn't show up correctly somewhere. This is using a new xml feature called "override_faction_name", which lets us use a different faction name for some units in a faction, but without actually creating a new faction.<br />
** Thanks to Ovalcircle for leading the discussion that led to this.<br />
<br />
* Spending a ton of science will now increase a player faction's Overall Power Level very slightly.<br />
<br />
* Remove some inaccurate description text for the Rorqual Hejira<br />
** Thanks to GreatYng for reporting<br />
<br />
=== UI for Steam Networking ===<br />
<br />
* Added the new ArcenNetworkConnectionOption class, which we are using as a basis for things like lists of your Steam friends that you can connect to.<br />
** On the network authority, there is a new PotentialServerOptions, which is used to list out such things. This can be used for anything that we need to list a variety of to connect to, not just friends in Steam and GOG. This is in contrast to the "type in an IP" method that we use with LiteNetLib.<br />
<br />
* Started building out the Steam networking framework layer, currently based on the ISteamNetworking implementation that most games use.<br />
** We MAY opt to also start supporting the newer ISteamNetworkingSockets framework that Valve has rolled out more recently, but that would be an alternative networking framework in AI War 2 that you could choose between.<br />
** The fundamental premise of those two Steam networking setups is really different, and while the newer one would in some ways be easier for us to implement, it seems a lot less familiar to the average Steam player, involves IP addresses potentially, and is maybe less battle-tested, but who are we to say.<br />
<br />
* Previously it was still possible to have some exceptions happen silently in the Engine_Universal main loop, and they would log to disk but not show up in your face. Fixed.<br />
** It was also possible to get some silent errors when clicking buttons and other UI elements, turns out. This made the application just seem not to respond to the click, but now it properly shows the error if there was one.<br />
** Also it was possible for certain errors in the UI call stack to prevent the display of the error window.<br />
<br />
* When you try to connect to an IP address, or you change your active networking framework, the game settings now get saved immediately so that that is remembered even if you shut down the program right away.<br />
<br />
* There is now a screen that will be used for Steam and GOG connections, from the client side, and in Steam it now:<br />
** Shows a list of all your Steam friends, with ones that are in AI War 2 at the top, then ones that are online, and then the rest below that.<br />
** Lets you sort to just ones that are in AI War 2 or online.<br />
** Lets you refresh the list to check for updated statuses.<br />
** There is a connect button for each friend, but that is not functional yet. Just haven't gotten to that part yet.<br />
<br />
== Version 2.108 Galactic War Units And The Exostrike ==<br />
(Released July 28th, 2020)<br />
<br />
* Completely rework the way Exogalactic strikeforce leaders work, to allow per-AI-Type customization. No functional change right now, but intended to support some new AI types for DLC2<br />
<br />
* HandleHelperJournals() has been split out into a bunch of sub-methods, since they can error in rare cases and it would be nice to know where the error generally is.<br />
<br />
* Fixed an issue where we were not letting negative risk analyzer data be saved properly. Turns out that has a good reason to be negative at times.<br />
** Thanks to Badger for reporting.<br />
<br />
* Added a new UI feature that is a throwback to some of the functionality we had in various past games: the "center screen message"<br />
** This is basically a message that can show up near the top center of the screen, and stay there for a bit or for as long as needed.<br />
** It won't block the mouse, and it is over everything except modal popups and tooltips.<br />
** This isn't something we would want to use all THAT often, but for cases of things like "hey the server isn't responding, why is MP stalled," this is exactly the sort of UI functionality we need.<br />
<br />
* Fixed a harmless bug where, for the last few months since we've been doing multithreaded loading of camera xml files, the "PrivateVisExtensions" assembly would sometimes have annoying but unimportant errors appear on startup.<br />
** Essentially, it turns out that loading classes from a custom dll is not entirely threadsafe. Go figure. The fix for that is simple, and it doesn't slow things down, but now we know.<br />
** Thanks to GreatYng for the first report of this we'd had outside of ourselves running into it.<br />
<br />
* Fix a bug where macrophage achievements weren't triggering if you killed all the Telia<br />
** Thanks to GreatYng for reporting and StarKelp for the fix.<br />
<br />
* The in-game credits have been updated to include two more individuals who are key DLC2 testers.<br />
<br />
* Added new GetWasWorldStartedOnGameVersionOlderThan() and GetWasWorldStartedOnGameVersionAtLeastThisVersionOrNewer() to world, which let's people find out in a really efficient way if a world was started before some certain point.<br />
** We can't be accurate past a month or so ago, because we were not tracking the original savegame version back then. But it's useful for looking at saves older than the more recent ones and altering them if need be.<br />
** This is now used specifically to fix this macrophage disabled stuff only on older savegames than 2.108.<br />
<br />
* Fix a mispelling in the Mesopotamian planet names<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fix a typo, "reciever" to "receiver"<br />
** Thanks to Apthorpe for reporting<br />
<br />
=== UI Changes ===<br />
<br />
* In the Load Menu, campaigns are now sorted by 'most recent save game in that campaign' rather than alphabetically<br />
** Thanks to Puppet Master for the suggestion.<br />
<br />
* The default sort for the load menu is now by date.<br />
<br />
* Rename 'Exogalactic Strikeforce' to 'Exostrike' and 'Extragalactic War Units' to 'Galactic War Units' in UI. Having "ExoGalactic" and "ExtraGalactic" was a perennial source of confusion<br />
** Note that internally the code uses the old names for the moment<br />
** Thanks to a discord conversation involving relmz32, Oryutzen and NRSirLimbo<br />
<br />
=== Dyson Sphere Buffs ===<br />
<br />
* The Dyson Sphere's ships should now really level up after the hack<br />
** Thanks to GreatYng and zeusalmighty for the bug reports<br />
<br />
* Dyson Sphere hack descriptions now say "This hack will make the Dyson Sphere very unhappy with you for a while" to clarify the behaviour.<br />
** Thanks to Apthorpe for suggesting<br />
<br />
* The Dyson Sphere now gets additional income (ie it can build ships faster) that scales with AIP. As AIP goes up the Dyson and Antagonized Dyson get stronger<br />
<br />
=== Multiplayer Work ===<br />
<br />
* SendMessageToAllClients() has been split into two methods: SendMessageToAllClientsWhoAreFullyConnected() and SendMessageToAllClientsRegardlessOfConnectionStatus().<br />
** We really don't need heartbeats and frame auths and so on going to clients who are still connecting in.<br />
<br />
* Also added a GetCountOfClientsWhoAreFullyConnected() that lets us know if there are any clients who actually have gotten all the way in (and thus we should send world data)/<br />
** And added GetCountOfClientsNeedingWorldData() that lets us know we should make everybody wait for a bit until those people connect in. Otherwise everyone won't be on the same page.<br />
<br />
* Added a OnServer_IsAtPausedSpotWhereGameWorldCanBeSent() that lets us wait for a break in things happening (usually only 400ms or so at most) to then have a clean slate to send a world state to a connecting client without that state changing between them being sent the state and them getting it.<br />
** Along with this, if GetCountOfClientsNeedingWorldData() is more than zero, then it now pauses authorizing more simulation frames until the world is fully taken in by the new clients who are joining.<br />
<br />
* When a multiplayer game is stalled out for some reason, it now uses that central screen message to let you know what is happening, and if possible, why it is happening.<br />
** The game itself will have stopped having any action at this point, though you can still scroll around and look at things and give orders. But nothing is proceeding on the enemy side, so you don't have to worry about it being in your way.<br />
** When a client is first connecting into the lobby, it also uses this, to basically get the host and any other existing players to wait a moment before making more changes, etc.<br />
** On the host, this is already set up to give some context about the exchange under the hood that is happening with the new client.<br />
<br />
=== Multiplayer Transition To LiteNetLib ===<br />
<br />
* Okay then... we are switching network libraries when it comes to our non-Steam/non-GOG transport layer. Instead of FORGE Remastered, we'll be using LiteNetLib.<br />
** FORGE has grown a lot over the years, but the version we were using was from 2018...ish. We looked into updating our version of the code, but were not thrilled with how complicated it was going to be. Since we had working AI War 2 multiplayer on FORGE at least as recently as 2017 (in an alpha state), staying with the existing code made a certain amount of sense.<br />
** However, we started running into really long delays with something as simple as sending 10 bytes to say what our profile name was. This was taking upwards of 14-18 seconds between two machines sitting three inches apart and both within five feet of a powerful wifi router. We verified that the polling was happening hundreds of times per second, and that massive amounts of data was being sent via sockets. But in the internals of the old version of FORGE we have, it was taking it quite a very long time to assemble that into a full message, despite all the churn of hundreds and hundreds of data reads that were apparently all just empty headers and then noise. <br />
** Time for a new approach. It's worth noting that the current version of FORGE still lists all the most internal classes as "in development and lots of dire warnings," so that was another reason for switching up frameworks.<br />
** We chose LiteNetLib at this point, and within 40 minutes of dropping that in, we had the first successful connection between the machines on using this framework for the game. It was just a simple "hello client" message in basic unicode, but it arrived extremely instantly, as expected.<br />
** Next steps are going to be doing some cybernetic implants on LiteNetLib, rather like what we did on FORGE, to make sure that it integrates with AI War 2 properly and our network authority, and that it communicates as directly as possible with our own pre-formatted bitstreams. Most of that should be part of one day of work, at this point. We shall see. Then it's back to the actual larger "build out the multiplayer part of the game" work, but minus the lag that was tripping us up the last day or two.<br />
** It's also worth noting that, with this switch, we had to unfortunately also lose the awesome NAT punchthrough work that Doug Fields did for us with the FORGE interface back in 2018, but LiteNetLib has some of that of its own. And hopefully most people use Steam or GOG if they are behind firewalls of any complexity (since relay servers then become required, and that's where the free relay servers are).<br />
<br />
* NetPeer in LiteNet now inherits from ArcenNetworkClientConnection.<br />
** For now, we are using our own methods to generate the ConnectionIndex, rather than using the existing peer.Id. There may be some numeric conflicts, otherwise, but we can also change this later.<br />
** We also are initializing everything on the Arcen-integration side, keeping our own clientsOfServer list for quick access, and then calling the game-layer RespondToNewConnectionAcceptedByTransportLayer() that will kick things off.<br />
<br />
* PrepareMessageForSending() has become WriteLogOfSend().<br />
<br />
* Added a new SendToSpecificPeer() method onto LiteNet's NetManager. Not sure why that variant didn't seem to exist.<br />
<br />
* Wiring back up our LitNetSocket wrapper class:<br />
** SendMessageToHost_Inner() done.<br />
** SendMessageToAllClientsRegardlessOfConnectionStatus_Inner() done.<br />
** SendMessageToAllClientsWhoAreFullyConnected_Inner() done, using the new SendToSpecificPeer() method.<br />
** SendMessageToSpecificClient_Inner() done, using our own ConnectionIndices for now.<br />
<br />
* Booyah! Exclamatory phrases are not the norm in our patch notes, but this is an exciting moment. LitNetLib is sending messages, and doing so with speed and accuracy and a minimum of fuss. The username travels three inches in well under a second, as should be expected.<br />
** At first, I was getting some very strange data sent across, and I figured that this was going to be an endianness problem, but actually all of the .NET/Mono data is the same endianness from the look of things. Which makes sense, given that otherwise savegames would not work from computer to computer.<br />
** After spending the night with that rattling around in my brain, this morning I decided to definitely do some profiling of the data before I started messing with the #ifdefs.<br />
** First thing I noticed was that I'd chosen to use the RawData byte array, and immediately next thought was "I better check there's not a network header in there." Turns out, yes, there's a UserDataOffset. The first four bytes are not my data, and so of course it would give gibberish as if the endianness was wrong. Just starting my reads from the proper offset makes everything work instantly.<br />
** All of this is from a Mac to a Windows machine at the moment, but my I'll be testing three-way with my linux machine as well. Right now laptop is sitting closed under the Mac.<br />
<br />
* LiteNet logging now gets funneled to our own main logging pipeline.<br />
<br />
=== Continued Multiplayer Work ===<br />
<br />
* A fair bit of work has been done to make intentional disconnections from the client or server tell the other side more quickly.<br />
** This should help to avoid some disconnect-and-reconnect issues that are otherwise inevitable, and it just makes things feel more responsive.<br />
<br />
* Additionally, when you use the in-game controls to exit the program as a while, it now takes one extra half second to lets Steamworks and GOG actually do their exit logic properly, rather than rushing out the door.<br />
** This should hopefully help with any cases of the game still being thought to be running on Steam in particular after it closed.<br />
<br />
* When you exit the game, while it is doing its brief exiting stuff it now throws up a center-screen "exiting.." message.<br />
<br />
* Got rid of OnServer_WaitingOnConnectionIndices, as this was basically a duplicate of something we are doing better and more cleanly a new way, now.<br />
<br />
* UpdateDebugText() and all of its related variables have been removed.<br />
** This was the sort of thing that, in all of our prior games before Raptor and moving to 3D, you could hit F3 and get output information from. But it has never really been used in AI War 2 properly.<br />
<br />
* Got rid of WorldTransmissionMessageType, as it was needlessly complicated.<br />
** This was essentially us breaking the world transmission data into multiple parts and then sending those in parts. Historically there were two reasons for this:<br />
*** Back in AI War 1, we were using the Lidgren network library, and even though it was trying to work around the MTU (typicaly 1200 bytes) of various networks players might be on (or passing data through indirectly), it was often having bottlenecks and slowdowns with how it sent fragmented messages through the network card. Our theory at the time was that it was flooding the buffers of the NIC, rather than giving it data at a more reasonable pace. Network cards have grown enormously in the last 11 years, as have the OSes that control them, so that's not really a concern now. All of the newer network libraries that we would be using to send data should be able to handle 1MB of data without incident.<br />
*** Secondarily, for AI War 1 and for the A Valley Without Wind games, we were sending enough world data that you could see a noticeable wait time, and by handling this above the network transmission layer we could give you visual feedback on transmission progress (even though the whole act of that actually slowed it down). Eleven years later, we have networks that are vastly faster basically everywhere in the world, and the world savegames for AI War 2 are much more efficiently packed than AI War 1 was. So sending a file like this really is like a midsize image on any website you visit, now. Not really a progress bar sort of situation, especially if the progress bar itself causes slowdown.<br />
<br />
* ConnectionStage has moved from being just a UI-only element to being ClientConnectionStage as part of the ArcenNetworkAuthority, so that clients can better keep track of their connection status. Usually this is less than a second or so, anyhow, but we still need to keep track of it in case something goes wrong in particular.<br />
<br />
* The host now properly sends the world data to the client, for the first time in three years or so.<br />
** The client is having some trouble understanding it thus far, so now is a good time to build in error handling (it was just silently failing, until now).<br />
<br />
* Added a new SendLowLevelChatMessage() method on the network authority, which is used mainly for sending back and forth arbitrary messages from clients and the host to explain about the status of things. These can be echoed to all other clients or not, as the case warrants.<br />
<br />
* If the client fails to load a world sent by the host, then the host and any other clients all get sent a low-level chat message about that, the client gets kicked out (since they never made it fully in), and the client gets a nice error message on their screen and in the log.<br />
** This way we can solve whatever the problem is, and nobody is left sitting wondering why things are slow (when in fact they errored).<br />
<br />
* When you are loading a quick start, or loading a savegame as a template into the lobby, it now clears the chat log. This was definitely not information that needed to persist from a prior game to the new lobby!<br />
** These sorts of chat log messages, which are kept over the long term for the game (up to a limit), are no longer shown in the lobby at all.<br />
** Instead, we now are using LocalMomentaryDisplayLog, which is something that doesn't get sent with savegames, and which normally is just "stuff showing on your sidebar during the game for a little while."<br />
*** This is perfect for the lobby, and in the lobby we are just showing the last 100 of these, and not clearing them until you reach the game itself.<br />
*** These things are actually shown by timestamp, not by gamesecond (which isn't ticking yet), so that's just extra perfect for a lot of reasons.<br />
*** This also leads to privacy for people who were talking before someone new joined -- you only see messages that were sent after you were connecting -- although that's not hugely important in most cases.<br />
<br />
* Got rid of ArcenUI.Instance.CurrentNowUTC, since that was putting all of our lobby chat messages in the British time zone. We didn't use this anywhere else, and it was puzzling that we used it at all.<br />
<br />
* NatPunchEnabled is now true on the server and client for LiteNetLib. We'll see how well that works.<br />
<br />
* Added a new debug setting to the network section of the settings menu: Write Network World Serialization Logs<br />
** When sending a game world across the network to a client, write NetworkWorldSerialization.txt, and when getting one from a host write NetworkWorldDeserialization.txt -- both in the PlayerData folder (but on two different computers). The only real reason to turn this on is if a client is unable to join a host and gets an exception; this lets us do a diff of the two files and figure out what is different about what the host is trying to send and the client is trying to read.<br />
** Note these logs are often huge, sometimes hudreads of MB each. Compressing them into a zip or tarball and then uploading them somewhere we can download them to find out what is happening is a good idea. Hopefully as a player you will never need this, but this is basically a way for us to test the network world sync process, which otherwise can be incredibly opaque and take a lot of time to hunt down.<br />
<br />
* Used our new network world logging capabilities to fix an error in network world transfer where it needed to send the game version in a different format.<br />
** The client now looks at the game version very early on, and if it does not match it sends a message back to the host telling the host what the problem was.<br />
** Basically: If the client can't join because of a version mismatch, that gets shown and things happen properly.<br />
<br />
=== Milestone: World Sync Between Host And Client ===<br />
<br />
* Milestone! Initial transmission of the world data from the client to the host now works properly.<br />
<br />
* When a local player account is missing the following methods no longer throw errors:<br />
** SwitchViewToPlanet<br />
** OnClient_SendClientBatchToServer (actually still errors, because it's useful to have it do so).<br />
<br />
* PlayerAccount is now more strongly linked to the new ArcenNetworkClientConnection, and its connected status is now a method called OnServer_GetIsConnected().<br />
** There is some duplication of concepts here, but when you factor in the way that things like viewing of planets are synced in multiplayer, this is a worthwhile separation of concepts.<br />
<br />
* If two players with the same profile name try to connect to a game at the same time, it will now prevent the second one from joining and tell everyone why.<br />
** Bear in mind that these are AI War 2 profile names, not Steam or GOG or what have you. Everyone needs to have a unique AI War 2 profile name in the current game, but they can change up their names however they want and global uniqueness doesn't matter beyond the current game you are in.<br />
<br />
* In situations where a player 3 joins after player 2, and it's the first time player 3 has been in this particular world, player 2 now gets told by the host about player 3.<br />
** And of course all the more complicated permutations of this. It's the new FromServerToClient_SendNewPlayerProfile.<br />
** This is needed specifically so that all clients can know which planets are being viewed by other players, so that which planets are "tier 1" processing is honored and identical everywhere. Among other later needs.<br />
<br />
* Clients connecting to a host are now properly told what playeraccount they have been put in charge of.<br />
** This makes PlayerAccount.Local not null on their local machine, and lets them give orders and whatnot from their spot there.<br />
<br />
* Errors that happen during the main sim step will now be more visible in multiplayer contexts.<br />
<br />
=== Milestone: Initial Sharing Of Lobby Between Host And Client ===<br />
<br />
* Milestone: Clients are now able to load into the lobby, and they and the host both see most (but not all) changes that are made.<br />
** Clients are not yet assigned to any faction (making them just spectator-mode for now), and there are some specific bugs with certain data that isn't synced correctly just yet.<br />
<br />
* Map generation can no longer happen in the lobby except on the host.<br />
** We have no real way to be sure that map generation is deterministic between machines, so we need to do a world sync each time anyway.<br />
<br />
* When the map is regenerated on the host during a multiplayer lobby, it recreates all of the playeraccounts needed for each of the player connections that exist.<br />
<br />
* And when the map is regenerated on the host during a multiplayer lobby, it now re-syncs the entire world data to all of the clients so everyone is up to date.<br />
** This also solves the "authorized through frame number" issue, which was really just a smaller symptom of this larger issue.<br />
<br />
* Both the client and host are now verified able to add, remove, and edit factions and have that properly affect the world.<br />
<br />
* Window_ServerMultiplayerConnectionStatus has been removed, as we no longer use that. We've been using the new center-screen messages instead, or the chat sidebar, as needed.<br />
<br />
* In multiplayer games, the save button is now disabled and says: Cannot Save Game As Client<br />
** If you click it, it gives you this message: Unfortunately, only the host can save games in multiplayer. To save on bandwidth as well as on processing power between your machines, there is a LOT that is calculated only on the host machine. If you were to save a copy of the game on your client's end, loading it would lead to a lot of wrong and missing data.<br />
<br />
* Additionally, autosave is now something that does not happen on multiplayer clients. Just the host.<br />
<br />
* The header of the load quickstart and load saved game menus now make it clear if you are loading for multiplayer or single-player.<br />
** Also on these screens is a new "[Multiplayer Questions?]" bit of text up at the top that appears only on the multiplayer version, and which has some helpful mouseover text.<br />
<br />
* Rather than having an annoying explanatory popup to click through every time you open the various ways of hosting or joining a multiplayer game, it now puts that extra information under the "[Multiplayer Questions?]" section up at the top of those screens.<br />
<br />
* At the top of the lobby screen, it now says if you are joining as a client or a host to a multiplayer lobby, as well as having that same "[Multiplayer Questions?]" bit.<br />
** This includes the following new text in its mouseover text: Except for the host, all players are spectators by default. There is only one human player faction by default. Any number of players can share control of a single faction, or each player can have their own faction that they control on their own. You can mix and match as you like.<br />
<br />
* The connect by IP window has been completely reworked visually so that it matches the rest of the game and doesn't look like the old temporary style that we were using in 2017 (because that's what it was).<br />
** This also lets us put extra information on that screen to help anyone who might be confused.<br />
<br />
* The client connections status window is now patterned as a continuation of the connect by IP window, and it's nice and graceful and in the new style.<br />
<br />
== Version 2.106 Immortals and Unresponsiveness ==<br />
(Released July 23rd, 2020)<br />
<br />
=== Bugfixes ===<br />
<br />
* Put in field names for the risk analyzers saving, so if they have trouble serializing we can see which field it was.<br />
** Also then made it so that the total increase and net increase both are automatically clamped to 0 instead of a negative number so that they won't throw an exception when trying to save.<br />
** Thanks to GreatYng for reporting.<br />
<br />
* When stacks are split, they now have their "time on planet" and "time alive" set to be whatever the original stack was. Same with the amount of cloaking points they have lost, and the number of cloaking points they have left.<br />
** This prevents a variety of abilities from triggering, including the "invincible if only on this planet for x seconds."<br />
** We also made it so that dying to remains does not reset the "time have been alive or on this planet" counter, for similar reasons.<br />
** This keeps the vanguard hydra heads from being insanely impossible to kill, among other issues that are probably pretty much all in the player's favor to have resolved.<br />
** Thanks to crawlers for reporting.<br />
<br />
* Added some extra debugging information for the status of gamecommands that are queued, to see if there are clogs happening. At this point, we can't replicate any evidence of that, though we have some reports from multiple players of it. So maybe the problem either takes a bit to manifest, or is in a different area of the code than we expected.<br />
<br />
* AIP should no longer increase when things die to remains if you have the "ships of X type die to remains instead of dying entirely" galaxy map option on.<br />
** This is untested, but should work.<br />
** Thanks to crawlers for suggesting.<br />
<br />
* Found and fixed the core typo from a few builds back where remains that were being rebuilt were being set to have the cost of the rebuilder, not themselves. This was previously massively overcharging players for building most things, but then once we put on a band-aid to fix that, it started giving it to them for basically free.<br />
** Thanks to Lord Of Nothing for the report and save.<br />
<br />
* Fixed a bug from the last few versions that nobody seemed to notice, where the galaxy map was not centering on planets properly when you first went into the game after loading a savegame. This had to do with when we were calculating the position of the planet, and that not always being calculated before we tried to center on it.<br />
<br />
* Fixed a bug where it was possible that a client would send more commands to the host than it would tell the host about, and thus the host would not know to read the extra ones (or vice-versa). In single-player you are both the host and client, so it still applies.<br />
** This was happening because of multiple threads adding to the queues of commands at the same time that the queue was being drawn down.<br />
** This was actually something that probably could have happened since more or less forever, but it was substantially more likely in the last few versions because of some efficiency improvements we made.<br />
** Additionally, we have now switched to using a ConcurrentQueue for each of those collections, rather than a regular Queue. This should also help with potential contention.<br />
** There was also the possibility that we might not be able to get enough commands out of the list for some reason to then send more, and we are also now guarding against that.<br />
** Previously, this problem was manifesting as orders not being carried out when you gave them, sometimes or all the time. And things like "save my game" and "pause or unpause" not working anymore.<br />
** We were able to duplicate this in one savegame after some time, but no longer can. Given the intermittent nature of this sort of thing, we can't say for sure that it is solved -- but the logic of what was going on makes sense, and the fix we put in should hold that at bay. It's one of those "can't prove a negative" things, at the moment, so fingers crossed it just never shows up again.<br />
** The characteristics that we observed while this happens, if it happens to you and you want to see what you can tell us:<br />
*** In the escape menu, under the memory pooling performance, the number of raw commands were steadily climbing. One or two every few seconds. This should never happen in that way. Increases happen, but not a steady drain flow like that.<br />
*** In the escape menu, further down under the Commands Queued By Type, you may see some null warnings up at the top of that list, now. That wasn't there when we observed it, but it would be if it ever happened now.<br />
** Thanks to zeusalmighty, Puppet Master, Gdrk, and GreatYng for reporting and giving advice on how to reproduce it.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* In our copy of FORGE networking, we've removed some useless extra code that was for the UniversalWindowsPlatform framework, which we won't be ever using.<br />
<br />
* In our copy of FORGE networking, we also got rid of a very useless set of "pending" messages on the UDPClient and UDPServer, which were ostensibly to help with reliable messaging, but in reality was just doing some useless event handling and invocation, and some useless cross-threading locks. It just put the things in the basket and took them back out, never checking the basket or doing anything with it. Thankfully, there is a second basket for reliable UDP inside the UDPPacketComposer, so this was just extra redundancy.<br />
<br />
* Added a new ArcenNetworkClientConnection abstract class, which we now store on ArcenNetworkAuthority in a ClientConnections list.<br />
** These are connections, not yet correlated to specific players. But it lets the network pipe connect up a specific connection with a specific player (or reject that connection if it's not okay).<br />
** Each individual networking framework (ArcenSocket descendent class) is actually responsible for keeping track of these connections and populating them.<br />
** But the actual network authority does the job of authenticating them into a given game and handling the challenge/response work, figuring out a match to a player slot in the game, etc.<br />
** With this in place, we can now get rid of GetNumberOfConnections(), because that's now moved out of the socket and into the network authority.<br />
** This is a substantial refactor, in that it will really make Steamworks and GOG a lot easier for us to work with as networking frameworks, faster.<br />
<br />
* NetworkingPlayer in FORGE now inherits from ArcenNetworkClientConnection, and is the first version of a networking framework using this new pattern.<br />
** On NetworkingPlayer, rather than having a public { get; private set; } for some of the immutable connection things, we now use them as public readonly. This is both more efficient in performance (slightly), but also prevents sync issues between this class and its new underlying abstract class.<br />
** This class gives the information it needs to the base class, and doesn't bother registering the host NetworkingPlayer as an underlying client connection at all, keeping things simple.<br />
<br />
* A bunch of stuff with the FORGE networking logging has been replaced with wrappers around our own logs, so that if there are internal exceptions those don't just go nowhere invisibly anymore.<br />
<br />
* Trimmed out a bunch more old FORGE code that has been commented out for years from the look of things.<br />
<br />
* RespondToNewConnectionAcceptedByTransportLayer() is definitively game code, not part of the actual networking transport layer, and it has been moved into the central codebase and away from any specific networking framework.<br />
** "Hello friend, you've connected: what's your profile name you want to play under?" Etc.<br />
<br />
* A fair bit of the "initial chatter" of clients connecting to a host and the host responding are now logged to the debug log no matter what.<br />
** There really is not that much that is said, and this will certainly help someone at some point who is having some sort of connection issue.<br />
<br />
* When clients are connected to the host, now the host not only shows the number of clients, but also sees their profile names that they have chosen to connect with.<br />
<br />
* A bunch of event-driven stuff on the FORGE networking has been made a bit more inline, improving performance a bit and also reducing certain areas of complexity.<br />
<br />
* The initial challenge-response work, and "what's your name" work, is all functional again. This is stuff that will be identical regardless of the network framework.<br />
** The host can now properly see the profile name of the client, and is poised to send the client back all the world information.<br />
<br />
== Version 2.105 Selection Hotfix ==<br />
(Released July 22nd, 2020)<br />
<br />
* The game still loads various xml files asynchronously, and loads icons and music and sound in that fashion, but it no longer tries to load the ships, shots, or wormholes in that way.<br />
** This was just too unreliable, because of some issues in the unity engine. It didn't affect all players, and not all the time -- but enough that it majorly affected the stability of the game for some folks, and that's too much.<br />
** This also removes the potential for the really long (15-30 second) lag time when you are first opening a new game or the lobby if things didn't load during the loading period.<br />
** Thanks to Ovalcircle for the most recent set of reports.<br />
<br />
* Previously, the game was using a standard List<> object for keeping track of selected ships, and that sometimes ran into inefficiencies and cross-threading issues.<br />
** In the prior build, we tried to fix some of those cross-threading issues, but wound up making things not actually deselect properly.<br />
** To fix all of the above, we've now switched to the much more flexible and robust ArcenLessLinkedList<> object, and adjust the code to handle this. This is both more efficient (not that efficiency is a major problem here), and does not fall victim to the various cross-threading woes that the old style could. <br />
** And, naturally, as part of that, this also resolves the frankly infuriating selection issues in the most recent build of the game. Sorry about that one!<br />
** Thanks to ctl0ve, CRCGamer, Chuito12, and Burner for reporting.<br />
<br />
* Previously, the tech menu only showed techs that would actually benefit a ship you have at present, or which you could capture.<br />
** This was very confusing to a lot of players, as they would not see the entire tech tree and thus think that something was missing or broken.<br />
** In some other cases, possibly due to changes in the recent past, you CAN build something (like a command station), but since you have not done so yet, it would not show up.<br />
** All of the techs now always show up, but the ones that are for ships that would not benefit you right now still show up as red and not researchable.<br />
** Additionally, the tech color shows up as white when it benefits ships you have, gray when it benefits ships that you don't have right now, and lighter gray when it benefits ships that you could capture.<br />
** Please note that since citadel upgrades don't benefit battlestations anymore, the citadel tech not showing from the start was working properly.<br />
** Thanks to Strategic Sage and CRCGamer for reporting the confusion.<br />
<br />
== Version 2.104 Negative Build Percentage Hotfix ==<br />
(Released July 21st, 2020)<br />
<br />
* Somehow or other, it became possible for some self-building ships to go very negative in their build percentage (instead of counting up to 100%, they would be way in the negative percentages of building process). <br />
** This seems to be a new bug in the last day or so, based likely around some changes that we made to improve the cross-thread reliability of the game. The problem is, upon manual code review of the areas that would be relevant, we just can't see anything that looks like a bug.<br />
** Ultimately what is happening is that the SelfBuildMetalRemaining is getting absolutely giant in value, far larger than the original metal cost of the ship that is constructing. This was probably an integer overflow from it going really negative first, and then wrapping back around, but it's hard to be sure.<br />
** We've put in some extra defensive code to make sure that if it goes negative at all, it marks itself as complete. We've also put in protections so that if you "owe more than it is worth" in general, that it will assume that there was an overflow and just go ahead and finish it now. These two changes should help to keep the problem from happening again, and fix the cases where it was already in progress.<br />
** While we were already at it, we put in a small general improvement that prevents you from being overcharged for the last tiny percentage of constructing a ship. If you had a bunch of engineers building, and each frame cycle they normally would do 1.1% of the construction of a ship, and charge you accordingly, then you might wind up in a case where you had only 0.2% remaining work to do, and yet got charged the full 1.1% rate. It is now careful to only charge you for what you would owe, so the 0.2% rate in this example.<br />
** Hopefully there are no other errors in any of the metal flows, with things like drones building, anything engineers would claim or repair, etc. The code looks clean, but then again the code for the self construction also looks clean. In the next couple of days, please let us know if you see anything else that seems amiss with how metal is being charged against you. So far we can't duplicate anything like that anymore, now.<br />
** Thanks to CRCGamer, deso, and Puppet Master for reporting.<br />
<br />
* Some code from yesterday dealing with cross-threading protections let us unfortunately sometimes wind up with runaway DoForSelected loops. This is now fixed, and it has several kinds of self-repair in place to prevent this from happening now.<br />
** Thanks to Gunner for reporting.<br />
<br />
=== Multiplayer Connection Work ===<br />
<br />
* Reworked the NetworkTrafficLog.txt multiplayer output to actually be a lot more informative.<br />
<br />
* GetNumberOfConnectsCurrentlyActive has been replaced with GetNumberOfConnections, which lets the network framework tell us a lot more about the general status of things happening.<br />
** Instead of just a generic number of players that exist, we can see how many are disconnected, how many if any are the host, how many are clients, etc, etc.<br />
<br />
* In the lobby, the host now sees how many connected clients there are, and if there are any disconnected ones, how many disconnected ones there are.<br />
** Previously it just showed one number that included the host and also disconnected clients all wrapped up into one.<br />
** It still isn't detecting disconnects properly in FORGE, but we'll get to that.<br />
<br />
* The host now only bothers sending heartbeat messages if it has at least one non-host client machine connected.<br />
<br />
* Removed some old "desync detected" code that was not fitting with the new plans for multiplayer.<br />
<br />
* Figured out some of why the client was not detecting itself as properly connected, and so was not getting messages from the host at all in the last few builds after the connection.<br />
<br />
* The way that gamecommands are queued and then given out to player simulations for both single-player and multiplayer is now more efficient.<br />
** We're using queues now instead of lists, and this gives us a lower chance of accidentally losing a command, as well (not that we know of that ever happening before).<br />
** This has several performance benefits even for single-player when there are a lot of commands going around.<br />
<br />
* Added a new FromServerToClient_AuthorizeThroughFrameNoCommands in addition to the FromServerToClient_SendNextBatchOfCommandsToExecute, to slightly save on space (1 byte per message) and make the logs clearer.<br />
<br />
* The network log no longer has a time delay built in where it logs only 100 items at a time. It just immediately dumps items to disk.<br />
** Realistically there is only substantial traffic every 100ms or so anyhow, and the delay in logging was incredibly confusing as a programmer working with it.<br />
<br />
* The network polling interval has been updated from 20 times per second to 100 times per second. In practice it will actually be variable, but the polling is extremely lightweight (the part that is on the main thread), and having absolutely minimal delays in getting and sending messages is what will keep things moving smoothly.<br />
<br />
* To make network logging even more efficient and clear, the old ArcenNetworkLogEntry is now ArcenNetworkSendLogEntry, and is now a struct instead of a class. This runs lightning fast and doesn't affect RAM usage.<br />
** We also now are then logging data that is gotten in (which we call TAKE) along with data that is sent (which we call SEND).<br />
** This way we can see the conversation between several machines all interleaved on a single machine's log, and thus figure out why they are saying what they do, and if messages are getting there, etc.<br />
** Surprisingly, the way we were logging things previously really didn't lend itself to that, so it was easy to go down rabbit holes of wrong information (thinking data did not get to a machine when in fact it did).<br />
<br />
* Furthering clarity on the networking side, we're now ignoring loopback messages-to-self on the host in our logs, which previously we were not doing.<br />
** This way we don't get drowned in a sea of stuff that "I'm telling myself in order to be the same as everyone else," and we can just see what is actually passing between machines.<br />
** The loopback stuff has been demonstrably working fine since more or less forever, unless we broke it today, since single-player relies on that.<br />
<br />
* Fun fact, after all these logging changes, we can now actually see how well parts of the networking are already doing.<br />
** As one client connects, the host is able keep talking to itself and/or others without breaking stride, letting the potential connection wait for the challenge and acceptance (not yet reimplemented) before it loops in the new client to the rest.<br />
*** This is a great example of how we can keep people from accidentally messing with the sessions of friends by trying to join during a game, etc. It's the sort of thing that only matters among friends, but it keeps it clean.<br />
** On top of that, we can see now that the reason for the host not noticing when a client disconnects is because it's ignoring the client that has not fully gone through the challenge-response process yet, and so the mystery of how it was "sending messages that failed but didn't flag the client as disconnected" is easily solved (answer: it wasn't sending messages to that particular client yet, because it is smart).<br />
** In general, by improving our logging quite a lot we can see what is actually happening and make sure all of this works properly. The vast majority of this is network-agnostic, which is doubly great. These particular logs will look substantially the same between FORGE and Steam and GOG.<br />
<br />
== Version 2.103 Hotfix ==<br />
(Released July 21st, 2020)<br />
<br />
* Fixed a bug from the prior version where the dark spire serialization fix was making any savegames with dark spire in them -- new or old -- not able to load.<br />
** Thanks to valinor000 and stanazolol69 for reporting.<br />
<br />
== Version 2.102 Digression For Quality ==<br />
(Released July 20th, 2020)<br />
<br />
* Using the "Increase Max Dyson Strength" hack will now also increase the Dyson's general mark level<br />
* Some minor buffs to the Dyson's income, mostly at higher levels<br />
** Thanks to a discussion started by zeusalmighty<br />
<br />
* When picking music (through the debug menu), the hovertext will now give you information on most of the tracks saying the original source<br />
<br />
* Improved the speed of some dictionary lookups by precalculating the ArcenAssetBundlePath CombinedPath.<br />
** This also required us to change their member variables into properties, and in return that meant that the general string fill methods needed to be adjusted to new FillBundle and FillPath methods for xml reading.<br />
** This doesn't affect as much code as it sounds like.<br />
** We also adjusted the various debug logging points to use the combinedpath, which is cleaner and easier to read, but not much faster since that almost never happens.<br />
<br />
* Fixed a bug that could happen with entity order serialization in rare circumstances if threads were fighting over putting items back in or taking them back out.<br />
** Since multiple threads do in fact often use orders, at once, this is one of the few collections prone to that.<br />
<br />
* Fixed a variety of exceptions that could happen based on cross-threading bad luck during the exit of the game either to the OS or to the main menu, all in the metal expenditures code.<br />
<br />
=== Ship Behavior Improvements ===<br />
<br />
* Fix two problems related to shields recovering from being bumped by Astro Trains <br />
** Human Home Forcefield Generators can now recover from being bumped.<br />
*** Thanks to Lord Of Nothing for the bug report<br />
** If a forcefield generator is bumped twice in short order, it will now do a better job of returning to its original location. This isn't perfect, but it's a pretty intense corner case<br />
*** Thanks to Puppet Master for the bug report<br />
<br />
* If there are only non-combatant enemies on a planet, ignore any requirement in the targeting code that particular targets need to be combatants. This prevents ships in FRD from discarding reasonable targets incorrectly. <br />
** Thanks to ParadoxSong for the bug report<br />
<br />
* Actually support Targeting tracing now; you need to set Targeting tracing and the Debug setting that lets you set the PrimaryKey for the unit you want to follow, and you'll get some actual logging. <br />
** Not for the faint of heart; intended only for developers who want to get their hands very dirty.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fix a bug where the 'delete campaign' button wasn't giving the campaign name<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a rare and harmless (but annoying) cross threading exception that could pop up with argument out of range exceptions in RenderShip.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
* Fixed a rare nullref exception that could happen in DoRemovalChecks() on shots, mainly a cross-threading thing.<br />
** Thanks to Lord Of Nothing for reporting.<br />
<br />
* Fixed two possible spots in DoForSelected() where cross-threading issues could sneak in and cause an exception in rare cases.<br />
** Thanks to Lord Of Nothing for reporting.<br />
<br />
* Fixed an issue when loading savegames that have a missing planet naming scheme. It will now default to the default naming scheme if it can't find the one that the world was started with.<br />
** Thanks to Oryutzen for a save that demonstrated this.<br />
<br />
* Fix a bug where the imperial spire wasn't Watching previously explored planets for you.<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fixed an error in TextMeshPro where it would still give us "Unable to use Ellipsis character since it wasn't found in the current Font Asset" invisible errors that would fill up the debug log even if warnings were disabled.<br />
** This was, in very long play, a memory leak as well as a performance drain, and it was generally invisible.<br />
** The ellipsis character was typically something it was trying to find specifically for purposes of showing cut-off text, and some fonts just don't have that in them. So no wonder we couldn't actually find the ellipsis character used in our own text files.<br />
** Thanks to Puppet Master for providing the log file demonstrating all this.<br />
<br />
* Fixed an issue where the stationsRemainingBeforeDepot on astro trains could go arbitrarily negative, thus causing an error on save. It now stops at 0, and thus seems not to cause the issue anymore. But on the change that an astro train does have a data exception during save anymore, it will now log what field is having the problem and we can fix it.<br />
** Thanks to Lord Of Nothing for the report and save.<br />
<br />
* The game has been updated so that the debug logging that is DoNotShow now ONLY goes to the ArcenDebugLog.txt, and not to the unity Player.log. The unity Player.log is kept in memory in a very unfortunate fashion, and in long gameplay this will be extra RAM used that should not be. Probably also extra slowness.<br />
** We added a new DoNotShowButSendToUnityLogEvenOutsideEditor Verbosity option that lets us have the old behavior of going to both of those logs, but we are not using that anywhere at the present time.<br />
** All of this is going to make it even more important that we have both kinds of logs from players if they have an outright game crash, now. But generally speaking, if it's an exception popup but not an outright crash, the ArcenDebugLog.txt has always been enough and will continue to be. It's only when the game crashes all the way to the desktop that we need the Player.log, typically, and now we'll just still need the ArcenDebugLog.txt in addition to that. However, any ShowAsInfo or ShowAsError logs to the main ArcenDebugLog will still appear in the Player.log, so potentially even that won't be true.<br />
** For a developer using the unity editor, it still logs everything to the actual unity log because that's for short testing cases and super useful to see output in realtime.<br />
** At any rate, we are trying to strike a balance between getting the logs we need, easily on the part of players, but without having any accidental extra usage of memory on very long play sessions.<br />
<br />
* All of the dark spire per-unit data is now saved in a format where we can tell which field is having trouble if one does.<br />
** The dark spire data "lastTimeAttemptedLocus" was trying to save as an int16 and would overflow any time a game saved that was more than about 32000 seconds in. Fixed.<br />
** Thanks to RockyBst for reporting.<br />
<br />
==== Memory Leak Fix From 2.099 ====<br />
<br />
* New setting on the debug menu: Show Pool Counts In Escape Menu<br />
** Used for searching for memory leaks, particularly between loads of a savegame. If pool counts keep rising after each load, then something isn't getting put back in the pool properly and is instead persisting lost in memory.<br />
<br />
* ArcenGameObjectResourcePools must all now have a unique name, and they register themselves in a central place that identifies how many of them there are.<br />
** These pools also now keep track of how many objects they have ever produced from themselves, so that if we are leaking objects from them we can tell. And we can tell if we are leaking pools themselves.<br />
** After seeing all of these in the new debug menu option above, we can clearly see that none of these are leaking and they are all behaving just wonderfully. Hmm. But we have a leak somewhere, so let's expand this...<br />
<br />
* Created a new CountedPoolBase abstract class that sits under the ArcenGameObjectResourcePool, and takes its counting capabilities and puts them there so that we can also use them for some other pool types.<br />
** This is also now used on a new "Shot Instance Renderer Pool Of Pools" so that we can tell if we are leaking there. And now ships and squads, too.<br />
** Also this is now used on LoosePool, which is the underlying basis for ship, shot, and squad visualizers (different from instanced renderers) now.<br />
** Despite all this, no memory leak was found in any of these pools. They are all working wonderfully efficiently.<br />
<br />
* ExternalizedPool now inherits from CountedPoolBase.<br />
** Same for TimeBasedPoolBase (and thus TimeBasedPool itself).<br />
** And same for BasicPool.<br />
** And holy cow, there's some sort of memory leak with the time-based pools, looks like, based on this. That makes sense, as we recently reworked some of their functionality to fix a bug with them. Apparently we introduced a new bug at the same time.<br />
<br />
* Added a new setting to the debug menu: Show Details Of Time-Based Pools In Escape Menu<br />
** Used for searching for memory leaks or other bad behavior on a certain very high-turnover series of pooled objects. If pool counts keep rising, or other numbers seem off, then we know we have a memory leak or a performance problem.<br />
** Thanks to Puppet Master, RockyBst, Lord Of Nothing, and NRSirLimbo for reports that led to us finding this.<br />
<br />
* Fixed a MAJOR bug from version 2.099 that was leading to a memory leak in general, and performance problems as well (the longer you played the slower it would get).<br />
** Our entire "time based pool" logic was not actually properly processing because we forgot a single line of code, go figure.<br />
<br />
==== Slow Load Or CTD Fix ====<br />
<br />
* Since we started using the asynchronous loading of asset bundle items using unity (the last few weeks), there have been some intermittent problems with certain random items not loading in properly. This is some sort of funky bug in Unity, we're pretty positive.<br />
** We solved that problem a week or so ago by checking the async request's asset property, and if it was not invalid, forcing it to finish loading even though it was stuck.<br />
** On most machines, this was causing a really annoying lag of 10-25 seconds while Unity did whatever it was doing to finish that load. That was really annoying, but only happened the first time you loaded a savegame or quickstart or custom lobby after starting the program, and not every run of the program, and not on all machines.<br />
** More recently, we discovered that the very act of checking the async request's asset property would cause an unrecoverable error deep in unity and an immediate crash to the desktop.<br />
** Killing two birds with one stone, we're no longer checking the async request asset property at all -- thus avoiding the crash -- and instead just do a normal synchronous load when we detect a failed load. This leaves the one async request in limbo kind of forever, but that shouldn't be a problem; if it ever decides to complete, it will see that it was already completed and just do nothing.<br />
** In the meantime, not only should this avoid the crash, but it should also avoid that awful lag spike that happened for those for whom it didn't crash.<br />
** The downside is that on our dev computers we haven't been able to replicate the error at all today, so we can't verify that this 100% works. It should work, and you should see in the arcen debugging log slightly differently that says "PrototypeObject failed async load and so loaded synchronously for [some stuff] (this is not a problem, but is odd)"<br />
*** If you're one of the people who were frequently seeing either the crash, or seeing the older "PrototypeObject fixed and loaded late for [some stuff] (this is not a problem, but is odd)" message, then we'd love to have a confirmation of you seeing the new message and all being well.<br />
** Thanks to Sol and RocketAssistedPuffin for reporting.<br />
<br />
== Version 2.101 Connection Status: Confirmed ==<br />
(Released July 17th, 2020)<br />
<br />
* Carriage returns and newlines are now supported by the "condensed" string format. This will prevent tutorial messages from turning those characters into question marks when they are dumped to the chat log. Note that this will only affect chat log messages logged in this version and on, not past versions.<br />
** Thanks to ParadoxSong for reporting.<br />
<br />
* The left and right click functions of the metal display have been switched to be more natural.<br />
** Thanks to Waladil and Galian Gadris for suggesting.<br />
<br />
* The "Spire Railgun Shop" mod that comes packaged with the game has been updated to use the icons from their new locations, and will no longer error.<br />
<br />
* We've reworked our "Window_PopupScrollingColumnButtonList" a bit to add some new handy features for us.<br />
** In the factions selection window, when you are adding new factions, it now still lets you see factions that you can't add because there is only one per galaxy, but now it shows them in red, doesn't allow you to select them, and explains why in the tooltip.<br />
** In the debug menu in the escape menu in the main game, the change music submenu now shows the current selection in red (with the note that you can't change to it because it is already playing), and it shows all of the options sorted alphabetically except for the current track, which it shows as the first item.<br />
*** Also fixed a bug where the music you selected to play would not actually be the track that played; it was choosing a random other track.<br />
<br />
=== Scourge Updates ===<br />
<br />
* The hovertext for the Scourge "Strength" in the game lobby now tells you what the strength does (more scourge ships/structures, and faster).<br />
<br />
* Add a "Sandbox: Extra Strong Mode" for the scourge<br />
** This is not balanced for regular play, but is intended as a sandbox thing.<br />
** Thanks to Avenger1649 for suggesting<br />
<br />
* Fix a bug where the scourge were periodically suiciding Defensive Fireteams into player positions.<br />
** Thanks to ParadoxSong for the save.<br />
<br />
* On intensities >= 5, the scourge can create cloaked "blockade running builders" if the player has tried to blockade the scourge into a small region of the galaxy<br />
** Thanks to ParadoxSong for the suggestion<br />
<br />
* On intensities >= 6, the scourge is intended to sneak a builder off to another part of the galaxy at the beginning of the game, to make it much harder for the player to blockade them in. This was not working on some map types, including the X type.<br />
** Thanks to ParadoxSong for the save that exposed this problem.<br />
<br />
* These changes should make the scourge much harder to deal with in general, and on the X map type in particular.<br />
<br />
=== Initial Multiplayer Connection ===<br />
<br />
* AllowOtherPlayersToConnect was a setting on the World object in the past, and thus something that was getting saved into savegames and that dictated how a lot of things worked for player connections.<br />
** We've removed this concept, and instead are making it based on the menu choices you make on the main menu.<br />
** We now have a DesiredMultiplayerStatus on ArcenNetworkAuthority, which lets us recall if you wanted to be the client, a host, or just left alone in single player.<br />
<br />
* The basic shells of SteamSocket and GOGSocket have been added to the game. The in no way function yet, but this will allow for them to be built out in the future.<br />
<br />
* The SpecialNetworkType has been moved into ArcenUniversal, and is now copied onto ArcenSocket along with the InternalName of the row that created the socket.<br />
** There is now a list of AllPossibleSockets on the ArcenNetworkAuthority to allow it to swap between sockets as needed, and particularly by type.<br />
<br />
* When you open the multiplayer menu, if you have that enabled, it will now set a default network framework for you based on the status of your game at that time.<br />
** If you are logged into Steamworks, it will set steam as the default network.<br />
** If that didn't work or wasn't true, and you are logged into GOG Galaxy, it will use that as the default network.<br />
** If none of those worked, then it will pick the first "other" network type, which in this case would be Forged.<br />
<br />
* All of the options in the multiplayer menu for hosting a savegame, quickstart, or custom game now properly do those things identically to as if it was the single-player menu, but put you into host mode first.<br />
** The single-player menu puts you into single-player mode, and makes sure that your ArcenSocket is set to NullSocket.<br />
<br />
* When you try to go into one of the client or host multiplayer areas from the multiplayer menu, it now properly activates your most recent chosen network framework, or switches to the first available one that actually can function right now on your system and gives you explanations for why it did that.<br />
** Essentially there is a fair bit of under the hood plumbing now for the frameworks to register themselves with the network authority class and explain about their availability.<br />
<br />
* If you are looking to connect to another machine, then the "connect as client" tooltip now gives you information about what to expect based on your currently-selected framework.<br />
** Are we connecting by IP? How much of a hassle will that be? Is it going to be by selecting a friend on Steam or GOG? Etc.<br />
<br />
* For IP-address-based networking frameworks, either starting a host mode or client mode event now pops up with a message explaining what information you need to give to the client players or get from the host.<br />
** This is not really the preferred networking method unless you're having a LAN party, and the game makes that clear, but it also goes out of its way to address the most likely areas of potential confusion for people who are using these frameworks.<br />
<br />
* Fixed a few bugs, and added a bit more debug logging clarity, so that the host can once again properly open a socket and wait for connection.<br />
** This was working up until a week or so ago, and was simply messed up a bit when we reworked things to support multiple networking frameworks. There were lots of lonely hosts never getting any client requests ever since the game has been in public beta.<br />
<br />
* When you quit out of the multiplayer lobby back to the main menu, it now immediately disconnects you as a host or client, to avoid confusion of lingering connections.<br />
<br />
* When you are in the lobby in multiplayer, the chat sidebar/log now appears again. At the top it says if you are hosting multiplayer or a multiplayer client.<br />
<br />
==== Choosing A Networking Framework ====<br />
<br />
* The main menu has been updated so that the "network" button at the top of the multiplayer menu now updates its text to show the current network.<br />
<br />
* The network button at the top of the multiplayer menu on the main menu is now fully functional. It shows available network frameworks, and gives you explanations for each one, as well as showing unavailable ones in red with an explanation for why they are not available right now. It lets you select from available ones, which then get set as your current socket when you try to host or join a multiplayer game.<br />
<br />
==== What Is My IP Address If I Need It? ====<br />
<br />
* In the networking section of the settings menu, it now has helpful informational displays of your local IP addresses and your public IP address.<br />
** To get your public IP address, we have to make a public call to the url http://checkip.dyndns.org, so this may flag your software firewall to ask permission when you go to the networking tab now.<br />
** Our goal is of course for you to not have to use your direct IP addresses at all in this game, but if you're playing on a LAN then that would be one great example of when you'd want to use this.<br />
** At any rate, each IP address is stored in a textbox that you can copy-paste from, which is very handy when sharing with friends.<br />
** There are also lengthy explanations about what the public IP address is for, and under what circumstances to use it, as well as the local IP addresses, plus special notes for any IPV6 addresses that it detects.<br />
** Getting this data is time-consuming for your computer, so you will notice micro-lags every few seconds while you are on the networking tab, now. This is normal and should not impair your use of the functionality.<br />
<br />
==== Milestone: Successfully Connecting A Client To Host ====<br />
<br />
* The old interface for network connections by IP address is restored and works again. We'll have a different one for connecting via friends list on Steam and GOG, later, but this is the one that gets used for Forge and any other IP-based network frameworks.<br />
<br />
* Connections are now able to be established from one computer to another, for the first time since 2018!<br />
** We added the ability to see how many clients there are connected to a host in the lobby (including the host), so you can see the connection tick up.<br />
** Next up is them actually exchanging enough information to get the client into the lobby and have them see shared world info and be able to chat and all that. But this is milestone one!<br />
<br />
== Version 2.099 Last Rabbit Holes ==<br />
(Released July 15th, 2020)<br />
<br />
* There is now a galaxy setting to grant players Watch vision for 1, 2 or 3 hops from all command stations.<br />
** Thanks to uhamster9 for inspiring this addition.<br />
<br />
=== Fixes And Tweaks ===<br />
<br />
* Improved the way that time-based pools are incremented in time, so that we're never having accidental cases where we miss one.<br />
** Also made it so that they actually work as intended when the world is being cleared (running 16 seconds' worth of time at once). This then keeps the pools smaller if you repeatedly load savegames.<br />
<br />
* On the escape menu, under where it shows you the various numbers of objects in memory, it now shows you the number of galaxy planets and planet links activated and in existence.<br />
** This lets us tell when these have a memory leak, if there ever is one with them.<br />
<br />
* Additionally, galaxy map links are now pooled for the first time ever, as the discarding of them was previously a definite memory leak. Normally this just happened between saves and loads, but it was also possible to happen when nomad planets moved.<br />
<br />
* In addition to the existing time based pools, we now have a new ExternalizedPool.<br />
** This is now used for the galaxy map links, and actually we have stopped the galaxy map planets themselves from using the super-old IArcenGameObjectResourcePoolable and they also now use this.<br />
<br />
* The way that planets for the galaxy map are initialized, and the way that their positions are set, is completely overhauled.<br />
** This is more efficient and properly uses pooling (which never was working properly before, it turns out).<br />
** It also makes the position of planets automatically react to them having moved in the game sim, without having to do anything special.<br />
<br />
* The arcencolors asset bundle has been removed, with its contents simply rolled into arcenui. Ultimately this is a bit faster to load, and saves a bit of disk space and RAM also.<br />
** Also removed the aiw2squads bundle, and the examples bundle.<br />
*** The examples bundle simply has its example content still there, but not in a bundle (it's to help aspiring models modders).<br />
*** The squads bundle is old data that we've not used in forever, and so has just been cleared out. It wasn't huge, but wasn't worth being there.<br />
<br />
* Starting to load a savegame (including for a quickstart or the last settings for a lobby) now writes to the log when you start the process, and at the end of the process writes how long it took.<br />
<br />
* Added a new debug setting: "Write Detailed Savegame Timings"<br />
** When loading a savegame, including the 'last settings' for the lobby or the basis for a quick start, keep track of detailed timing data and write that into the normal debug log so that it's clear what is taking longer and shorter amounts of time.<br />
<br />
* It turns out that chasing "why savegames now take 16 seconds to load sometimes" was a snipe hunt. The serialization sizes logging, when enabled, actually was causing that amount of slowness. With that off, it loads in about 2 seconds.<br />
** The extra instrumentation that we added for the savegame timings is still nice, but ultimately was not a useful bit of time spent at the current moment.<br />
<br />
* Fixed an issue that could happen in the lobby in particular where it could not properly save your prior settings because the fleet ID or speed group ID was lass than zero.<br />
** This pretty much could only happen if you already had another error first.<br />
<br />
* Fixed an exception in SeedNormalEntities that could happen if you rapidly tried to regenerate maps in the lobby in just the wrong way.<br />
<br />
=== Under The Hood Improvements For Icon Modding And RAM Usage ===<br />
<br />
* The last of the icons from the ExternalIcons folder have been moved into the unity project that generates the asset bundles, simply to dispel any potential confusion about the fact that they can be edited directly and that have some change on the game without recompiling asset bundles. This was a frequent modder confusion.<br />
** That said, the ones that were in the Official_1 folder are now in a CentralIconBits, and can now be used in the UI for the first time if we ever want to. That means things like health bars and whatnot could in theory be used in the ui if someone wanted to, whereas before they could only be used on gamespace-level icons.<br />
<br />
* Cleaned out a variety of unused icons from the arcenui asset bundle, and in general tidied up some of our organization of working files versus final files.<br />
** Also standardized the naming of certain things.<br />
<br />
* Broke the "official icon dictionary" out into six dictionaries:<br />
** One is for the "central bits" like health bars and so on, and would be the same for all ships.<br />
** Two are for the overlays, like for saying what kind of starship or guard post something is. There can be more than one of these, and the fact that these are split out like this demonstrate the modding capabilities and how things can combine.<br />
** Three are for ship icons and their borders, and there can be more of these modded in as well. As with the overlays, not only does this demonstrate how such mods would work, but it also has the side benefit of slightly less VRAM usage in a few cases.<br />
<br />
* The way that GUI icons are discovered from the xml based on their gamespace-icon counterparts is completely revised, and is now based on extra information in the ExternalIconDictionary entries.<br />
** This is a lot more flexible, and allows us to load icons from multiple asset bundles and/or multiple files within the same bundle.<br />
<br />
* The naming for finding icons is now much more complicated, in the sense that they don't all come from a single dictionary called "Official."<br />
** So there were over 1100 places in the base game and expansions where we've had to modify to point to the new dictionaries. Any mods would also need to be updated to point to the new places, unless they want to start using their own icons (once we put together a tutorial for that).<br />
<br />
* The external sprite dictionaries have been updated to be able to properly load in in multiple threads.<br />
<br />
* The game is now able to load the xml files for external icons from any mod or expansion, in:<br />
** Expansions/[ExpansionName]/GameData/ExternalIcons/[thefile].xml<br />
** XMLMods/[ModName]/ExternalIcons/[thefile].xml<br />
** XMLMods_NonDistributed/[ModName]/ExternalIcons/[thefile].xml<br />
** It's worth noting that these are xml files that are generated by Texture Packer, not xml that we create.<br />
** These files are referred to in the "ExternalIconDictionaries" xml as something along the lines of xml_path="Official_CentralIconBits.xml"<br />
*** It will then search the main game's folder (/GameData/ExternalIcons/[thefile].xml), then all the expansion folders, then any activated mod folders for a file with that name that was specified.<br />
** This allows for mods to be self-contained when it comes to their icons, and it allows expansions to have their own icons that are not packaged with the main game (not that we have imminent plans to do that).<br />
<br />
* On the icons used in the game, we previously were not using any compression, which made them absolutely massive in size (80mb for the main dictionary).<br />
** This was done in order to preserve quality, but we're also using GIANT icons in order to allow for really super-high-res displays of the future, as well as square ones to allow for ideal mipmaps, etc. So the lack of compression was hugely overkill.<br />
** We're now using compressed textures, which turns what was 80mb into more like 8mb. This has a very direct impact on performance and VRAM usage, so particularly on low-spec machines they will likely run far better.<br />
<br />
* The game now automatically constructs custom "gimbal materials" for the in-gamespace icons, in as many combinations as are needed for the things that it has drawn for you so far.<br />
** The total number of materials always in the past was "one," but it was using a single large dictionary and a lot more VRAM -- and it had a finite amount of space for things. There was a solid chance we were going to run out of space in that one dictionary as part of implementing DLC2. But either way, mods were not possible. The new number right now is 8, looks like.<br />
** Now it may make a handful of materials, depending on how many mods you have installed that have custom icons, and several for the core game and expansions itself. But these are vastly smaller, and while this does increase the number of "draw calls," each material is still mostly instanced together (there are a few mesh differences depending on if there are health bars shown or whatever), but the overall load on the GPU pipeline is lower.<br />
** All of this is automatically handled by the game in as efficient a pattern as possible, and if you're curious how many combination materials it has created, you can see that in the escape menu at the bottom of the list of memory pooling info.<br />
<br />
* A new debug setting, "Log Gimbal Icon Material Creation", has been added:<br />
** When this is on, any 'gimbal icon' material creation events will be logged as to what was created and how long it took to do so.<br />
** Turns out that this uses an immeasurably small amount of time for each material (less than 1ms each), so that's awesome.<br />
<br />
=== Under The Hood Improvements For Mods With Code ===<br />
<br />
* The game is now able to load dlls from mods or expansions, rather than just from the central game folder.<br />
** This works just like the external icon files, and basically looks for the dll in the central game folder first (/GameData/ModdableLogicDLLs/[thefile].dll), and then looks at expansions and then installed mods if it can't find them.<br />
** The paths are:<br />
*** Expansions/[ExpansionName]/GameData/ModdableLogicDLLs/[thefile].dll<br />
** XMLMods/[ModName]/ModdableLogicDLLs/[thefile].dll<br />
** XMLMods_NonDistributed/[ModName]/ModdableLogicDLLs/[thefile].dll<br />
** We really don't have a need to do this with expansions, but the flexibility is nice.<br />
** With mods that are more than just xml, however, this finally lets a modder distribute just a single folder that has everything in it, and not have to worry about putting some things in central game folders.<br />
** This is only partially tested, but should work.<br />
<br />
* It's worth pointing out that expansions and mods already did (and still do) have the capability to load asset bundles (icons, music, sound effects, models, textures, shaders, etc) from their folders.<br />
** The structure for those is /GlobalBundles/ in the main folder for anything not platform-specific, /AssetBundles_Linux/, /AssetBundles_OSX/, or /AssetBundles_Win/ for the things that are.<br />
** Inside the folders for expansions it is: Expansions/[ExpansionName]/[OneOfTheAboveFolders]/<br />
** Inside the folders for mods it is: XMLMods/[ModName]/[OneOfTheAboveFolders]/ or XMLMods_NonDistributed/[ModName]/[OneOfTheAboveFolders]/<br />
** None of this is new, but it's worth mentioning for now.<br />
** This is only partially tested, but should work.<br />
<br />
=== Larger Gamespace Icons And Fixed Galaxy Map Line Offsets ===<br />
<br />
* We also now have a non-billboarding version of our shader for purposes of our icons on the galaxy map.<br />
** Our core shader does on-GPU (read: hyper efficient) billboarding to always fully face the camera. This is very useful in the main view where you are moving around the camera a lot but always want the icons to face you.<br />
** The downside, however, is that with a largely-straight-overhead camera like the galaxy map uses, this billboarding would cause there to be a perspective shift where the icons for planets would get offset from the lines leading between planets no matter what we did. It also caused them to move relative to the text that was next to them.<br />
*** This offsetting of the lines to the planets was one of the largest "visual papercut" issues that we've had for a really long time, and it is finally fixed!<br />
<br />
* The ship icon scale has been adjusted from a default of 1.5 to 2.2, and will affect all prior settings files.<br />
** It's description has also been updated for the personal settings tooltip: For the icons in the main display area (not the sidebar), how large should they draw? Default is 2.2. If you go too large, it can be hard to see things because they overlap too much. If you go too small, they can get extremely blurry because of flipping to a lower mipmap. The larger your screen DPI, the smaller you can go without losing clarity.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Building Multiplayer]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Paradigm_Shift&diff=40486AI War 2:The Paradigm Shift2020-09-22T21:18:12Z<p>Keith.lamothe: /* Version 2.509 */</p>
<hr />
<div>== Known Issues ==<br />
<br />
* Any bugs or requests should go to our [https://bugtracker.arcengames.com/ mantis bugtracker]<br />
** 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.<br />
** 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:<br />
*** Windows: C:\Users\username\AppData\LocalLow\Arcen Games, LLC\AIWar2\Player.log<br />
*** macOS: ~/Library/Logs/Arcen Games, LLC/AIWar2/Player.log<br />
*** Linux: ~/.config/unity3d/Arcen Games, LLC/AIWar2/Player.log<br />
<br />
* '''Multiplayer is in public alpha, as noted below.''' There is a [[:Category:AI War 2: All About Multiplayer|detailed multiplayer guide]] that we are working on building up.<br />
<br />
* Feel free to [https://discord.com/channels/240637654717300736/242012213580136448 join discussions on discord]!<br />
<br />
== What Does Multiplayer Alpha Mean? ==<br />
<br />
[[:Category:AI War 2: All About Multiplayer#Initial Caveats And Related Resources|Please see this link for details on multiplayer.]] This wound up taking up too much space in this document, so all of the multiplayer-relevant bits have been moved to the other page.<br />
<br />
== What's this phase all about? ==<br />
<br />
We've been preparing for this for months, tightening up the codebase and getting everything ready as much as possible. Now it's time to start having machines actually talk to one another, and then refine from there. At this point, LiteNetLib, Steam, and GOG Galaxy are all fully working as communication frameworks, and the game is in an alpha state (as of September 9th) where not all of the functionality is there, but the game can be played together. <br />
<br />
It's important to remember what an alpha is! There are glitches and inefficiencies, and we'd like to know more about those. There are also glaringly missing features. Beta means feature-complete but not bug-free, and we're not there yet. Please don't assume that we will implement some feature you want, like the ability to share X between players. If you're testing the alpha and want something, please do drop us a message and ask for it, just in case.<br />
<br />
We expect to be into beta of multiplayer in late September. Hopefully the alpha and beta periods are both short due to all the work of the last phase, but we shall see how it shakes out.<br />
<br />
Once we get into a stable beta period for multiplayer, then we'll let the clock run a bit and Chris will work on adding interplanetary weapons to the base game as a free update (that's the last of the kickstarter stretch goals). This phase should wrap up all our kickstarter promises (including a laundry list of other smaller items).<br />
<br />
Badger has already done the bulk of his work for the second expansion, Zenith Onslaught. Chris has done none of his work for that, as yet. Once multiplayer is in the "let it exist in beta and have people bang on it" phase, then Chris can circle in and get his work done for DLC2 along with those base game bits for interplanetary weapons, etc. The full version of multiplayer should launch alongside of DLC2, but we're not sure exactly when. October?<br />
<br />
Either way, multiplayer will be in a solid state that is "beta but just because we want more time with more people testing it" for a month or so while the DLC2 work from Chris's end happens. None of the actual multiplayer stuff is delayed in any fashion for DLC2, it's been the other way around.<br />
<br />
== Version 2.509 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Fixed missing descriptions for the Damage modifiers of TargetHullPercentageMissing, MyHullPercentageMissing, TargetShieldPercentageMissing and MyShieldPercentageMissing if not used in combination with the MultiplesOf comparison type.<br />
* Instead this was displaying Unknown DamageModifierBasedOn.TheModifierName twice in the tooltip.<br />
** Thanks to NR SirLimbo for fixing.<br />
<br />
* Fix a problem introduced recently by my hunter fleet performance improvements that was causing the Hunter Fleet to just sit around<br />
** Thanks to a number of people for pointing this out, including ArnaudB, CRCGamer and Minotaar<br />
<br />
* Tweak the journal messages about exogalactic war front units<br />
** Thanks to Ovalcircle for reporting<br />
<br />
* Fix a very longstanding bug with fireteam histories, where they would report the planets they were lurking on incorrectly<br />
** This won't apply to previously existing histories, just new histories<br />
** Thanks to a save game from Minotaar for making this really obvious to me<br />
<br />
* Make it harder for players to trigger exogalactic war units without allied factions<br />
** Several people have had thoughts about this<br />
<br />
* Some buffs to the stronger astro train variants<br />
** Thanks to crawlers for requesting<br />
<br />
* Tweak the stacking/splitting code to make it harder for ships to decide to stack and split themselves over and over<br />
** Reported by Gott365 and TechSY730 for reporting<br />
<br />
* Fixed some issues with the new-ish melee unit behavior of flying out to attack nearby enemies when otherwise idle:<br />
** Fixed a bug where a melee unit would go back to its prior location after a direct order from the player (like a normal move order).<br />
** Fixed a bug where a melee unit's memory of where to go back to after no targets were in range would persist across wormhole jumps (causing it to try to go to that location on the new planet, which doesn't make sense).<br />
** Fixed a bug where melee units wouldn't use their implicit attack-move behavior if their internal behavior flag had been changed away from default and then back. So new melee units would use the behavior, but ones that had been around for a while often would not.<br />
** Thanks to OzoneGrif for reports revealing these.<br />
<br />
=== Data Dump Improvements ===<br />
<br />
* Fixed a couple of problems that were leading "cmd:dump data tables" to actually crash the game rather than exporting things nicely. Sometimes the crashes were only intermittent, which was doubly "fun."<br />
** This obviously made this far less useful in terms of actually debugging anything!<br />
<br />
* In general with our data dumps, we've been using ObjectDumper in a customized fashion. But now that we're moving to use it in more places, we're customizing it even further and making it more efficient.<br />
** For the largest export, the GameEntityType, this makes the data go from 35.8MB down to 29.2MB<br />
** More importantly, it makes the data a lot more legible.<br />
** For all of the various lists and dictionaries and other collections, this also now gives us counts of how many items are in each one, which it did not do before.<br />
<br />
* Fixed a variety of other things that would be different in those exports on different machines, or at different runtimes, that thus would have been in the way of our log comparisons.<br />
<br />
* In our exports, a variety of cases of contents that would just have empty brackets now do not export the useless empty brackets. A good example is ArcenPoint, which was saying its coordinates and then four lines of empty brackets.<br />
** Additionally, a bunch of default values that would be "None" or "-1", or collections that are empty no longer export at all. This is consistent with things already not exporting that were 0 or false or an empty string.<br />
** This gets our GameEntityType down to 24.8MB, and even easier to read.<br />
<br />
== Version 2.508 Waverider ==<br />
(Released September 19th, 2020)<br />
<br />
* Fixed a couple of places in the metal flows tooltip where it was stating the left and right mouse buttons backwards. (There were three places in all, and we had only changed one of them).<br />
** Thanks to Daniexpert for reporting.<br />
<br />
* Fixed a rare exception that could happen inside GetControllingOrInfluencingFaction() when exiting the game either to the OS or to the main menu.<br />
<br />
* Fix a bug where waves were not spawning any units. This affected regular waves and hacking responses.<br />
** Thanks to weapon master, CRCGamer, DaniExpert, ArnaudB, Gott365 and probably others for reporting<br />
<br />
* The Zenith Trader no longer sells AIP-increasing black hole machines to the player<br />
** Thanks to TechSY730 for reporting<br />
<br />
* The Zenith Trader will no longer sell things to dead AI factions<br />
** Thanks to GreatYng for reporting<br />
<br />
* Really fix that Macrophage null reference in LRP bug that's been annoying badger<br />
<br />
* Some performance improvements for fireteams in general (and some extra improvements for hunters) in late game scenarios<br />
** Thanks to a giant save from crawlers for letting me see what was going on<br />
<br />
* When you see the name of a song in the Escape Menu, it should now be formatted in a more readable way. For example, it now shows "Waking To Darkness" instead of "WakingToDarkness"<br />
<br />
* Improve the text of several "You can't hack this because of...." messages<br />
** Thanks to GreatYng for reporting<br />
<br />
* The experimental "Astro trains get stronger after you kill some of them" code is now enabled for everyone, and the setting is removed<br />
** I've heard reports that it works okay<br />
<br />
* Allow the HRF to flush enemies from command stations and guard posts<br />
** Thanks to GreatYng for requesting<br />
<br />
* The "This faction has no allies, not even itself" message is cleared up; this was being triggered by dead AIs, usually after the civil war started<br />
** Thanks to a number of people for reporting<br />
<br />
=== Dark Spire Tweaks ===<br />
<br />
* Fix a bug that was preventing the Dark Spire from being suitably aggressive in late game situations<br />
** Thanks to crawlers and Gott365 for the bug reports<br />
<br />
* Other factions will now actively go after Dark Spire Conquest mode VGs<br />
** This should give some counterplay against the Dark Spire<br />
<br />
* To compensate for the fact that Conquest Mode VGs will be targeted more, they are also tankier<br />
<br />
* In conquest mode, the Dark Spire will get a bit more energy<br />
<br />
== Version 2.507 Bugfixes ==<br />
(Released September 16th, 2020)<br />
<br />
* Fix a bug where player-allied nanocausts that aren't allowed to kill command stations weren't properly expanding. Add a journal entry to point out to the player that this leaves their allied nanocaust vulnerable<br />
** Pointed out to me on discord<br />
<br />
* Fix a bug where the render vengeance generator hack wasn't completing<br />
** Thanks to a number of people for reporting, including jradishurr, Magiik and Gott365<br />
<br />
* Fixed several cases where cross-threading issues could lead to some issues in the selected-ships counter.<br />
** Thanks to MasterGeese and GreatYng for reporting.<br />
<br />
* Fixed several cross-threading bugs that could happen in GetIsWithinRangeOf() or GetIsWithinRangeOf_VeryBasicCheckOnly().<br />
** Thanks to GreatYng for reporting.<br />
<br />
* Fixed a bug introduced in the prior build that made it impossible to save most games that had outguard in them (all of them...?), and probably was messing with initial multiplayer sync, too. This was not seeming to affect every last save, but nonetheless was not good.<br />
** Thanks to Badger for reporting.<br />
<br />
* The "long range planning" code for the Macrophage now includes a lot more instrumentation for more detailed error messages. We started having some sort of error in at least some games starting the last release.<br />
** But after putting in the instrumentation (and having fixed the outguard serialization bug that also manifested in the same savegame), we no longer can duplicate the problem. So for now there's nothing more to do, but if it comes up again we'll at least know where it is.<br />
** Thanks to Badger for reporting.<br />
<br />
== Beta 2.506 ExternalData Overhaul Two ==<br />
(Released September 15th, 2020)<br />
<br />
'''This is kind of a nasty one, in that we're fixing a ton of things but potentially also breaking more things. External code-based mods are definitely broken again (sigh). But a bunch of things that were question marks for multiplayer are either now working properly for the first time (a few dozens of things), or are now verified-correct (even more dozens of things). So we're dropping back to beta briefly, to let people test things and let us know if there are any bugs that make this unplayable for some reason. Once folks have been through it sufficiently, we'll move back to the non-beta branch.'''<br />
<br />
* Previously, the dark spire ships that you could hack for had a starting mark level of X, and a max mark level of 4. Now they all start at mark 1 and level up like normal, but have a max mark level of 7 (because why not).<br />
** Essentially, tech unlocks for players probably did not work terribly well when the starting mark level of a player unit is greater than 1. And having a low mark cap on top of that can be frustrating for folks.<br />
** Specter used to start at mark3, now is 1.<br />
** Phantom was already mark1 at the start, but still is.<br />
** Okay, wraith was already mark1 at the start, and still is.<br />
** Anyhow, the level caps were a big part of what was messing with people, probably.<br />
** Thanks to crawlers and CRCGamer for reporting.<br />
<br />
* Fixed a potential nullref that could happen in CheckForInternalShipDeployment_DroneProducers_FromSimBGThread(), probably more likely on multiplayer clients than elsewhere, but definitely possible anywhere.<br />
** Thanks to Puffin for reporting.<br />
<br />
* Fixed a strange capitalization issue in the logging for faction deserialization where MinFIreteam and MaxFIreteam would thus show up as diffs.<br />
** Thanks to Puffin for the report.<br />
<br />
* New debugging command added: <code>dump data tables</code><br />
** This causes all computers involved in the current game (so not just the local machine in multiplayer) to immediately dump all their data in the same way that happens from "Dump All Data Tables After Load" from the debug section of the settings menu. <br />
** ''Please be advised that this will cause all of the computers involved in this game to freeze for something like 20-60 seconds, depending on their relative speeds, how many expansions and mods are installed, and so on. It's a good idea to warn people before you run this comment.'''<br />
** Aka, this writes a text file for each in-memory data table into a DataTableExports subfolder in the PlayerData folder. <br />
*** The purpose of this is mainly to use with diffing tools between one run of the game and another, to see what sort of data changes happened. If you are modding and made changes to some ships and want to see how those changes cascaded, this would be one way to do that. This is also a way for us to verify correctness when we make structural changes internally.<br />
*** In multiplayer, this can also be used to compare the contents of these folders between the host and various clients, to check for things that might be amiss thanks to mods or other local changes.<br />
*** To compare folders at a time, you'd need to share the contents of these folders between machines (zip and email, etc), and then run a folder-wide diffing tool like WinMerge to find any discrepancies.<br />
*** Lastly, if you're a mod author and concerned that your mod is adding to the data tables incorrectly over time, then you can use this to get snapshots of what those look like as you are playing. Normally this data should not be changing after the initial load of the application.<br />
** Never considered a cheat.<br />
<br />
=== Multiplayer And ExternalData Continued Improvements (Breaks Code-Style Mods Temporarily) ===<br />
<br />
* There are some issues with the data table dumps now actually dumping some game data.<br />
** To combat this, the ArcenOverLinkedList and ArcenLessLinkedList both no longer dump their firstItem and lastItem fields.<br />
** Hopefully we will still see the count of items in these, but that's really all we can do right now without getting into circular references by the very nature of these linked lists.<br />
<br />
* This also finally pushed us over the edge when it came to IArcenExternalDataPatternImplementation, and this is now becoming an ArcenExternalDataPatternImplementationBase abstract class that we can control a bit better in several different ways.<br />
** In general this will be a help for us with multiplayer sync, among other issues.<br />
** This class should never be directly inherited-from by things in External or mods, however.<br />
** Added a new ArcenExternalDataPatternImplementationBase_World, which is for use with things being attached to worlds.<br />
** And also a new ArcenExternalDataPatternImplementationBase_Faction, for things being attached to factions.<br />
** And a new ArcenExternalDataPatternImplementationBase_Squad for things being attached to ships.<br />
<br />
* Took this chance to fix a number of data structures that might not be multiplayer client-sync safe based on the fact that MP sync data might be missing and might need a catch-up:<br />
** AIReservesData (constructor updates, DeserializeExternalData updates).<br />
** Okay, 33 other classes needed the same update pattern, so we'll save you the list of going through all of those again.<br />
** Added a new ArcenExternalSubManagedData class, which all 34 of those classes now inherit from.<br />
*** This lets the increasingly-complex central logic from DeserializeExternalData be written only once, not 34 times.<br />
**** This is all handled, for the default case, via the new generic method DeserializeExternalDataAsArcenExternalSubManagedData().<br />
*** Also worth noting, we can no longer use constructors with arguments on this, because of how the logic is centralized. The default constructor is always called now, and then DeseerializeIntoSelf() is called after that if needed.<br />
**** This is doubly worth noting, since it makes sure that there are no cases where object initializations from the default constructor are not called.<br />
<br />
* While we are at it, we're marking the various lists and other collections as readonly in ArcenExternalSubManagedData-inheriting classes.<br />
** This helps us avoid ambiguity and extra code, and is a double reminder for us to review places where we could get into infinitely-expanding lists on multiplayer clients.<br />
*** Fixed the following infinite-expanding collections for multiplayer clients:<br />
**** The FinalComposition dictionary on PlannedWaves was going to infinitely expand while waves were incoming.<br />
*** Fixed the following "accidental data churn from throwing away collections on multiplayer clients":<br />
**** The DZPerUnitData ConversionList and ConversionBag.<br />
**** The metalByTier on DysonData.<br />
<br />
* Added a new ArcenExternalSubSubUnmanagedData abstract class for classes that is for the sub-data types that a few things use, like DarkSpirePerPlanet.<br />
** This adds some structure, but is not as fully managed as the main classes above it. These again help us to avoid some bad habits that can lead to memory leaks on clients.<br />
<br />
* Fixed a general cross-threading issue that could happen with Loci_ForUI in the dark spire. This could happen in single player or multiplayer, and we found it because of the new code rigor enforced by these new abstract classes.<br />
<br />
* The DeserializeDictionary utility method, and a few similar ones, no longer take their dictionaries as a ref parameter. That's now allowed syntactically for readonly dictionary fields, and it's not needed logically at all for dictionaries as a whole, which are reference objects and thus always passed by reference no matter what.<br />
** Same deal with ArcenRandomDrawBags, for the same reasons.<br />
** And same for some various working methods that were passing generic List<>s with ref explicit. It doesn't matter if the contents of the list are a value type, the list itself is still a reference type.<br />
<br />
* Fixed a client-only bug where certain things were being cleared incorrectly on the DLC2 "ZM" faction data object during faction sync, but now are not.<br />
** In that same faction, fixed another of the "ForUI" list cross-threading issues.<br />
<br />
* Added a ClearAndCopyFrom() method onto ArcenSparseLookup, which does what it says on the tin.<br />
** This is useful in places where we are no longer shuffling around sparse lookups by reference (think pointer), but instead are now keeping the lookups but needing to copy from one to another.<br />
** The need for this is pretty rare, but it's used in wave planning.<br />
<br />
* Discovered a rather dire issue from the last week or so, and have fixed it.<br />
** Essentially, the objects that previously inherited from IArcenExternalDataPatternImplementation (and now from a descendant of ArcenExternalDataPatternImplementationBase) are NOT UNIQUE per object.<br />
** So the fact that we were starting to store the ParentWorld and ParentSquad and so on on those was actually a major problem, and probably a source of some sort of random bugs in single player and multiplayer.<br />
** We were mostly saved by the fact that we ignored those properties and were using the Source object cast properly, which is what was supposed to happen.<br />
** But upon refactoring things, we ran into increasing problems with this. It has now been corrected, and this should hopefully also prevent us (or a modder) from making the same error in the future.<br />
<br />
* With the new way that we are using readonly for collections on the ArcenExternalSubManagedData and ArcenExternalSubSubUnmanagedData, we have to initialize all those collections properly in the constructor, which was not always happening before.<br />
** We now are just initializing them as part of their definition itself, which is easier to check for correctness and has the same end result and performance.<br />
** If we missed any of these, or heck if we made any typos in the many many other changes list above, then there will be errors when loading certain savegames or when during certain parts of gameplay.<br />
** We should be able to fix such issues very quickly, and for now we're not seeing any issues, but we'd definitely appreciate testers in both singleplayer and multiplayer.<br />
<br />
* It goes without saying, perhaps, that this breaks all of the code-style external mods again. We will probably break those a few more times in the coming weeks as we get things multiplayer-safe, and then will stop that.<br />
<br />
== Version 2.505 Multiplayer Alpha Starts, Take Two ==<br />
(Released September 14th, 2020)<br />
<br />
'''Let's try this again! This is one big reason we did a "soft launch" into MP alpha. If anyone is able to test tonight and let us know how it goes for you, then we will probably make the official "hey there's multiplayer alpha now!" posts tomorrow, unless new showstoppers are found. At this point there's the periodic minor "waiting for players" micro-hitching annoyance, but beyond that being a small thing, Chris was able to play for 18 minutes between two computers across Valve's network tonight. No permanent sync issues, no degradation in performance, nothing that seemed glaringly off. There will be more bugs, but the core stuff -- knock on wood -- seems to be working. [[:Category:AI_War_2:_All_About_Multiplayer#Selected_Short_Term_Todo_List|There's a good list of things that need to be done in the near term here]], and that's just in terms of general functionality, not MP-specific features.'''<br />
<br />
* Fixed a bug where "??? Name" was showing up incorrectly in the factions list in the prior build.<br />
** Thanks to Badger for finding the typo.<br />
<br />
=== Multiplayer Sync Initial Implementation Now Tests Out Initially Working ===<br />
<br />
* Followed several paths of code trying to fix the ship sync, but ultimately wound up reverting a lot of that code after we found the actual cause.<br />
<br />
* Found a one-line typo that was leading to infinite duplication of every fleet on the client every few seconds.<br />
** Essentially every fleet was trying to match to fleet 0, and never finding it, and then creating a new one.<br />
** This was leading to a really devastating amount of duplicate data, and confusing everything on the client.<br />
<br />
* Manually reviewed the code for all similar things, including factions and planets, and all of those seem good for now.<br />
<br />
* Discovered that it was possible for extra fleets to wind up on the client just hanging around after a full fleet sync. Those extras (usually were only one or two) now delete themselves.<br />
<br />
* The clients no longer automatically add 1000 to all of the PKIDs that they are syncing from the host. We welcome the extra conflicts at this point... maybe... as it will also lead to some sometimes-correct things that don't need to sync.<br />
** This was something we were doing as of a couple of versions ago in order to try to prevent things from fighting over the same dictionary spot.<br />
<br />
* At this point we have far fewer syncs needing to happen between the host and client, which is awesome.<br />
** The number of ships and fleets is consistent between the client and host, and the energy usage is also consistent, and so on (though energy usage may be misleading since that gets synced from the host as part of the ultra-frequent processing).<br />
** A bunch of ships are showing up as invisible on the client for whatever reason, we know for certain, but those ships that are showing up maintain sync properly.<br />
** There are still some extra ships in ship fleet lines on the client that should not be there, and may just be duplicate references to existing ships.<br />
** Overall the total stats on the number and size of messages sent and received on the clients and the server seem to be incorrect, although sub-parts are often correct.<br />
<br />
* The "Deletion Time!" header in the ship sync details log now only appears when there is actually something to delete, which is not all that frequently anymore.<br />
<br />
* Fixed a bug on the client and host in multiplayer where the total messages received, and the total bytes of them that were received, were far too low. A filter based on message type was incorrectly being applied to these overall counts, where no filter should have been applied.<br />
<br />
* Fixed the remainder of the network messages still not being properly logged, in size or number. There are two places where filters applied, and we missed the second one at first.<br />
<br />
* Fixed an issue where ships that were network-synced were properly added to fleets and the global registry, but NOT to the planet faction (and thus faction) registries. So they were showing up as invisible, despite syncing properly as of today.<br />
** Now the ships show up just fine!<br />
<br />
* Previously we had put some logic in place to not delete ships too fast on the client if they were not discussed by the host in a sync pass. But now that the sync passes are working, this is no longer needed (and in fact actively makes things look wrong for seconds at a time).<br />
** The game now does a much quicker job of removing these extras, and consequently there are not as frequently extra ships that should not exist in the fleet memberships sitting around.<br />
** It's worth noting that for 3ish seconds at a time right now, it is possible for these ships to hang around (but they only appear on the client, and can't be given any orders, which is confusing and annoying but a comparably minor thing and will be tamed soon when we improve how PKIDs are allocated so that fewer clashes happen.<br />
<br />
== Version 2.504 Clarity And Fair Play ==<br />
(Released September 14th, 2020)<br />
<br />
'''We're no longer on the beta branch, because we don't think that this will negatively affect the single player experience. However, multiplayer's alpha is still not ready to go. This build is focused on fixing things up to get things back working properly for single player (which of course also affects MP), and we'll be resuming work on getting MP ready now that this is out.'''<br />
<br />
* If a player-allied faction kills something that would grant rewards (science, hacking, metal), the game now sees if there were player ships on the planet too. If so then it grants the rewards to the strongest player on the planet.<br />
** This seems the path of least frustration for players<br />
** Thanks to Ymir for the bug report, and others for a spirited discussion on steam.<br />
<br />
=== Bugfixes ===<br />
<br />
* When placing wormholes on a planet, the game now makes an effort to make sure they aren't on top of eachother. In very rare cases, some map types could wind up with wormholes that basically overlapped eachother, which was very hard to work with.<br />
** Thanks to Mac for pointing this out.<br />
<br />
* Fixed a longstanding issue with the number of entities contained within a ship where it was showing much lower numbers than appropriate, because we were indexing into the wrong array of display numbers. Above 100 units, it should now show much more appropriate numbers.<br />
** Thanks to TechSY730 for the report that finally tipped us off to the potential cause of his strange area.<br />
<br />
* Fixed an issue that could cause exceptions in the target list sorting if ships died at just the wrong moment.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
* Fixed a very unexpected bug that our recent extra-strict ExternalData checking logic let us find. Essentially it was somehow possible to get a second Praetorian Guard faction for a single AI, although we're not quite sure how. The game now actively clears those out when it is loading a savegame or settings as a template, to keep you from having double-strength PG forces for no apparent reason.<br />
** Thanks to Deathlymad and Metrekec for reporting, and for providing the savegame that let us practice testing and fixing the issue.<br />
<br />
* Fixed an exception that could happen at various times if the spire debris data was null when it was thinking about making notifications relating to them.<br />
** Thanks to jradishurr for reporting.<br />
<br />
* Fixed a minor visual error where it would say "ERROR: my FleetMembership is null!" if you were viewing a tooltip or popup window with a ship in it that had died. It now will say "This ship has died." instead, if the ship properly died (which is likely to be the case).<br />
** Thanks to GreatYng for reporting.<br />
<br />
* Preventatively 'fixed' theoretically-possible-but-not-encountered bugs (that might not actually have been bugs in the end relating to the following, all based on the new ExternalData changes:<br />
** Winning a game and getting a superterminal achievement (probably not likely).<br />
** Exceptions in notifications about wormhole invasions (this one probably would have been hit eventually).<br />
** Exception in notification tooltip about spire debris (again was likely to be hit).<br />
** Exception in notification tooltip about instigators (very unlikely).<br />
** Two exceptions in notification tooltip about astro trains (somewhat likely).<br />
** Exception in notification tooltip about relic trains (unlikely except maybe for multiplayer client).<br />
** Exceptions in five tooltips for DLC2 (likely to be hit).<br />
** One other exception relating to DLC2.<br />
** Possible exception with the Shark B plot on.<br />
** Several possible exceptions in writing out the list of AI factions and their subtypes (most were very unlikely, except maybe in multiplayer on clients).<br />
<br />
* Fixed a pretty huge bug where if certain entities died to remains (rather than permadeath), they would give AIP every time they died to remains, but when the normal permadeath setting was on they gave no AIP. This was the opposite of our intention and has apparently been incorrect since July 23rd.<br />
** This meant that things like GCAs, etc, would not give their proper AIP on death.<br />
** Thanks to ParadoxSong, Strategic Sage, crawlers, Isiel, and Puffin for reporting and helping track this down.<br />
<br />
* Regular engineers are no longer part of the fleet membership selections for anything that you can get via battlestations or citadels. Instead, combat engineers are used for those cases.<br />
** This will not affect existing savegames, only new ones.<br />
** Thanks to ultamashot for the report.<br />
<br />
* On September 6, we added the following: "QoL tweak for repair. Any ships on a planet where you outnumber the enemies 10 to 1, or the enemies have less that .2 strength are eligible to be repaired immediately. The previous rule was 'Any ships on a planet without enemies'"<br />
** This now only applies to ships and structures of factions that are friendly to the humans. Any neutral or enemy factions will now use the old style of logic that existed prior to September 6th.<br />
** This prevents the AI and Exos in particular from developing invincible shields when they have overwhelming firepower against you, among some other unintended consequences.<br />
** Thanks to TechSY730, crawlers, and MasterGeese for reporting.<br />
<br />
=== Fireteam dynamic resizing ===<br />
<br />
* In the late game, powerful factions can have hundreds or thousands of fireteams, which can make LRP threads run very slowly.<br />
* Each faction using fireteams has some variables that control 'how large should my fireteams be'. <br />
* Now for every 50 fireteams a faction has, it will require future fireteams be larger 1.5x larger. If a faction starts losing fireteams, the size requirements will go back down<br />
** The end result is fewer but larger fireteams, which should be a nice performance boost. Note this won't really help existing games as much as it will help new games to never have that many fireteams at all. Applies to all factions that use fireteams except the Imperial Spire, since that ends the game quickly<br />
<br />
=== AI Difficulty Description Rewrites ===<br />
<br />
* The tooltip descriptions for AI difficulties have been updated after folks have given us indication that there was some confusion based on the old ones (particularly sometimes players felt bad for playing too low, or did not understand the true purpose of difficulty 10, etc):<br />
** Difficulty 1:<br />
*** Old: So easy it might be asleep.<br />
*** New: The AI is effectively dormant; this difficulty is good for practicing the game without any real opposition.<br />
** Difficulty 2:<br />
*** Old: Actively does stupid things.<br />
*** New: The AI will only utilize its most basic subroutines. Retaliation will be minimal in response to your efforts.<br />
** Difficulty 3:<br />
*** Old: Excellent if you're just wanting to mess around with no stress and you've never seen an RTS, ever, before.<br />
*** New: The AI is conscious, but will operate primarily in a reactive capacity. Most of your opposition will be in the form of defensive AI forces in enemy territory.<br />
** Difficulty 4:<br />
*** Old: If you're only vaguely familiar with RTS games, this might give you an interesting time. But bear in mind all the cool and clever tricks aren't remotely here for the AI yet.<br />
*** New: If you’re ready for a little push-back from the AI and some confrontation on the homefront, this will be a good introduction to some of the behavior you can expect from higher difficulties.<br />
** Difficulty 5:<br />
*** Old: If you're here for the first time, but know your way around RTS games, this isn't an awful place to start. The AI is partially brain-dead still, but it should give you an interesting time. But if the game seems too easy, you'll know why.<br />
*** New: The AI takes your presence a bit more seriously. You may find your attention split from time to time and will have to more carefully consider the repercussions of your choices and how the enemy will react to them. Ongoing reckless expansion on your part has the potential to incite a deadly response from AI.<br />
** Difficulty 6: <br />
*** Old: If you're solid at RTS games, then this is what would typically be considered 'Normal' for you... potentially. The AI doesn't have its full bag of tricks yet, but it's still pretty crafty and is starting to have some of its tricks. This difficulty is also great to use if you're really wanting to have the AI be there, but some other factions be the MAIN threat. This will keep the AI interesting but not on your back all the time.<br />
*** New: Against a Difficulty 6 opponent, your choices are really starting to matter. You will notice more devious tactics being used by the AI and will need to watch your back as you claim assets and territory. Other factions have the potential to be more threatening depending on how you set them up, but the AI will continually make its presence known.<br />
** Difficulty 7:<br />
*** Old: Players in the first game had a saying, that 'the real game starts at difficulty 7.' And while that is kind of... rude?... there is also some truth to that, in that the AI is finally fully unshackled. There are a few truly nasty things for the AI that you would still need to turn on in the AI Behaviors section of the Options tab if you really want full pain, but this is a fully competent AI. This is also the difficulty that Chris, the original developer of the games, plays at. It's fun and he can play in a relaxed fashion and not be super focused on every detail, but still win only about a third of the time playing that way. So if that gives you some measure. He plays most other RTS games on their max difficulty or close, not that that's always saying much.<br />
*** New: This is where the AI stops holding back and utilizes all of the strategies and resources at its disposal to try and keep you at bay as your power grows. Its economic power is still somewhat limited, and while you can still get away with being a bit of a nuisance early on, the enemy won't hesitate to put you down if you make yourself too much of a threat.<br />
** Difficulty 8:<br />
*** Old: This is the sweet spot for veteran players. The AI has all its tricks, and has a bit of a stronger economy and stronger responses, too. You COULD make the argument that the economy of the AI at difficulty 7 is a bit on the weak side, so it's not that this is a cheaty AI or something. For players who are really paying attention and managing all the small things and want to have a drag-out battle, this is the difficulty of choice. If Chris really wanted to white-knuckle it, he could probably maintain his 30% winning streak at this level. But he's not into that kind of stress. There's a good chance you're better at RTS games than he is, though, if you're a veteran in particular, so maybe that's not so much stress for you.<br />
*** New: If you take the fully-functional Difficulty 7 AI, provide it with a bit more fair allotment of assets, and make it more sensitive to your actions, this is where you end up. Ideal for veteran players really looking to test themselves.<br />
** Difficulty 9:<br />
*** Old: Are you super awesome at RTS games in general, and this one in particular? Difficulty 8 is just proving too passe? This keeps all the tricks from before, but cranks up the economy and some of the frequency with which the AI will harass you. You could argue that at this point it is getting to be slightly a 'cheating AI,' but frankly things are so lopsided it is hard to make that kind of distinction. If you're so much better than the average player at managing your empire, then... I guess this is kind of taking away that advantage that would otherwise let you roll the 'fair' AI? We get into murky waters here, but a subset of veteran players enjoy this difficulty, so here it is.<br />
*** New: Making for an exceptionally tough adversary, Difficulty 9 stacks the odds in favor of the AI. Armed with a robust economy, the enemy will be ruthless in their attacks and relentless in their harassment of your defenses. To overcome this challenge, you will always need to be on full alert to prevent the AI from exploiting any weakness in your strategy.<br />
** Difficulty 10:<br />
*** Old: This difficulty level is not meant to be fair. It's using all of the AI's legitimate tricks, and it has its economy and whatnot cranked up to 11. If you win against this level of AI, that's something that we traditionally consider 'a bug.' You are supposed to lose, every time. Please file a bug report with how you won so we can fix it. So why do we have this difficulty level? There are some players who are just THAT GOOD, and they spend their time trying to find weaknesses in the AI despite its unfair advantage. A lot of improvements to the AI have come about because of players on difficulty 10 telling us how they won. We usually adjust unit balance or AI logic in response to difficulty 10 victories, we don't just make difficulty 10 harder. That would defeat the point.<br />
*** New: Economically, the 'SuperCat' AI gets a substantially unfair advantage. Militarily, they still play fair but will be able to bring overwhelming force against you in most every situation, all the time. A subset of dedicated players enjoy this difficulty level, but it is not fun for most. Beating the SuperCat even once is considered a crowning achievement, and usually involves a player discovering an unbalanced tactic. If you find yourself in the enviable position of being able to have your name added to those who win a 'pure' difficulty 10 win, please file a bug report with any tips you have on how we can (legitimately) upgrade the AI to counter your winning strategy. This back-and-forth arms race between the players and the developers has led to some of the most interesting innovations for all levels of AI for the game (and its predecessor), and it is also a very specific style of brutal gauntlet that certain dedicated individuals enjoy throwing themselves into.<br />
** Thanks to Tzarro for writing the new descriptions for us, except for the new difficulty 10 description.<br />
<br />
== Beta 2.503 Multiplayer Not Quite Ready ==<br />
(Released September 11th, 2020)<br />
<br />
'''This remains on the beta branch in case there are more singleplayer issues. As far as multiplayer goes, things are not stable enough to do any real testing. There is an issue of some sort that causes fleets to infinitely multiply copies of themselves on the client, which leads to a lot of lag and other problems. There's also an issue with various ships syncing in and out of existence in funky ways, which essentially makes multiplayer unplayable. This is something that is going to take more hunting, but it's all one cluster of issues, and once it's resolved multiplayer should be pretty ready to go. Really glad we did a soft launch! It would have been awesome to have people able to play multiplayer over the weekend, but we're just not quite there at the moment. Hopefully in the first couple of days of next week we can figure this out, but for the moment our brains are fried. More to come soon!'''<br />
<br />
* There's now extra error handling in the "stage 3" faction logic, to keep that from ending the entire game when those happen. It reads:<br />
** DoPerSecondLogic_Stage3Main_OnMainThreadAndPartOfSim Error for faction [name] (index [a number]). Consider restarting the game, as many other things may now go wrong because of this first error. And please report this! Error: [error text]<br />
** This will probably solve things like paralysis counters not counting down when there are such errors, but you're still likely to have a strange time.<br />
** Thanks to StarKelp, Mac, and gigastar for reporting.<br />
<br />
* Fixed a bunch of places in notifications where it was still looking to the old locations for an out of date icon. We will have real icons in the future for those, but for now the placeholder will no longer throw an exception.<br />
** Thanks to jrad for reporting.<br />
<br />
* Fixed an exception that could happen when killing instigator bases, in the notification tooltip for them.<br />
** This is another regression... kind of... from the last few betas. This actually will make clients more robust in multiplayer, though, so it's better than just a straight regression fix.<br />
** Thanks to TechSY730 and jradishurr for reporting.<br />
<br />
* The Civilian Industries mod has been updated to be compatible with the new versions of the game.<br />
<br />
=== Multiplayer Ship Sync Fixes ===<br />
<br />
* Added a setting to the networking section of the settings menu: Log Human-Readable Ship Network Syncs To Disk<br />
** Only relevant on multiplayer clients, not the host. Will majorly slow the game down, but dumps a huge amount of networking info to the disk in the NetworkHumanReadablyShipSyncLog.txt file in the PlayerData folder. This gives a message for each ship that was changed or deleted and why that was done, as well as what planet it was on and who owned it. When syncs are doing funky things, this is a way to manually review it and find out why.<br />
** This required us putting in a LOT of extra code to handle log<br />
<br />
* The current sync cycle is now sent with the divergent data sets, hopefully leading to clients not deleting things they just fixed (because that was totally happening before. Logs are a magical thing.).<br />
<br />
* Discovered a major oversight in our sync code, where basically once something had been synced once it was then being synced every sync cycle forever after that.<br />
** This was a huge cause of lag for multiplayer, and made things disappear inappropriately, probably.<br />
** There are still other things wrong with the ship sync, though, that we can see in the new logs.<br />
<br />
* The sync code has been made more robust in general, now syncing the type of entities as well as what faction they belong to.<br />
** These are often incorrect, when there are catastrophic different uses of primary key IDs anyhow, so getting those right is a good thing.<br />
** It occurs to us that maybe this is overkill, since if these are wrong then probably the planet or at least the location would also be wrong? But... let's leave it in for now, and maybe make an option later for skipping it. It's not a lot of data to transmit or a lot of extra processing.<br />
<br />
* Fixed a couple of issues with reusing entities as different ship types, where it will now properly add or remove or reassign system types on them.<br />
<br />
* Fixed some issues with reusing entities during sync where they were not being added back to the central lookup of entities, leading to future syncs to fail on them forever.<br />
<br />
* Put in some logic to improve the number of loops before we remove something that isn't being synced properly, to make it based on the number of loop counts rather than the amount of time something has been alive (since things that have been alive for a while can get fully synced later).<br />
<br />
* Fixed some conflicts that could happen with entities in the central lookup on the client in multiplayer, if the order of registering and unregistering entities gets out of sync.<br />
<br />
* Intentionally desyncing the PKIDs of ships, wormholes, and fleets on clients compared to the host.<br />
** Trying to reuse entity IDs was often causing some notable problems, and they were rarely in sync as it was.<br />
** This forces a sync cycle for every new ship and fleet that is created, but makes conflicts on the client a lot less likely.<br />
** This may not be a good long-term solution, but a refactor to avoid the conflict space is potentially where we're at, honestly. That will take days, and add a lot of bugs temporarily, so it would be great to avoid it.<br />
<br />
* At the moment the game creates infinite extra fleets on the client, slowing it down progressively. This makes it effectively unplayable.<br />
** There are also about a thousand ships that it will routinely delete from the client, then re-add, then delete again. Also making things unplayable. Still looking into it, but this is likely to be a Monday thing, as this is not a simple matter.<br />
<br />
== Beta 2.502 Regression Fixes ==<br />
(Released September 11th, 2020)<br />
<br />
'''Note that this build is still in beta in order to let people have a chance to run into any more regressions that we may have introduced. So far none of the regressions have indicated any errors in older builds, which is a nice thing. Though in the process of making the prior beta build, we did fix a number of "useless extra data" things, so even if we don't find any new bugs that were older, these regressions were still worth it to ensure data accuracy. It is quite annoying in the short term, though, and we really appreciate the folks taking the time to test it out.'''<br />
<br />
* Add some new voice lines when the player is attacked by the Nanocaust<br />
<br />
* Hopefully Zenith Forcefield Generators will now return after being pushed<br />
** Thanks to GreatYng for reporting, and Puffin for reminding us of the fix<br />
<br />
* Fixed a bug from the last couple of builds where chat commands were failing in general.<br />
** Thanks to Magiik, MasterGeese, gigastar, and Richard333 for reporting.<br />
<br />
=== Fixes To Regressions From Prior Beta Build ===<br />
<br />
* Fixed a bug in the latest beta build that was causing new games to constantly error out with autosave data not being added properly.<br />
** This is one of those "externaldata is now more explicit" things, but this is an example of us choosing the wrong explicit option this time around.<br />
** Thanks to Puffin for reporting.<br />
<br />
* Fixed an exception that could happen when trying to generate notifications about AI reserves before their data was initialized. This was caused by the last beta, but is better to have it handled this new way (so, yay error, this time).<br />
<br />
* When there are errors in generating a galaxy, it now no longer lets you into the galaxy to play (since that leads to many random errors after the real one with the map not generating).<br />
** Random things might include lots of planets belonging to no one, among other things.<br />
<br />
* SeedStartingEntities_LaterEverythingElse during mapgen now has a lot of new exceptions it can throw if various data is missing that it is supposed to have.<br />
** Mostly these are related to the AI and its subfactions (hunter, warden, and PG), but there's also one for if risk analyzer data is missing.<br />
** Prior to the last beta, it seemed to have been just using blank data, although it's impossible to be sure. And in the last beta, it was throwing an exception.<br />
** We then tested all of the factions in the game and the first two DLC, and the only three types that threw exceptions in this area were the AI subfactions (hunter, warden, and PG).<br />
*** We could use more robust testing of the game starting with various factions and them having various settings, though, to make sure that it's all going across properly (this is just in single player, not even multiplayer).<br />
** Thanks to Puffin and jradishurr for reporting.<br />
<br />
* Fixed four typos in the last beta that were not properly having the "related AI and subfactions" properly reach for one another, which led to missing or misapplied settings on game start.<br />
** This then left the Praetorian Guard still not working properly, because they have no custom fields in the lobby and thus were never having a reason to initialize. That probably was not a problem, but to keep things consistent and safe we are now initializing it when the general "AIDifficulty" field is processed.<br />
** For the record, prior to the most recent beta this means there were not actually any errors, but now we do have protection in place in case such an error pops up in the future. But for the time being, these errors were just in the most recent beta, which is gratifying to know.<br />
<br />
* Fixed a couple of logic errors with risk analyzers in the most recent beta that was causing their notification to show up wrong as well as also firing them immediately on game start.<br />
** They now should work properly again, and if the notification is going to be wrong, it will be more informative in its wrongness.<br />
** Also fixed the fact that this could happen when AI Risk Analyzers were not even enabled as a faction.<br />
** Thanks to Puffin for reporting.<br />
<br />
== Beta 2.501 First Raft Of Multiplayer Fixes ==<br />
(Released September 10th, 2020)<br />
<br />
'''This one is on the beta branch on Steam and GOG because of how much we changed with the "ExternalData Accidental Creation Avoidance" section. There may be legitimately new bugs that we introduced from that, or there may be old bugs that now simply show themselves with error messages. Either way, we don't want to inflict that on everyone, so please use the beta branch to help us test this one out.'''<br />
<br />
* There is a '''list of known issues with multiplayer''' here: https://wiki.arcengames.com/index.php?title=Category:AI_War_2:_All_About_Multiplayer#Selected_Short_Term_Todo_List<br />
** It's debatable how playable the alpha is at the moment, given the issue with the client ships deleting themselves rather than syncing, and given some of the (essentially) client-side memory leaks. Those two things will be my main priority tomorrow, unless something else more pressing comes up (like fixes to things broken by the ExternalData stuff).<br />
<br />
* A new button has been added on the main menu above the forum link that links directly to the AI War 2 discord channel.<br />
** Thanks to Metrekec for suggesting.<br />
<br />
=== Better Default Screen Resolutions! ===<br />
<br />
* Fixed a bug where the fullscreen resolution was still being saved into newsettings.dat rather than graphicssettings.graphics.<br />
** This meant that the fullscreen resolution was being sent over cloud sync, when really that should not be, since that is a machine-specific setting.<br />
** This may wipe out your prior values for the fullscreen resolution, requiring you to set it again.<br />
** Thanks to jrad for reporting.<br />
<br />
* At long last, added a startup feature that folks have been wanting for a while: better default screen resolution, for a better first impression as people start the game for the first time.<br />
** Previously, this particular game was just having a default of opening in windowed mode and 1024x768px, since that will fit on most monitors.<br />
** One of the reasons for this is that opening directly in fullscreen mode can cause bugs, particularly when settings are copied from one machine to another. But we are using fullscreen windowed mode, which reduces the chance of fullscreen bugs, and we also have our graphics settings not set to cloud sync for the last year or so.<br />
** With that said, now the game will automatically (first time opening it on this or future versions on any given computer) set itself to be fullscreen mode with your desktop resolution.<br />
*** It also will set your windowed mode defaults to be your desktop resolution minus 80px width and 100px height. So if you do flip it back to windowed mode, it should be at a size that feels sensible for your machine.<br />
** If you are using a very high-DPI monitor on an underpowered machine (for instance how Chris is testing with a late 2013 MacBook Pro 15" that is below minimum specs for the game), then you may want to lower the fullscreen resolution to something that machine can handle more gracefully (for instance, with ship graphics off and only running at 720p, that below-specs machine runs the game great).<br />
** Note: if you are already in fullscreen mode, then unity just reports what your current fullscreen resolution is. So it will save itself to that, and then set your windowed mode resolutions to be a bit smaller than the current fullscreen mode. Normally this game opens for the first time in windowed mode until this logic kicks in, so this only applies if you already have a current fullscreen setting active.<br />
<br />
=== Multiplayer Fixes From First Alpha ===<br />
<br />
* If there is a null result from FindArcenSteamClientConnectionByConnectionID in OnMessage on a Steam host, it now will write a more detailed and informative message as to why.<br />
** Additionally, in general OnMessage on the Steam server and client is now far more instrumented if those wind up with issues.<br />
** This won't actually solve any problems, but for the case where there was a client disconnect on connect, this should tell us what is going on more.<br />
** Thanks to StarKelp for reporting.<br />
<br />
* The numerical order of the detailed networking sync logs is now better regardless of OS file sorting, as it gives leading zeroes where needed.<br />
<br />
* While in the lobby, or while players are still connecting, the game no longer tries to run the general sync-correction code. This was an oversight in general, and was leading to various errors that would keep popping up until the host saved in-game and clients disconnected and reconnected.<br />
** This was the chief cause of the ""Fixed attempt to read more faction data than we had factions" error on the client.<br />
** Sync was already being handled as well as it needed to be in the lobby in particular: all it needs to do is make sure that your UIs are consistent, which it does. The actual underlying data about incomplete factions and such that can't be seen yet are really quite irrelevant at that point, and so it actually skips a lot of that data, which was incompatible with the full main-game-style sync. As soon as you start a game from the lobby, it already doing a much more robust generation and transmission of the data.<br />
** After loading into the game from the lobby, however, it seems that that initial sync is not as complete as we had hoped, so that's another area for us to now investigate.<br />
** Thanks to StarKelp and his play group for reporting.<br />
<br />
* Fixed a bug in deserializing player accounts, which was something that was leading to the immediately-after-lobby sync being broken.<br />
<br />
* Fixed a harmless extra blank fleetID that was being sent as part of the PeriodicWorldExtrasSync, which made them look inconsistent but did not cause other problems.<br />
<br />
* Fixed a larger bug that was actually preventing deserialization of divergent ships from working properly if the ship did not already exist on the client.<br />
** We had fixed this the other day, but made a mistake in the fix and had to do it over. Now it works!<br />
<br />
* There are still some more issues with syncing divergent ships that have external data on them, and we're not sure why yet.<br />
** The deserialization code for external data now has extra error handling in general, so that we can be more informed if something like that happens during sync or a load off of disk.<br />
<br />
* On the ArcenSerializationTester, added AppendIfActive() and AppendLineIfActive(), which are basically like Append and AppendLine().<br />
** These return a ArcenSerializationTesterWriter so that they can be chained into concisely readable calls like other parts of the code.<br />
** We want to be able to write more complex data in for informational purposes without it being the full WriteHeaderStringIfActive(), and without having to do string concatenations that hit the GC.<br />
<br />
* Several pieces of new logging are now in place to help us more easily identify problems syncing unit data, and external data in general.<br />
** We were seeing some mighty funky stuff on ExternalData syncs failing in multiplayer, and are trying to understand what is happening and why.<br />
<br />
* A WHOLE lot of extra error handling and instrumentation has been put in place around ships and externaldata in general.<br />
** Basically if something goes wrong, we don't want it to do so semi-silently. The various problems that most people were seeing in the first multiplayer alpha version were really downstream issues from the real errors, which were largely silent.<br />
<br />
* Found and fixed a part of the externaldata serialization that could be null in some cases, requiring us to instantiate it even on a partial sync.<br />
** This is something that we had already guessed we would have to do, based on us doing the same thing with ships themselves last version, but the silent errors happening here took us several hours to figure out what was going on. It's fixed now, but there will be more cases of this, probably.<br />
** With this fixed, the divergent ships no longer throw any errors. However, there are still some major differences between the client and the host that need to be looked at.<br />
<br />
=== ExternalData Accidental Creation Avoidance ===<br />
<br />
* Put in several fixes to potentially remove ScourgePerUnitExternalData from accidentally being created on any unit that was part of a fireteam.<br />
<br />
* This is going to break code mods temporarily.<br />
** GetCollectionByPatternIndex() on externaldata now takes a new ExternalDataRetrieval enum, which can either be CreateIfNotFound or ReturnNullIfNotFound.<br />
** The default used to always be CreateIfNotFound, which was nonobvious and was causing things like scourge data to appear on non-scouge units. But very likely it was also causing all sorts of other data to be erroneously initialized. This wouldn't have broken anything, but was certainly bloating savegames prior to this version.<br />
** For reference, all of the methods for getting these are expected to follow this sort of pattern: GetScourgePerUnitDataExt( this GameEntity_Squad ParentObject, ExternalDataRetrieval RetrievalRules )<br />
*** In the main game and first two expansions, this led us to having to correct 112 locations in 26 files. That in turn required another 705 secondary fixes.<br />
**** This may seem excessive, but being able to verify that we are correctly initializing data only when needed is a worthwhile goal, and it makes code clarity so much greater.<br />
*** There are a variety of places that this may make a difference based on our changes thus far (aside from whatever bugs we have introduced):<br />
**** Reinforcement spawning may be more correct now. There was previously some logic that may never have been hit if it was originally pointed at a non-sentinels faction, but now it will hit it.<br />
**** AI sentinels data will no longer be put on every faction during the post-victory achievement check. That was likely causing some problems (which someone had put a mantis report about post-victory slowdown and exceptions, so it's possibly related).<br />
**** When checking faction intensity in general, a whole host of wrong data collections are no longer created on random factions.<br />
**** Several things about astro trains can no longer cause accidental data on wrong factions.<br />
**** If astro trains that should be spawning AI waves or adding to the AI budget are pointed at a wrong faction, the data no longer goes into the void but instead an actual error pops up.<br />
**** Several hacks will now show exceptions rather than throwing their data into the void if they are pointed at wrong factions.<br />
**** There are a wide variety of places where the AI difficulty or AIP of an AI were referenced, and which might now throw a nullref exception. If any of those DO, then that is actually a good thing, because in the past those have silently been returning 0 for both rather than using real numbers. If neither of those cause any errors, then that's even better because we know our other code has been correct already. Fingers crossed for more of the latter than the former.<br />
**** Any time any fireteam was disbanded, all of its units were assigned blank scourge external per-unit data. Fixed. Oh, actually every time it looped over the units in a fireteam. Fixed that, too.<br />
**** ExoData is no longer added to every last faction in the game (notifications checks were causing that).<br />
**** It's possible that some tooltips or notifications might throw exceptiosn now, particularly if you load a savegame and mouseover them before unpausing. If these throw exceptions, then basically this is a case where it would have been gibberish data previously, so it's still useful.<br />
**** Various pieces of code like "don't run the nanocaust info if it's not set up" will now work as their programmers likely originally intended.<br />
** This probably introduced a number of new bugs from typos, along with whatever bugs it uncovered, so this is why we're heading back into the beta branch temporarily.<br />
<br />
== Version 2.500 Multiplayer Alpha Begins Now! ==<br />
(Released September 9th, 2020)<br />
<br />
* Removed some extra code that was accidentally included that was preventing the new findp command from being able to cycle through planets properly if there were multiple matches.<br />
** Thanks to cml for reporting.<br />
<br />
* PlayerAccounts are now also passed to cheats/commands (not to be confused with gamecommands), so that now if there are multiple people in charge of a single faction, commands that are sent can affect just one of the players if needed.<br />
** This is now used for the findp command, which lets two players share control of a single faction without the findp of one player affecting the other.<br />
<br />
=== Multiplayer Readiness In The UI ===<br />
<br />
* The multiplayer button on the main menu now has a small bright "Now in public alpha!" tag on it, to make sure no one misses that.<br />
<br />
* In the multiplayer section of the main menu, a new "Alpha Testers: Please Read!" button has been added.<br />
** This has a tooltip that says:<br />
*** Click to open a web browser that explains the current state of the multiplayer alpha (that changes almost by the day), as well as questions for testers (also get frequently updated), a history of recent improvements to multiplayer categorized by date, and a list of work items that are upcoming.<br />
*** Most important of all: if you are running into problems, please take the time to report them to us, rather than assuming someone else will report it. That is absolutely the most helpful thing we can ask for.<br />
** And its link goes here: https://wiki.arcengames.com/index.php?title=AI_War_2:Multiplayer_Alpha_And_Beta#What_Does_Multiplayer_Alpha_Mean.3F<br />
<br />
* At the top of the networking section of the personal settings menu, there used to be an option called "Enable Multiplayer Alpha"<br />
** This had warnings about how multiplayer alpha was not ready, but that you could click this to enable it anyway.<br />
** This option has, happily, been removed!<br />
** Previously, if that option was not enabled, then clicking the Multiplayer button on the main menu would show a popup with a message from Chris explaining the current state of multiplayer and projected timelines.<br />
*** That message has been removed, and clicking the multiplayer menu now just opens it, again, happily.<br />
<br />
=== Included Mod: Civilian Industries Pre-Multiplayer Finalizations ===<br />
<br />
* Final optimizations for Multiplayer, touching up loose ends.<br />
<br />
* Many nerfs in regards to AI Raids.<br />
** A 20-40%, based on intensity, reduction to AI Raid strength.<br />
** A roughly 100% longer warning before they fire.<br />
** They now only spawn a singular wormhole per planet.<br />
<br />
* Large scale Trade optimization<br />
** The Grand Station will now output a larger amount of cargo ships on demand.<br />
** Many more Cargo Ships can accept trade routes every second.<br />
** Trade Stations will no longer be built on planets that construction ships couldn't safely reach from the Grand Station's planet.<br />
** They are now much smarter about stockpiling resources for local militia use before exporting them.<br />
<br />
* Additionally, a large number of undocumented bugfixes that were lost in the surge of all these multiplayer-based updates.<br />
** The most notable fix is a fix to the Exception that could pop up when mousing over the Raid notification.<br />
<br />
=== Multiplayer Sync V1.0 ===<br />
<br />
* Added AddBytesWithFormatAndColor() and AddBytesWithFormat() for writing bytes nicely to an ArcenDoubleCharacterBuffer.<br />
** This cuts down on our repeat code for easy formatting of things that might be in bytes, KB, or MB.<br />
<br />
* There is now some basic sync stats that will show in the escape menu during multiplayer, and then more detailed sync stats that can be turned on at will.<br />
<br />
* New setting in the network section of personal settings: Show Network Sync Details In Escape Menu<br />
** Only applies when you are in multiplayer, and has different outputs on the host versus clients. Gives statistics on how much the game has had to correct in terms of divergent data between the client and the host.<br />
** Note: The PKIDs and squads are actually checked for divergences, and those are shown in more detail on the client than the host. All the other things are sent in a periodic overwriting fashion, without checking for divergences, as the bandwidth used (which you can see with this setting on) is less disruptive than the CPU cycles required to do divergence checks.<br />
<br />
* The width of the columns in the escape menu are now a little wider.<br />
<br />
==== Fixes Based Off Testing Initial Implementation ====<br />
<br />
* Fixed a bug where the client in multiplayer was incorrectly calling a host-style method when trying to tell the host about divergences in squad sync.<br />
<br />
* Fixed a bug in multiplayer sync where the squad sync stage would never complete or advance beyond the first 20th of the squads, instead just doing those ones over and over again.<br />
<br />
* Fixed a minor bug in multiplayer where the client was telling the server about mismatches even when there were none (just sending an empty list to them).<br />
<br />
* Fixed a one-line bug in multiplayer sync that hilariously just caused all of the ships on the client to be deleted within a few seconds of playing.<br />
<br />
* Put in extra debugging for Client_AcceptDivergenceDataFromHost(), since it was having some exceptions happen.<br />
** In general at the moment, actual divergent ship data is coming across slightly garbled.<br />
<br />
* Temporarily disabled the planet and world-extras sync steps in the multiplayer sync code, as those both were throwing errors on the client side.<br />
** With those disabled, we can see that the ship sync, fleet sync, and "ultra frequent" sync all seem to be not only working great, but also not sending too much data and not slowing the game simulation down.<br />
** The garbled divergent ship data is a bummer and does mess with things, but in general it just speaks to our need for better instrumentation in that area, and is not entirely unexpected.<br />
<br />
* A new setting has been added to the networking section of personal settings: Log All Decoded Network Sync Data To Disk<br />
** Will majorly slow the game down, but dumps decoded sync messages to the disk in files inside the PlayerData/NetworkSyncMessages folder. This only covers sync-style data, but with this logging enabled on both the client and host, this is a great way to see why serialization is failing, if it is. <br />
** Enable with care! Since this data is being actively decoded as it is written, it is far larger (and in plain text) than the actual data being sent across the network. A typical ratio might be 40MB of decoded data for 500kb of actual network traffic. You can have a few GB of data on your disk after just a few minutes of letting the game run in this fashion.<br />
<br />
* Using this hefty new tool and some extra instrumentation, we were able to locate and fix the problem with the sending of divergent ship data from the host to the client.<br />
** We were simply omitting the primarykeyID for entities that were different, not deleted. Things like that are easy to miss but almost impossible to find without a logging mechanism like this. Manual code review just leads you to look right past it, especially if you've been staring at it for days.<br />
<br />
* Did a bit of an overhaul on how some of the network sync data is logged, so that we can do a folder-at-a-time comparison to find differences where any may exist.<br />
<br />
* Server_SendBatchOfSyncsBasedOnCurrentSyncStage() now has extra debugging going on in itself, because we're experiencing some sort of errors in there on the host after a certain amount of time in multiplayer, now.<br />
** Thus narrowed the problem down to Server_SendPeriodicFactionSyncDataThatJustOverrides(), and so instrumented that a lot more thoroughly... except actually the problem was in Server_SendBatchOfDivergentSquadsToFix(), we just read it wrong. So that also got extra instrumentation.<br />
*** And that was, in turn, just a simple typo on one line. Logging and instrumentation makes the impossible and time-consuming very fast and easy -- after the initial setup time cost. Very much worth it.<br />
<br />
* Found ourselves back with another error in Client_AcceptDivergenceDataFromHost-DivergencesSection. But we can't quite use the logging as it currently exists to easily diff these on a folder level.<br />
** In order to make that possible, we are switching away from using a central LogIndexThisSession Int64 for all message types being sent to StartNetworkSyncDataMessageLoggingIfNeeded, and instead are having an individual index for each FilenameBase string.<br />
*** This puts things slightly out of chronological order when we're talking global messaging, but that's because the client and server can be talking back and forth and have some different ordering between message types. We need the message types to always match up, and now they will.<br />
<br />
* Discovered that we were not properly sending the TypeData of the ships in the divergent ship fixes messages from the host. This was then causing nonsensical errors later in the deserialization of those messages.<br />
** Another great example of something we would not have found, potentially at all, without the new instrumentation.<br />
<br />
* Discovered a harmless logging artifact that we introduced into the last few versions where the header for fireteam data was behind its id on one machine, but in front of it on the other.<br />
<br />
* Thanks to the logging, also discovered an inconsistency in how fleet data was being updated, which was causing those to choke and die on the client side.<br />
<br />
* Went ahead and re-enabled the world-extras and planet syncing, since those go wrong so quickly but we now have logging on for them.<br />
** That immediately errored, but that is just fine for our purposes. Can you tell logging makes us happy?<br />
** This quickly revealed that there was something funky and inconsistent with how we were reading the planet's type. That has been fixed to be consistent.<br />
** That then revealed something a lot more complicated was wrong with how the external data patterns were being read in general, most notably on the world but definitely not limited to that.<br />
*** We improved the logging and instrumentation on the external data pattern serialization in general, and this then solved the issue on the world and the larger issue as a whole that would have come back to bite us in many other areas later.<br />
*** Then put in some more logging related to MDCExoDataExt, since it seemed to have an inconsistency. We now are marking when ExternalData is complete in the log, to make that mistake harder to make.<br />
** Then found and fixed yet more inconsistencies in how we were syncing squads.<br />
*** Also we then stopped syncing some stuff that was set to "only save on the network" (and not to disk) for squads, but it was data that really really should not have been synced because it was working fields from other threads.<br />
** And then also fixed a random extra float that we were sending after "world extras" sync. It's the sort of thing you only see in a log, as it was invisible in the code.<br />
<br />
* We are no longer syncing the IncomingShots on entities except during the initial world sync, because in general we are not syncing shots.<br />
** This is going to take some refactoring for targeting, possibly, but then again existing code will very possibly just adapt to it. <br />
*** "Catastrophic" or "planet switch" styles of sync fixes are probably not frequent enough during combat for it to be too very wrong, but either way things will fix themselves within a rolling 3-4 second window. It's interesting, because its constant attempts to heal itself in various places, while "in battle" with attrition is reminiscent of a scene with Wolverine in X-Men 3. That's an amusing thing to realize about one's code. (Let the record show that the devs really don't like X-Men 3, but that one scene was visually neat).<br />
<br />
* Fixed some potential nullref exceptions in CalculateSpeed() on ships, which really at this point mainly would happen when ships or fleets or speedgroups or some combo of that were being updated at the same time as they had something going on in the background threads.<br />
** Basically there's a whole new nest of cross-threading errors that we can run into, but there's not much we can do about them except to harden individual methods as they come up with problems, and in general also add extra instrumentation to methods if we think they have the potential to be a problem again (this one does).<br />
** This is kind of an unavoidable element of the loose way that we handle threading, which is needed in order to get the maximum speed out of the simulation and all the various threads that are involved. The client side of network sync is now a new source of these issues, but it's not remotely the first of them. We'll probably be swatting this sort of thing down throughout the alpha and beta of multiplayer. And then SirLimbo will somehow find a way to run into exceptions that no one else sees for the next two years. ;)<br />
<br />
* At this point we can confirm, based on our detailed logging, that multiplayer is able to successfully run for a solid four or five minutes of gametime (at 5x sim speed) and come out with consistent results the entire time.<br />
** This leads to about 2600 network log files for the sync messages, which are about 100MB per computer, and this substantially slows down the game from running at an unencumbered pace (the disk writes are heavy).<br />
** Of course, as soon as we turned off the logging, we ran into some sort of new gameplay thing which caused issues in the ship sync code. So there are still some goblins in there, probably related to certain types of data that are not on every ship.<br />
<br />
* Added a new setting to the network section of personal settings: Log Decoded Network Ship Sync Data To Disk<br />
** Same as the 'Log All Decoded Network Sync Data To Disk' setting, but only writes data for actual divergent ship fixes. Since that is one of the more-likely-to-break areas of sync, but only something like 1/15th of the actual data being passed around, being able to isolate it to this is helpful.<br />
<br />
* Fixed an issue where the current galaxy map display mode, and the current planet index you were viewing, would be reset by the sync data on clients in multiplayer.<br />
** It now takes in that sync data only for non-local player accounts. Clicking to another planet only to have your view bumped back a second or two later was MILDLY frustrating, heh. And also slightly hilarious.<br />
<br />
* Discovered and fixed an issue where if a partial sync was sent from the host to the client about a ship that the client had no knowledge of, then the client would try to read it as if it was an off-disk sync and thus read things incorrectly and fail.<br />
** This will probably be elsewhere in the code as well, so we will potentially need to review a lot of other data structures.<br />
<br />
== Beta 2.134 Searching For Planets ==<br />
(Released September 7th, 2020)<br />
<br />
'''This one is still on the beta branch on Steam and GOG, since we have continued making lots of substantial changes to the central serialization logic for the game in service of the multiplayer sync code. We're now done with what would constitute V1 of the MP sync code, so we can come out of the beta branch tomorrow so long as no one runs into any problems with single player on this build. As for multiplayer itself, we have a fair bit of testing to do to make sure that the MP sync code is doing its job and not exploding RAM usage on the clients or harming performance, etc. Once that's verified and all the bugs we find in testing the MP sync code are fixed, then we're officially into an alpha status with multiplayer. Given that the V1 of our sync code turned out to be far more thorough than we originally planned, the multiplayer alpha period should hopefully be shorter than it would have been.'''<br />
<br />
* Extragalactic war ships are no longer classed as 'small' when hovering the Planets Under Attack notification<br />
** Thanks to crawlers for the bug report<br />
<br />
* The Dyson Sphere produces a small number of drones, as well as its usual ships. Those few drones no longer leave the sphere's planet<br />
** Thanks to GreatYng for reporting<br />
<br />
* Update the time estimates for releasing multiplayer and DLC2<br />
** Thanks to ParadoxSong for reminding<br />
<br />
* There's now a Journal entry for when the AI can send extragalactic war units, so they won't come as a surprise<br />
** Suggested by zeusalmighty<br />
<br />
* Fix a bug where the Helping Hands 2 quickstart was broken<br />
** Thanks to Spook for reporting<br />
<br />
* QoL tweak for repair. Any ships on a planet where you outnumber the enemies 10 to 1, or the enemies have less that .2 strength are eligible to be repaired immediately.<br />
** The previous rule was 'Any ships on a planet without any enemies' which could be frustrating if you were trying to hunt down a few cloaked ships.<br />
** Thanks to crawlers and Isiel for suggesting<br />
<br />
* Some minor tutorial tweaks<br />
** Thanks to MasterGeese for reporting<br />
<br />
* The extragalactic war spawning notification message now uses 'a' and 'an' appropriately<br />
** Thanks to Ovalcircle for reporting<br />
<br />
* Update the Description for the snake map to mention that it's very hard<br />
** Prompted by a discussion on the forums<br />
<br />
* When you have the galaxy setting for Adjacent Planets Watched, it now takes that as the baseline and is increased by things like Economic Command Stations and Spy Cradles.<br />
** So if you have "Watch 1 adjacent planet" then a military command station will watch 1, but an economic will watch 2<br />
** Thanks to ParadoxSong for suggestion<br />
<br />
* Small update for MoreStartingOptions by AraudB:<br />
** Inordinate had 10 plasma turrets rather than 2. Fixed the number of stations in the mod description too.<br />
<br />
* Removed a blank "Fleet Experience" section from the tips window.<br />
** Thanks to Isiel for reporting it.<br />
<br />
* Several different spots that could throw errors if fleet membership was null now no longer do.<br />
<br />
* DoEntityStepLogic_Ship now has better debug logging.<br />
<br />
=== Multiplayer: Sync Correction V0.90 ===<br />
<br />
* Added a new SerializationCommandType, which has three values:<br />
** NormalFullType, Network_ContinuousPersistentSync, and Network_DuringDetailedNetworkSyncStage.<br />
** This is now used on Factions in order to differentiate the three major types of serialization that we might be doing.<br />
<br />
* The ExternalData on factions is no longer synced as part of the "every frame" IsForNetworkContinuousPersistentSync.<br />
** And actually a bunch of other stuff on factions is now limited out so that it's not over-saturating certain data while it IS still sending other things every frame auth.<br />
** This is also of relevance because it means that any faction externaldata that is not fully optimized to not thrash the GC will inherently do less thrashing of the GC. So that makes mods a little more safe in general in multiplayer.<br />
<br />
* Fixed several parts of the faction object to be efficient and not thrash the GC in the way that we were doing for the ExternalData last build:<br />
** TechHistoryEvent, HackingEvent.<br />
<br />
* FromServerToClient_SendAllOtherSyncDataThatJustOverrides has been renamed to FromServerToClient_SendUltraFrequentSyncDataThatJustOverrides, because it no longer is "all the other data." It's just the most common stuff.<br />
** Added new new messages for time-sliced sending of the following: FromServerToClient_PeriodicFactionSyncDataThatJustOverrides, FromServerToClient_PeriodicFleetSyncDataThatJustOverrides, FromServerToClient_PeriodicPlanetSyncDataThatJustOverrides, and FromServerToClient_PeriodicWorldSyncDataThatJustOverrides.<br />
<br />
* The full-faction-data sync even has been implemented on the client and the host, and now includes speed groups (which previously we felt like were too heavy to send on the ultrafrequent channel -- which was correct).<br />
** This also means that we needed to make the SpeedGroups be nice to the GC on deserialization, so that's done.<br />
** Also fixed several oversights that would have led to hard-to-diagnose endless inflation of array contents for various faction items. Yow. These sorts of things will be hard to find any other way than manual code review, and can be in mods or the main game and can cause massive slowdowns with no central way to diagnose it. These will be "fun" to find in the future.<br />
*** Essentially lists like FactionIndicesIAmAlliedWith were being added to each frame without ever being cleared before the new set of data was put in. This would only happen during multiplayer, and only on the client, but would start causing all sorts of problems.<br />
<br />
* Planets and planetfactions and their externaldata have now gotten the same treatment that factions did.<br />
** Here again there were a couple of infinitely-expanding lists that are now fixed.<br />
<br />
* Whew, okay, fleets and their memberships have also been updated to the new style.<br />
** This... is going to be very problematic, the way it currently exists. This first checkin of the fleet memberships in particular is going to be very problematic indeed, for a whole lot of reasons, but it's a good start for refactoring.<br />
** Essentially, fleets are so bloody complicated the way that they exist right now (in terms of data structure under the hood) that they can't work cleanly in multiplayer without a bit of refactoring. The positive news is that we can make potentially even single-player slightly more efficient with this refactor, but it's going to require redoing drones and a few other things along those lines.<br />
** Edit: the below solves our issue for the time being, although we may still make some changes in this area in the future to make things easier. We're no longer FORCED to, though, which is nice.<br />
<br />
* Came up with what is hopefully a clever use of our existing sync infrastructure to handle the cascading wrong data that can happen from the current fleet structure. This was something that has us stumped for a bit, because doing the most efficient sync style for fleet memberships could lead to units that were in the wrong membership after that.<br />
** The simple solution is the fact that we do know when we are hitting such a case, and so we can just tell all those units to kill themselves on the client. They will then naturally and fully re-sync from the host within 2-3 seconds.<br />
** This is the sort of thing that we want to minimize, of course, but the worst case is having something be permanently wrong in a MP game and us not being able to fix it. Later logic can always do something to sync these back quicker, or to minimize the number of times these are being hit if it is frequent, etc, etc.<br />
** For now we're just monitoring (in the UI) how often it happens, and we can make decisions based off of that... as people choose to share that data about their sessions with us. We may implement some sort of automated data reporting that people can opt into if things seem problematic, or if we think we're not getting reports on things like this but it does seem to be a problem for people.<br />
** At any rate, priority one is making it work properly in the long term of a game even if there is a snafu for a few seconds on a client, and priority two is minimizing or erasing the snafus.<br />
<br />
* Various central world data is now synced from the host to clients every few seconds/<br />
** Among other things that were more intentional, this actually lets clients know the status of other clients pretty rapidly (aka, seeing that someone else is disconnected or connected).<br />
** This should have all the central items of relevance nicely synced, although we are skipping the "world history" and "journal history." For those, if they are really needed, we may just introduce a new sync stage to time-slice the processing of those. But frankly they are not likely to get out of sync.<br />
<br />
* At this point it will be time for us to test our sync code, which is utterly untested at the moment. But the design and implementation of V1, except for actually testing it, is complete.<br />
<br />
=== "Find Planet" Command ===<br />
<br />
* Added a new extension in our central ArcenStrings which lets us do a case-insensitive Contains() call (for purposes of searches, etc).<br />
** This is useful for a variety of purposees, and lets us do partial comparisons (not just Equals()) calls) without having to cast to lowercase.<br />
<br />
* Implemented a new [https://wiki.arcengames.com/index.php?title=AI_War_2:Cheats#Debugging command], "findp", which lets you search for planets via the chat command:<br />
** Formatting is like this: "cmd:findp,gear" (minus the quotes).<br />
*** This example would search for the text "gear," and would bring up results "Geary" and "Gearworld" and "geaRson" if all three of those existed in one galaxy.<br />
** It tells you how many results there are, and if there is more than one result, then repeat entering of the same command (just press up and enter) will cycle you through them. It tells you that it will cycle you through them if there are more than one.<br />
** If you are on the planet view, it switches you to the planet view of that other planet. If you are on the galaxy map view, it centers the galaxy map on that planet.<br />
** Thanks to cml for the initial implementation of this as a mod.<br />
<br />
* Added a new "Quick Tip" item, which shows up randomly on the starting screen as well as in that section in the tips section: Searching For Planets By Name<br />
** During the game, if you hit enter/return to bring up the chat window, and then type 'cmd:findp,yoursearchhere', you can search for planets by name. If you type part of the name of a planet, then you can hit up and enter to issue the command repeatedly and cycle through multiple hits if there are any.<br />
<br />
== Beta 2.133 Hotfixes ==<br />
(Released September 4th, 2020)<br />
<br />
'''This one is on the beta branch on Steam and GOG, since there were a number of problems with the prior build that prevented adequate testing. Once we have confirmation of more people able to play this new version without incident, we can move back out of the beta branch.'''<br />
<br />
* Fix typo in Full Badger tooltip<br />
** Thanks to Breach for reporting<br />
<br />
* Nanocaust now uses a darker border colour<br />
** I forget who mentioned that this looks much better<br />
<br />
* The Nanocaust might now play a bit of defense<br />
<br />
* Improve the way a player's Overall Power Level is calculated<br />
** A player can now have a high enough Overall Power Level to trigger Extragalactic War Units without allies if they are on difficulty >= 7<br />
<br />
* Dark Spire ship line hacks no longer destroy the VG<br />
** Thanks to Sol for reporting.<br />
<br />
* In Steam, the default launch style is now OpenGL, rather than Vulkan.<br />
** As noted, this is the preferred launch style, and more stable.<br />
** Thanks to TechSY730 for suggesting.<br />
<br />
=== Fixes Relating To Prior Beta ===<br />
<br />
* Fixed several areas where trying to check a non-existing setting (potentially because it was from a mod or expansion you don't have installed) was causing issues.<br />
** This is a problem dating back months to when we changed how lookups to missing settings worked, but we're only now seeming to hit it in the most recent betas.<br />
** Thanks to Badger and others for reporting.<br />
<br />
* A variety of extra debugging info has been put into some of the high-level world serialization areas for our logs when problems happen.<br />
** Also put in a bunch more into fleets and fleet memberships for debugging purposes.<br />
<br />
* Identified two fields from fleet memberships that were not properly translated over into the new format in the last beta build, causing all new savegames in that beta to fail to load.<br />
** Now that this is fixed, the broken savegames all seem to load just fine, which is always nice when that happens.<br />
** Thanks to StarKelp, Sol, and ArnaudB for reporting.<br />
<br />
* The "Civilian Industries" mod by StarKelp has been updated to function in the new code framework we introduced last build.<br />
** All of the mods we distribute with the game are again working at the moment, to our knowledge, now. Code-style mods from other sources (forums, etc) may not be updated yet to compatibility with this latest set of builds.<br />
** Please note that we broke compatibility on purpose (not a typical thing), to add multiplayer functionality to mods and make sure that no mods would cause unpleasant spikes in memory usage on client machines in multiplayer.<br />
<br />
== Beta 2.132 Exterior Leviathan ==<br />
(Released September 3rd, 2020)<br />
<br />
'''This one is on the beta branch on Steam and GOG, because we made so many changes to some fundamentals of how the game works. These are driving at improvements for multiplayer, for the partial syncs to be able to happen, but they break code-style mods for the game (including Civilian Industries as included in this version), and it's possible that they temporarily are breaking something else since we've changed several thousand lines of code in a few dozen files and may have made an error in any one of a number of places. Some bits of multiplayer sync are a bit more hefty than we'd been thinking they might be for V1 of that, but then again we're getting more of it done upfront rather than later. We'll be able to start actually testing the sync maybe tomorrow, unless a bunch of other things are broken by our changes.'''<br />
<br />
* Dyson Spheres now must kill all the guard posts on a planet before they can kill a reconquest command station. This should prevent a buildup of guard posts. <br />
** Thanks to TechSY730 and Khankar for reporting<br />
<br />
* Fix some bugs with Usurpers owned by praetorians or other AI subfactions<br />
** Reported by GreatYng<br />
<br />
* Try harder to make sure waves against minor factions have ships<br />
** Reported by GreatYng<br />
<br />
* Fixed some minor typos<br />
** Reported by GreatYng<br />
<br />
=== Multiplayer: Sync Correction V0.75 ===<br />
<br />
* New setting in the network tab of personal settings: Network Logging Includes Sync Checks<br />
** During gameplay there are messages sent by the network as frequently as several every 100ms, and these are one of the largest sources of data usage. This lets you see the timing and payload size of those messages, if you think that potentially they are what is slowing things down in a networked environment.<br />
<br />
* Stripped out a lot of old code that was related to an old style of sync (aimed at desync detection), and started building in the new sync framework (aimed at detecting micro desyncs and correcting those).<br />
** Decided to move this to a new AIWar2NetworkSync static class in its own file, as after just getting about a third of the way through this logic, it was clear that it was pretty sizeable and overwhelming the rest of the networking code's readability.<br />
<br />
* Added in the logic for the server keeping a list of ships that the various clients have told it are divergent.<br />
** The server could be getting overlapping reports from several clients, but we need only one copy of this, because we're going to err on the side of caution and tell every client about each bit of sync data that needs fixing.<br />
** We could always change this in the future if there seems to be a bandwidth benefit to this, but it would probably just mean extra processing on the host for more unique sends per-client. At the moment we judge that to be the resource that is more scarce.<br />
<br />
* The logic for removing ships on a client that were not part of the last sync cycle, but also not new during that cycle, has been put in place.<br />
** The idea here is that these ships probably died on the server, and the client didn't know for some reason.<br />
<br />
* The logic for having the server do send check data for 1/20th of its ships (or stacks or whatever, as the case may be), but no more than 9000 per 100ms, is now in place.<br />
** This is the meat of the desync detection code, and it is based around only a very few factors:<br />
*** Health lost, shields lost, extra ships contained within (of ANY fashion), current planet, and current location.<br />
*** We are generally making the assumption that if all of those things match between the client and the host, then the ship is probably in sync.<br />
**** In the case of certain faction ships that do things like gather resources or whatnot, that will obviously be very incorrect, but it is correct for most combat ships.<br />
**** For those cases where faction-specific data is potentially going to be wrong, it would be prohibitively expensive to add a bunch of checks based on that extra faction data, so we will build in separate tools for forcing sync of these non-combat factors.<br />
**** Frankly, other things like fireteam history, which would be missing on the clients, could be synced via other methods later on if we really want to. Though that's generally only used for debugging in most cases, so seems not to be worth doing.<br />
<br />
* The logic for clients checking for mismatches with their local data compared to the server is now in, and it sends back the requests to the server to have divergent units corrected.<br />
<br />
* On PlanetFactions, there is now FactionIndex and PlanetIndex directly in order to make it easier to quickly find those in case they have been reassigned.<br />
** Additionally, their Faction and Planet member variables are now exposed as get-only properties to keep unexpected things from happening there.<br />
<br />
* The way that squads deserialize has been updated substantially to allow for several levels of partial deserialization for various sync scenarios.<br />
** The sync fix code allows for normal-level same-planet sync fixes (which should hopefully look very nice with things sliding visually into new positions if positions differ).<br />
** The sync fix code then also allows for normal-level different-planet sync fixes, which instantly disappears the old spot and puts it somewhere new.<br />
** And finally, the sync fix code allows for catestrophic-level sync fixes, where the two entities aren't even the same (not matching faction or type), and it destroys the old one instantly and as invisibily as possible, and then puts in the new one where it should be.<br />
*** This last category is for basically when the primary key ID generators are out of sync between the host and one or more clients. These will be hit with some regularity, but they should not be hit over and over for the same unit.<br />
<br />
* The deserialization logic for "fleet memberships" has been split in such a way that we can now sync just some of the data into them (for network purposes).<br />
** We are not using this yet, but will once we get into the fleet sync phase of the sync cycle (outlined below).<br />
<br />
* CalculateContentsCount() on squads now takes a required parameter IsForNetworkSyncCheck.<br />
** If that is true, then it ignores any data that is not on the squad (but is usually on the fleet or the "fleet membership" areas.<br />
** This is things like drones or transported ships, and city sockets. These will be something we sync at the fleet level.<br />
<br />
* Network_CurrentSyncCycleNonSer has been moved off of the World_AIW2 object and into the AIWar2NetworkSync class.<br />
** Same with the OnServer_SquadsNeedingSyncFixes dictionary.<br />
<br />
* The server now cycles through a series of "sync stages," where it will sync different things other than just squads.<br />
** This is useful for us to be able to time-slice syncing of data of different sorts... for instance fleets and fleet memberships data.<br />
** We actually are now going to use this for separating out the squad sync checks and the divergent squad fixes, too, since time-slicing that is good for smooth gameplay as well as also making sure that multiple clients with partially bad sync cause as few excess sends as possible (that's a ms timing thing).<br />
*** The code for syncing the squads that were divergent is now in, as noted above.<br />
<br />
* The data for factions, and for some of the Primary Key info, is now synchronized from the host to all of the clients every authorized network batch.<br />
** On average this is probably anywhere from 10kb to maybe 40kb, at most. It's easier just to keep this in sync.<br />
** At the moment, for ExternalData on factions and squads, there is a huge amount of inefficiency on the clients in that it is completely recreating objects every network sync right now. We are looking into various refactoring options.<br />
<br />
* At the moment we are explicitly not syncing SpeedGroups, since those are complicated and may tend to diverge.<br />
** We are probably going to wind up refactoring these to be by faction, or something along those lines. In fact, there are several major refactors coming, and one of those may be that a lot of the PKIDs may become faction-specific in general.<br />
<br />
* Turns out that adding the NetworkSyncStage as a concept was a really good idea, because we not only need to sync squads and fleets, but also planets and some data off the world, too.<br />
** The faction sync is happening once every sync frame, but it's possible we might back off the frequency of some of that if it becomes too harsh. Mainly for ExternalData stuff. But for now we'll see how it does.<br />
<br />
* Planet has now had its data split out like squads and fleet memberships and factions and some other classes to have its own DeserializedIntoSelf() method.<br />
** Also PlanetFaction. Whew, wow. For this it doesn't sync the entities during the partial sync, of course, unlike during disk or main network sync.<br />
<br />
==== "ExternalData" Updates That Affect Mods ====<br />
<br />
* The ExternalData framework has gotten a few updates to allow for us to do partial-syncs like we now do with squads and such, versus always just creating something new.<br />
** Any mods that use ExternalData will need to be updated to use the new pattern, although it's not a huge change.<br />
<br />
* FireteamRequiredTarget has been updated to have a DeserializeNewFrom and DeserializedIntoSelf, to ensure that what we are doing is intentional.<br />
** Since this is a class, not a struct, it's highly efficient for us to be able to write to an existing class rather than always replacing it, even in single-player.<br />
<br />
* The following "external data" has been updated to be dramatically more efficient with syncs during multiplayer, employing a variety of strategies that we're using in the main game stuff:<br />
** WormholeInvasionDataExternal (this one is basic and simple)<br />
** AI_PlannedWave_Data (this one is complex in that it has a list of sub-objects and shows how to handle that properly. It even gets rid of theoretical extras on the client machines)<br />
** DoomData (this is really old style in terms of the data, and is not used actively, but does show a way to handle the multi-part sub-data well).<br />
** ExternalData_AIFactionCommon (this one is ridiculously complicated and used for a couple of factions)<br />
*** ExtragalacticBudget and AIPChange as a part of this, and are good simple examples. These don't even have the new bool passed to their sub-objects, because both the DeserializeNewFrom and DeserializedIntoSelf() methods can both validly be used as part of one during-game sync (depends on relative list length, see code).<br />
*** StoredAIPurchaseCostByBudgetForSpecificUnits is a good example of where it's better to just use a bit of extra GC (especially with the new time-sliced GC unity now has) instead of doing extra CPU processing to be a hair more efficient with that memory.<br />
*** Fireteams themselves have changed from having a constuctor for deserialization to having a DeserializeNewFrom method that makes it a bit more explicit what is happening. We also pulled out the id deserialization so that we could reuse Fireteam objects as much as possible if they are being updated.<br />
** DysonExternalData and DysonAntagonizerExternalData (another two examples of the simplest possible cases for updating a modder might have)<br />
** MacrophageGlobalData, MacrophagePerTeliumExternalData, MacrophagePerSporeExternalData, and MacrophagePerHarvesterExternalData, which are also very simple examples.<br />
** RiskAnalyzerData is even simpler, with no sub-objects to modify.<br />
** AIReservesDataExt is seemingly simple, but is dodging accidentally creating two sparse lookups internally on each sync.<br />
** AstroTrainsGlobalExternalData, AstroTrainsPerDepotExternalData, and AstroTrainsPerTrainExternalData are all pretty straightforward, although we saved ourselves a lookup load on AstroTrainsPerDepotData.<br />
** AutosaveDataExt, even though it's not really even needed on the clients at all. Since it has some sub-data that is in a list, and in string format, we're just not bothering to send that to clients at all during syncs since it is a waste of bandwidth.<br />
** DarkSpireData, which has some complexities with the sub objects DarkSpirePerPlanet. It has special notes in the code for any similar cases with a sparse lookup and sub-objects.<br />
** Two "DZ" items for DLC2, which was wildly complicated to convert compared to most things. It involved sub objects DZResourceConversion, and DZUpgrade, among other nested objects. Mostly it was a good example of just following the existing principles on down, but there is one ConversionBag that was tricky enough that we're just clearing and refilling it in a somewhat GC-wasteful way rather than going into the extra complexity and perhaps incorrectness of doing it another way.<br />
** AntiMinorFactionWaveDataExt, ExoDataExt, and MDCExoDataExt, which thankfully were all trivial examples of the common case.<br />
** ExternalData_GroupTargetSorting, which has nothing formal to save or send.<br />
** InstigatorPerUnitDataExternal and InstigatorDataExternal, which again the simple common case.<br />
** SpawnAnimationData and DespawnAnimationData were very old and probably not used, but simple to upgrade.<br />
** MarauderOutpostRaiderSpawnData is again the simple common case.<br />
** MercenaryUnitExternalData and MercenaryGlobalExternalData, which had some more notable complexity. MercenaryBeaconState upgraded with WorkingHasBeenUpdatedThisDeserializationCycle to handle its situation. MercSpawnRequest just does it the inefficient way since these rarely exist, and only exist for a short period when they do. SingleMercenaryGroupState is a strange bit of data, and gets handled in a novel way. Thankfully MercenaryUnitData was a trivial case.<br />
** ExternalData_FactionCommon is old and strange, but was not too hard to update.<br />
** ExternalData_MinorFactionCommon was super old in its styling, but already was efficient enough.<br />
** NanocaustMgrData, NanocaustPerUnitDataExt, and LastSpawnTimestamp are all extremely simple. The old FrenzyFleet stuff is still kinda-sorta there, but never has data since it is legacy, so that shouldn't cause any GC churn.<br />
** FallenSpireGlobalExternalData and FallenSpirePerUnitExternalData had a few quirks, but mostly were the common case with some minor array clearing and preservation.<br />
** One "NP" item from DLC2 required pretty minimal updates to work with this, hooray.<br />
** ScourgeGlobalExternalData and ScourgePerUnitExternalData were both the common case with a tiny bit of list/dict management.<br />
** Two "ZA" items from DLC2 are mostly the common case but with some collection management added in.<br />
** Two "ZM" items from DLC2 are also mostly the common case with a bit of collection management.<br />
** HRFDataExt and MarauderDataExt both were also mostly the common case with a bit of list management. There is a question mark about the regiments aimed at planets, on this and a few other locations, but they are at worst going to be inappropriately blanked out over and over again on clients in MP, which we can fix later.<br />
<br />
* In general, any of the usages of IArcenExternalDataPatternImplementation in mods should be updated to follow the new examples in the main code. The changes are not severe.<br />
** The most important changes are the ones above, relating to SerializeExternalData() and DeserializeExternalData() taking an extra parameter, and then each handling a graceful DeserializedIntoSelf() sub-method (and choosing if there's some data not to sync across during gameplay if required). But beyond that, there are some more changes:<br />
** RelatedParentTypeName has been removed, as it was never used. Same with GetShouldInitializeOn.<br />
*** During InitializeData, the object ParentObject is being cast into an appropriate-type Parent object for general usage, (aka GameEntity_Squad, Faction, whatever) that people can then later use. If the type is wrong, it will just come across as null, and we have it complaining if that's the case. You can do the same or omit that part if you don't care.<br />
<br />
=== Third Off-By-Default Mod: More Starting Options By ArnaudB ===<br />
<br />
* The More Starting Options mod by ArnaudB is now included with the game by default (with permission), but disabled.<br />
** Requires The Spire Rises expansion (DLC1).<br />
** Pick between seven starting fleets and twenty starting battlestations for your custom games. These choices are balanced for regular play and are acceptable to use for achievements.<br />
** The eight starting fleets will offer you a more varied combination of ships so you may explore more varied combinations of technologies and playstyles than those incentivised by the default options.<br />
** The twenty starting battlestations will let you play and test every of the many turrets brought by The Spire Arise DLC, which are otherwise completely absent from the default starting options. You’ll find multiple combinations for both offensive and defensive playstyles, balanced for your enjoyment and giving you hints as to what synergies you could make with a few turrets or ships.<br />
** This mod is off by default as to avoid paralyzing the player by offering too many choices. <br />
** You can activate this as a new player unsatisfied with the default options, or as a veteran wishing to vary your experience of the game.<br />
<br />
=== Mod: Civilian Industries Updates ===<br />
<br />
* Civilian Industries 0.6.4<br />
** Full update notes may be found on the forums: https://forums.arcengames.com/ai-war-ii-modding/civilian-industries/msg222774/#msg222774<br />
*** A large number of code optimizations, directly mostly at performance and multiplayer readiness.<br />
*** An overall nerf to Mobile Ship counts, but a simplified formula will allow easier future modification.<br />
*** A rework to the Barracks. Now scales with Mark Level, Command Tech, and can even let you get more Protectors at mark 7.<br />
*** Buffs to many Protectors. Balance for them is still being worked on.<br />
*** Resources renamed across the board, and structures now state what technology works for what resource.<br />
*** A notification will now show when a Raid is about to fire against your civilians, thanks to Chris' recent changes on the notifications front.<br />
<br />
== Version 2.130 Redux: Dutch Cities and Softer Eyeballs ==<br />
(Released August 31st, 2020)<br />
<br />
'''We accidentally forgot to increment the version number in game. So this would have been 2.131, but is just called 2.130 in the game. Sorry about that, this is perhaps a first?'''<br />
<br />
* New planet naming style added, with over 4000 names in it: Cities (Dutch)!<br />
** Most Dutch cities, villages, and hamlets shorter than 10 characters; also includes many local spelling variations. Created by GreatYng.<br />
** Thanks to GreatYng for creating!<br />
<br />
* Added a new xml tag, external_invulnerability_unit_required_count, which works with external_invulnerability_unit_type or external_invulnerability_unit_tag.<br />
** This basically lets us say that a unit of whatever sort is still protected by others (such as guard posts), but only if there are more than the number specified.<br />
** The default number is 0, which means the previous behavior of "any guard posts present make this invulnerable."<br />
** For AI Eyes, the number is now 3, which means that if there are not at least 4 guard posts remaining on a planet, you can go kill the eye.<br />
*** This is pretty huge, because you can now kill just part of the planet and then kill the eye before going to kill everything else.<br />
** If we need to make further adjustments to the Eyes based on the relative ratios of strength of them versus enemies, we can do that in the future, but for now this is a solid start.<br />
** Thanks to Lord Of Nothing and CRCGamer for reporting.<br />
<br />
* Further balance adjustment: all AI Eyes are no longer Mark 7 at minimum. They are now Mark 5 at minimum, and if their planet would have a higher mark (6 or 7) then they will instead have those higher marks.<br />
** This should help to make a bit more variance with them, and eyes to be a bit less of a pain in general.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fixed HRF Nucleophilic Defenders as well as other defender types not being loadable into transports. Additionally they now count as Frigates and benefit from their hull/shield/damage settings.<br />
** Thanks to Darkshade for reporting and -NR- SirLimbo for fixing.<br />
<br />
* Fixed a couple of issues relating to getMostCommonPlanetForRegiment() with fire teams, which were likely leading to who knows what other errors.<br />
** The PlanetsForRegiment Dictionary was declared as static, and so all of the regiments were trying to use the same dictionary at once, leading to exceptions as well as probably wrong results. Exactly how much chaos this could have caused is unclear, but with some of the LRP threads stalling out this is certainly not going to help (fingers crossed it was the whole thing).<br />
** Now if getMostCommonPlanetForRegiment() is called again on the same regiment before it finishes, it will throw the error "BUG: called getMostCommonPlanetForRegiment() again for a fireteam regiment before the last call finished. Will break both calls." Hopefully we don't have people getting this, but if we do we need to know about it to fix that. In that case, the workingPlanetsForRegiment dictionary can't work as a member variable at all.<br />
** Additionally, if there's an exception in getMostCommonPlanetForRegiment() it will now throw an exception but then exit more gracefully, letting whatever calling code keep doing its thing.<br />
** Thanks to CRCGamer and TechSY730 for reporting.<br />
<br />
* A few versions back, we made some changes to how the icons are rendered on the galaxy map, including planet icons. We made them keep their orientation better, but one of the things that was an unfortunate side effect of this is that the colliders on the lines between planets were often taking precedence over the actual planet or the ships at the planet. That is now fixed.<br />
** Thanks to TechSY730 and CRCGamer for reporting.<br />
<br />
* Heavily reworked how Journal_TooMuchAIP calculates both how many planets you have paid AIP for, as well as how many planets are neutered. It was triggering the journal entry far too early, previously.<br />
** Please see the code or here for details: https://bugtracker.arcengames.com/view.php?id=23609<br />
** Thanks to Sigma7 for reporting, and Badger for helping figure out what was wrong.<br />
<br />
* Fixed old wording on the AI Eyes that still said "when there are enough fleets present on this planet" to instead read "when it is sufficiently outnumbered on this planet."<br />
<br />
== Version 2.130 Civilian Industries ==<br />
(Released August 29th, 2020)<br />
<br />
* For determining what your performance is like, the game now uses only one second of data instead of ten seconds.<br />
** This makes the sim speed average a lot more responsive and natural-feeling.<br />
<br />
* The "suppress upgrade prompt" setting and keybind now both work on fleet upgrades and not just science tab upgrades.<br />
** There is some extra info in the tooltips and popups to reflect this, as well.<br />
** Thanks to Fritz1776 for suggesting.<br />
<br />
=== Second Off-By-Default Mod: Civilian Industries By StarKelp ===<br />
<br />
* The Civilian Industries mod by StarKelp is now included with the game by default (with permission), but disabled.<br />
** This lets people simply enable the mod by clicking a button in the settings menu, rather than having to find and download the mod from elsewhere.<br />
** StarKelp has been a volunteer contributor to the main codebase off and on for a while, and this mod contains both code and xml.<br />
** Full description of the mod is included in the tooltips in the game, but also here:<br />
*** Every empire is only as strong as the people within.<br />
**** Protect your people, and they will help your empire flourish.<br />
**** From collecting and processing various resource around the galaxy to bolster the economy, to taking up arms on their own to aid your survival, you'll find their help invaluable in the long term.<br />
**** As they flourish, so do you.<br />
*** Adds in the Civilian Industry faction, a potent defensive faction that can be allied to either a player, or a faction team.<br />
**** They will expand alongside their respective ally, and produce a large number of defensive forces to aid their team.<br />
**** They gain a new resource type per planet they expand to, and will work diligently to spread these resources throughout their empire.<br />
*** When allied to the player; you will find your command station and battlestations have access to a few new structures that you can invest in to greatly incresae the power of your civilian economy.<br />
*** Please check Galaxy Settings for many tweaks in regards to how they behave.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fixed a bug in GetIsWithinRangeOf() that could happen in the selection logic (and probably other places) if a background thread marked a unit as deleted as it was doing the range check.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
* It is now possible that your logs will wind up having the message "BUG: overriding speed limit for group X to [a negative number below -1]. Overflow? Setting to -1 instead."<br />
** If this is frequent, it may slow down your game, but the stack traces will let us know where we are going wrong and causing this to happen.<br />
** We fixed one area where MAYBE this could be caused, but probably that was not possible in the place we fixed it. Most likely the problem is in something that is calling GameCommand_CreateSpeedGroup with a command.RelatedIntegers[0] that is greater than the 32767.<br />
*** With that in mind, anything that is larger than that being passed into that method is now automatically corrected down to 32766. This may lead to some turbo speed groups, not sure, but at least they won't be erroring... and that IS what the calling code is asking for, so maybe it's intentional?<br />
** At the same time, in some other places in the code where it was checking to apply the speed only if it was "not -1", it is now checking to apply the speed limit if it is "greater than 0." This seems more like the correct intent, and hopefully won't break anything.<br />
** And beyond that, prior to serialization, any speed groups with an OverrideSpeedLimit less than -1 will automatically just set their value to -1 silently and thus avoid popup errors that could be really annoying in savegames for folks. This has been an issue on and off since July 24th, apparently.<br />
** Thanks to Lord Of Nothing (twice over), TechSY730, GreatYng, and Apthorpe for reporting.<br />
<br />
* Add a new time_must_have_been_on_planet_before_transforming_if_outnumbered_or_outnumbering, for use with transform_when_outnumbered and transform_when_outnumbering.<br />
** This defaults to 0 seconds, which has been the behavior in the past.<br />
** But now for all of the ships (mostly AI Eyes, but also some guardians) that use transform_when_outnumbering, it now has a value of 2.<br />
** For those that use transform_when_outnumbered, it has a much higher value of 30, to keep them from downgrading their alertedness too easily.<br />
** The AI eyes will still switch between alerted and unalerted status every so often in a general battle, since their alerted status increases the balance of battle in their favor so much, but now it won't be a constant thing and ships can continue targeting them in a reasonable fashion.<br />
** Thanks to whakomatic, Ovalcircle, MasterGeese, Gdrk, and GreatYng for reporting.<br />
<br />
* Additionally, previously anything that was transforming via one of those two methods was having its health and shields and cloaking points all reset to full.<br />
** Now, however, when transformed via these two cases ONLY, it keeps the health and shields and cloaking point losses after transformation.<br />
** This makes it so that battles with AI eyes are actually something you can win, even as they cycle back and forth between statuses. And in general this just makes sense, and is important on the dire guardians that use this same sort of mechanic, too.<br />
** Thanks to whakomatic, Ovalcircle, MasterGeese, Gdrk, and GreatYng for reporting.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* GameCommandTypes are now serialized by index rather than name, which chops off the vast bulk of size from most GameCommands, leading to even snappier networking.<br />
** Honestly this is a very small boost in most cases, but this also took like two minutes to add.<br />
<br />
* The network traffic logs have all been updated to be able to actually report how many bytes were read in for each message that the host or clients receives. Before it was saying ?? because we were checking prior to doing the reading.<br />
** Note that depending on the networking platform in use, there is sometimes extra buffer data that was read from the socket, but if it wasn't part of the game, we just ignore all that. This is also ignoring packet header sizes, so we're just talking payloads here (but that's consistent with the send records, too.<br />
<br />
* In the escape menu, on clients and the host, it now has a new Multiplayer Stats section when you are in multiplayer mode only.<br />
** At the moment, this shows how many messages have been sent or received in total, and how many bytes/kb/mb have been sent.<br />
*** These all apply to the current session only. So if you are the host, it is the stats since you loaded up the server and people started connecting. If clients come and go, it's including all of that. If you're the client, it's the amount since the last time you connected; if you disconnect and then come back, it starts over.<br />
** This is pretty important information in terms of figuring out just how much data is actually being sent back and forth, and how it changes during gameplay, so that we can react to any unexpected spikes if there are any.<br />
<br />
== Version 2.129 No Shrooms For Ships==<br />
(Released August 28th, 2020)<br />
<br />
* Nanocaust now prioritize holding planets adjacent to their homeworld<br />
** Thanks to crawlers for reporting<br />
<br />
* The nanocaust units now prefer to spawn a bit further from their centers; it looked kinda weird when a giant Nanocaust ship would spawn right on top of a nanobot center.<br />
<br />
* Added a lot of extra instrumentation to the deserialization and serialization of factions, since there seems to be some sort of error in there with savegames from specific versions.<br />
** Essentially with this sort of thing on, we can now manually look through the deserialization log and see if we notice where field data stops making sense. It was obvious that it was getting something like "I am hostile to 20 thousand factions," which is nonsense data, but it was not clear where the data was going wrong prior to that.<br />
** From this, we could then see that most of the data reads in the player faction seemed reasonable, but the faction right after them was immediately messed up. This is after a lengthy code review turned up nothing wrong, so it's always possible that it's some sort of edge case that has been around for longer than we thought.<br />
** Added in code to make it so that if an exception is thrown while deserializing a faction, we will now repeat that error better and stop doing further deserialization attempts. It turns out that was what was happening, and a more careful reading of the log could have saved about an hour and a half of work (oh well, things in the future will be easier to debug).<br />
** Thanks to Lord Of Nothing for a very challenging save that led to these changes.<br />
<br />
* Fixed an issue with some savegames that had hacked dyson or dark spire ships, where the HackToGrantShipLine_DontDestroyTarget hack had been removed and split into several versions a few versions back.<br />
** We now have added HackToGrantShipLine_DontDestroyTarget back in, in a deprecated fashion, so that old savegames with this data in it can load.<br />
** Thanks to Lord Of Nothing for the save that let us find this.<br />
<br />
* Fixed a bug in the prior build where the "flair" overlays for ships in the main view were either black (some machines) or a rotating color set of insanity (others).<br />
** One line was accidentally omitted in the new build of the shader that we made.<br />
** We also updated some calling code to the shader in a way that is harmless but not actually needed for this fix.<br />
** Thanks to Strategic Sage, Isiel, CRCGamer, and TechSY730 for reporting.<br />
<br />
* The "Icons Disappear When Camera Lower Than" setting in the main camera window has been updated as follows to have this note<br />
** Note: this setting does nothing (icons always draw) if you have 'Skip Drawing Ship Models' turned on in the Performance section.<br />
** (Also, this is how it actually now works).<br />
<br />
* If a player is already on a planet viewing that planet, and a further command was sent to view that planet again (as if they were not already there), then funky stuff happened in various places, including the wormholes getting half-initialized and not drawing properly in scale.<br />
** To solve this, it simply doesn't do anything if you try to re-open your view to the existing planet you are already on.<br />
** Thanks to StarKelp for reporting.<br />
<br />
== Version 2.128 Don't Lie About Distant Future Waves, AI ==<br />
(Released August 27th, 2020)<br />
<br />
* Fix a bug where the scourge would sometimes suicide into multiple layers of defensive planets in the (foolish) hope of hitting the weak target on the other side.<br />
** This is an intelligence improvement for all factions using fireteams (Hunter, Warden, Nanocaust, Scourge, etc etc).<br />
** Thanks to Crawlers for reporting<br />
<br />
* Add some defensive code to the Fallen Spire.<br />
<br />
* Put in extra logging for the SpeedGroup serialization and deserialization, to figure out where there are occasional exceptions being logged.<br />
** Thanks to TechSY730 for reporting.<br />
<br />
* Sniper Energy Wave on the Dark Spire Eidolon has been renamed to just be Energy Wave, since this is not an infinite-range weapon.<br />
** Thanks to crawlers for reporting.<br />
<br />
* DoForKnownWavesAgainstHumanHomeworlds in WaveUtils has been renamed to DoForKnownWavesAgainstHumanWorlds, which is what is accurate.<br />
<br />
* A whole bunch of extra array indexing calls into QueuedWaves have been made more efficient in the AI HandleWavesForAI() method.<br />
<br />
=== Interface Improvements ===<br />
<br />
* The planet's tooltip has been updated to show the owner on the same line as the planet name, but positioned way over to the right.<br />
** This keeps things pretty condensed, but avoids some clashes of words where it seemed to be saying something like "Permanently Watched Owner:" as one phrase.<br />
<br />
* Previously, there was a chat message going out as soon as a wave was queued, but before it would become visible to the player in the actual interface (based on their chosen galaxy map settings for how much warning to get).<br />
** Now it only shows the actual chat message from the AI as the wave is being revealed to players.<br />
** This also fixes an issue where it was for some reason actually giving the wrong planet name that it was going to attack in some cases, since the announcement came before it finished changing its mind about the real target it wanted to hit.<br />
*** This latter one may have been more common in multiplayer, but it's hard to be sure. At any rate, it just tells you real information now.<br />
<br />
* The second chat message that goes out (with the audio taunt) when waves are launched now also happens when they are revealed, and no longer duplicates when in multiplayer mode.<br />
<br />
=== Mod Compatibility Improvements ===<br />
<br />
* There is a new DoPerSecondNonSimNotificationUpdates_OnBackgroundNonSimThread_NonBlocking() method that gets called on each faction each frame, and which takes in a note which says if it is the first faction of its type this frame or not.<br />
** This lets us move notifications for factions into their own files, which makes notifications modding-compatible.<br />
** There are some other supporting methods that have been added to handle this, but understanding them is not required for using this,.<br />
** It is worth noting that ALL of the existing DoPerSecondNonSimNotificationUpdates_OnBackgroundNonSimThread_NonBlocking() calls do happen in a loop prior to the new DoPerSecondNonSimNotificationUpdates_OnBackgroundNonSimThread_NonBlocking() being called.<br />
** As an interesting side effect, this actually makes it so that notifications will now work for people in spectator mode in multiplayer for the first time.<br />
** The nanocaust data has been moved out of the human file as an example of how to do the others.<br />
*** Same for antagonized dyson spheres, and the dark spire. It would be great to get the other factions moved over to their own files for the sake of cleanliness, but functionally there will be no difference for our things in the main game and expansions now.<br />
** Thanks to StarKelp for requesting the ability to add notifications in mods.<br />
<br />
* Added a new method DoPerSecondLogic_Stage0Clearing_OnMainThreadAndPartOfSim_OncePerFactionTypeEvenForFactionsNotInGame().<br />
** This is called on the GetDefaultImplementationForLobbyOrClearingOnly() from the faction TYPES, which means it happens even for the factions not in a game. Great and easy place to clean up, and we know it happens only once per cycle per faction type, and we also know that it happens even if a faction is not in the current campaign.<br />
** This is useful for factions that had some data in a prior campaign, but the player loaded a new savegame and they are not in this one.<br />
** All of the various data from these that was previously in the Human class and in DoPerSecondLogic_Stage1Clearing_OnMainThreadAndPartOfSim() has been moved to the new stage0 for each of the specific class types, which again is more mod-friendly and should prevent the issue of certain mods being unable to clean themselves up between campaign loads.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* When the host is waiting on a client that is behind, it now shows a message saying which clients are behind and being waited on.<br />
<br />
==== Bugfixing ====<br />
<br />
* The galaxy map spacebox background is no longer serialized into savegames. Instead it is deterministically calculated based on the map seed.<br />
** This makes very little difference for single player, although you will notice that reloading the game or going back and forth to the map, or hitting regenerate map on the lobby no longer changes the space background.<br />
** But for multiplayer, this keeps things consistent between all players.<br />
** For existing savegames, you will notice that the spaceboxes become something new and stay that.<br />
<br />
* It turns out that the planet spaceboxes were not being serialized at all in savegames before, but their rotations were.<br />
** This was leading to very different planet background views in multiplayer, to a very distracting degree.<br />
** This has been made deterministic, and we no longer store even the rotations in savegames.<br />
** For single player there is no real change except that the savegames are a tiny bit smaller.<br />
** For existing savegames, you will notice that the spaceboxes become something new and stay that.<br />
<br />
* Fixed inconsistent sorting between runs of the game (and between differnt clients) for rows in the following tables:<br />
** AIGuardPostAndCommandPlacerTable, FleetDesignTemplateTable, AIShipGroupCategoryTable, and SpaceboxDefinitionTable.<br />
** These led to various MP inconsistencies, including the spaceboxes still being divergent on planets despite the math lining up.<br />
<br />
* Fixed an issue where the home planets of other players in multiplayer games just looked like normal planets instead of homeworlds.<br />
<br />
* There were a bunch of cases where human factions were still named wrong during multiplayer (and differently on the host and client), saying the wrong player's name or Unknown Player in various cases. Fixed all of those.<br />
** Additionally, in the case of multiple players owning a faction, if they did not choose an empire name, it now says all of their names together (but no more than three) as the faction name.<br />
** If there are more than three players controlling a single faction, that gets too wordy, so it just says "and X more".<br />
** When loading the single player games of other players, you will now see their chosen account names (from in AI War 2, not Steam or whatever) instead of your personal profile name.<br />
<br />
==== Seeing Where Other Players (Or Spectators) Are Looking ====<br />
<br />
* The way that the gimbal icons decide which diffuse color to use is now more efficient on the GPU (this is minor, but hey).<br />
<br />
* It is now possible to have a secondary diffuse color for the flair (really used for selection circles now), which is multiplied by the main "other diffuse color" of the icon.<br />
** This lets us do things like change the opacity or color of the selection ring around a ship or planet.<br />
<br />
* When you are viewing a planet, the game's way of showing the selection circle around it is the same as it always has been.<br />
** However, when someone else in multiplayer is viewing a planet other than the one you are viewing, it now shows a dimmer and more-transparent selection circle to show you that someone else is looking there.<br />
** If someone else is looking at the same planet you are looking at, then it will show the normal bright selection circle in a faint green rather than white.<br />
** This is something that is deceptively important, because we need to make sure that we know which planets are "tier 1" planets on clients and the host, which lets us verify that ViewedByPlayerAccounts_DuringGame is being set properly on all machines (it is). This keeps the game in the sync, which we can now tell is working properly.<br />
** But also this is just a helpful indicator for players to help with coordination. ("Check out this planet I am looking at in the northeast" is so much easier to say than trying to direct them to a name).<br />
<br />
* As an added help, in the galaxy map view when you hover over a planet, it tells you which other players are viewing a planet. This may be players in exclusive control of a faction, or one of several player players controlling a faction, or just a spectator, so it shows you their name as it would appear in chat.<br />
** For games with more than two players, this is fairly important for purposes of clarity. In a two player game it's easier to just infer what is going on.<br />
<br />
* When a client is disconnected, other clients and the host can still see what planet that client WAS looking at, and that planet still counts as a Tier 1 planet for processing, but hovering over it will show the name of the player with (Disconnected) behind it on the host.<br />
** Presently clients cannot see the status of other clients.<br />
<br />
==== Disconnection And Re-connection Verified ====<br />
<br />
* We can now verify that after a client disconnects in a disorderly way, the host notices a bit later and then continues on without them (they can choose to pause or not).<br />
** We can FURTHER verify that the client can reconnect to that running game with only a few-seconds interruption to other players who are still going. Even if the client had crashed and had to restart the game or their computer, they are able to get right back in there.<br />
** The original AI War did not remotely have any of these capabilities, but this works on all three networking platforms.<br />
<br />
== 2.127 Cranky AI Exceptions ==<br />
(Released August 26th, 2020)<br />
<br />
'''This was originally released as a beta on the 26th, but then changed to a main branch release on the morning of the 27th.'''<br />
<br />
* The Dark Spire now responds properly to being hacked by being cranky<br />
** Thanks to crawlers for the bug report<br />
<br />
* Fix a bug where the AI was incorrectly combining some Hostile To All factions when spawning extragalactic war units.<br />
** This was leading to more extragalactic war units than one would want.<br />
<br />
=== Exception Fixes ===<br />
<br />
* Added new debugging instrumentation into ImportIntoDynamicTable_XMLDirectory, so that we can find errors that may happen in there from time to time on some machines.<br />
** Also put in some code that should make it load faster for mods and expansions that don't have certain folders.<br />
** Thanks to Ovalcircle for the report of something mysterious in this area on his system.<br />
<br />
* Also expanded the debugging instrumentation on ReadXmlFileIntoBatchProcessingLists, same reason.<br />
** Ditto DoForXmlFolders.<br />
** And finally, ditto ActuallyImportAllOfTheBatchedRows.<br />
** Thanks to Ovalcircle for the report of something mysterious in this area on his system.<br />
<br />
* ArcenXMLElement.GetNewFor has had its debugging instrumentation greatly expanded, and also has been split into one version that expects a data table, and a new GetNewForNonTable variant that does not expect a table.<br />
** The idea here is to catch various forms of errors early.<br />
** This in turn caused a cascade of other changes to other methods needing variants of each other along these same lines, and having better instrumentation.<br />
** Thanks to Ovalcircle for the report of something mysterious in this area on his system.<br />
<br />
* Fixed another rare race condition that could happen with the vis code, this time in SetFormationPositionFromSquad.<br />
** Thanks to NRSirLimbo for reporting.<br />
<br />
* If for whatever reason the game was not able to proeprly write your settings data, it was still overwriting your settings file previously. It will no longer do that.<br />
** Additionally, a lot of extra instrumentation has been put into GameSettting.SerializeGraphicsTo and GameSettting.SerializeTo, so that we will know better what is wrong if it is trying to save improperly. These should also be more resistant to saving incorrectly in the first place.<br />
** Thanks to Isiel for reporting.<br />
<br />
* If a savegame has somehow been made that has a blank savegame in it, then it will try to load it with the info of the current version of the game, with a warning in the log that this may fail very badly.<br />
** Thanks to Isiel for reporting, and providing a save that was probably made while the game was in an invalid state.<br />
<br />
* Fixed a case where trying to load certain saves could fail silently as far as the interface was concerned. Now it actually shows you a proper error message.<br />
** And then fixed a whole bunch of cases where certain code paths on almost-certainly-broken saves would return very genric and unhelpful errors when you tried to load them.<br />
** This doesn't really help us actually load the savegames in question, but tells us more about what is wrong with them.<br />
** Thanks to Isiel for reporting, and providing a save that was probably made while the game was in an invalid state.<br />
<br />
* Suppressed a harmless popup that could happen in ReactToShotHittingSquad during cross-thread race conditions. Now it just fixes the data and moves on.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
== Beta 2.126 Dark Spire, Eyes, and Fixes ==<br />
(Released August 22nd, 2020)<br />
<br />
'''To play this version, please be sure to choose the current_beta branch on Steam. The central game loop changes we made in the prior version did not blow up, but a few other things did, so we're glad we went the beta route. If for some reason this beta has problems but the prior one worked for you, we have temporarily made the most_recent_stable_beta active and pointing to 2.124. But this version should actually be more stable (knock on wood). We'll be back out of beta by mid-week the week of the 23rd.'''<br />
<br />
* Fix a bug with DS Conquest VGs and the new hack<br />
** Thanks to gigastar for reporting<br />
<br />
* Fix a bug with the Full Metal notification<br />
** Thanks to a screenshot from Oval for making me aware of this<br />
<br />
* The AI should now attempt to play voice lines for Exogalactic Strikeforces, and when you spot the Nanocaust.<br />
<br />
* The DS is no longer allowed to spawn Loci on planets with Dark Spire Wards<br />
** Thanks to crawlers for reporting<br />
<br />
* Make the Dark Spire more aggressive about spawning Loci<br />
** Thanks to crawlers for suggesting<br />
<br />
* The player can now choose the starting armory for player-allied scourge<br />
** Thanks to crawlers for suggesting<br />
<br />
* Improve the hovertext for some scourge units just a bit.<br />
<br />
* Fix a bug where new games in the beta weren't starting correctly<br />
** Thanks to Keith and Tynendir for reporting<br />
<br />
* Capturing an AI homeworld no longer generates AIP. This only applies to games creates on 2.125 or above.<br />
** Thanks to GreatYng for suggesting<br />
<br />
* AI Eyes now trigger based on whether you have more Strength on a planet, not off the number of fleets<br />
** This is not necessarily the final state for Eyes, but having them trigger off of 'number of fleets' didn't make any sense anymore. This is a functional stopgap until someone has a better idea<br />
** Thanks to a number of people for discussing, including Flypaste, Asteroid, Democracy, GreatYng and others<br />
<br />
* Fixed typo in multiplayer message.<br />
** Thanks to fwiffoforce for reporting.<br />
<br />
== Beta 2.124 HRF Pacekeeping ==<br />
(Released August 18th, 2020)<br />
<br />
'''To play this version, please be sure to choose the current_beta branch on Steam. If this isn't blowing up in major ways, we'll move it back to the main branch within a few days. If it is blowing up a lot, then it may be into next week before we come back from beta. We changed too many fundamental things with the game loop to just release this with no beta, even though we were careful.'''<br />
<br />
* Minor rework to minor faction hacks. Its now more expensive (in line with the previous hacks). The description no longer mentions an AI response. The DS and Dyson units are now upgradable, but not very much. These are intended to be 'cool little tidbits' but nothing to really swing the game<br />
** Thanks to GreatYng and Lord of Nothing for bug reports and comments<br />
<br />
* Add a 'Full Metal' indicator in the metal bar<br />
** Thanks to Nyarlathotep. Iä! Shub-Niggurath!<br />
<br />
* The hovertext prompt that describes when swapping ship lines will scrap your units has been modified to describe the current behaviour correctly ("Your ships are scrapped if they are loaded, or the flagships are on different planets"). <br />
** Thanks to StrategicSage and Ubifan for reporting<br />
<br />
=== HRF Changes ===<br />
<br />
* The HRF ships now have some unique names.<br />
<br />
* The HRF now create a structure at game start time that you can hack for a new ship line (using the backported DLC2 tech) and for 1K science<br />
<br />
* Fix a longstanding bug where the Human Resistance Fighters would only say their 'defeat' voice lines, not their 'victory' voice lines.<br />
** Thanks to Nyarlathotep. Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn.<br />
<br />
* The HRF should now pack a bigger punch when they arrive, but they are a bit less likely to show up.<br />
<br />
=== Bugfixes And Tweaks ===<br />
<br />
* Some minor improvements to the ability of vulnerable Vengeance Generators to be killed<br />
** Hopefully this helps. Thanks to Lord of Nothing for reporting, and Puffin for suggesting the improvements<br />
<br />
* Better enforce the 'can't repair ImmuneToRepairs' unit interactions. Still a bit weird.<br />
** Thanks to MasterGeese for reporting<br />
<br />
* SerializeByInternalName and SerializeByIndex both now accept FieldName as an optional parameter so that we can see what is happening within them from a serialization logging standpoint.<br />
<br />
* A bunch of extra serialization logging has been added into the world and the faction configuration objects, to make finding errors there easier.<br />
** However, it turns out that there were no public errors on this, just an error in a working copy on one developer machine that had a save from between two updates from that same developer.<br />
<br />
=== Milestone: Multiplayer Pacekeeping Functional ===<br />
<br />
* In the event of a campaign switching which player is the host (this probably means one player manually emailing the game to another), the game now tries to do a better job of handling that.<br />
** In the end this should work fine, but we haven't bothered testing this yet as this is probably kind of an edge case compared to most other things we're working on right now.<br />
<br />
* All of the "frame number" information for sim frames is now just serialized on the network and never to disk.<br />
** This information is really only useful within a single run of a campaign (aka after loading it off disk and playing until you exit to the main menu or the OS).<br />
** Even if you go just back to the main menu and load back into the game directly after, there's no reason not to start those numbers off fresh again.<br />
** We've thus switched to a number format for serializing these that will "only" allow for 160 hours of continuous realtime play in a given campaign, without exits to the main menu. This is the definition of excessive, and could always be changed in the future if it was needed.<br />
<br />
* A variety of variables that really are only for the network, and serialized but not to disk, now have the prefix Network_ so that we can tell those apart with ease.<br />
<br />
* In multiplayer, the basics of "host waiting for clients to catch up" is now in place. This prevents the strange lag that clients were seeing, which was happening because they were back in time.<br />
** However, also in multiplayer, unlike the original AI War, it will not definitely wait around for players who are missing. If those players are not connected, then you can unpause and play without them until they arrive. Only once they are present do you have to wait for them to sync up.<br />
*** If this latter choice turns out to be problematic for some reason, we can always add a toggle for that or change it. But it seems friendly. Chris remembers nights where 1 person out of 4 player game couldn't make it, so just keeping on playing without them would have been so nice versus having to go in and change the status of their account before playing.<br />
<br />
* Various of our "simulation profile" variables that were set a loooong time ago in a different way for multiplayer and single player were making multi-player feel sluggish. We've tightened up this some in order to feel better under a pretty general set of networking conditions.<br />
** We may need to revisit this in the future (during alpha or beta) to make these things that people can configure if they are in a situation of, for instance, high packet loss or extremely high or low pings, to get the best possible experience at any given time.<br />
<br />
* Various other changes have been made in order to make the client send over commands to the host as soon as possible, and then to make sure that the host causes those commadns to be executed on the FIRST simulation frame of the next batch, not the last frame of that next batch.<br />
** All in all, the game now stays in time sync, across Valve's server relays and back, and things are snappy and responsive on both the client and the host. There are moments of delay that cause a brief "waiting" message to flash up for maybe a quarter of a second every so often, but it's really a minor thing and is something that we can improve with tuning in the future.<br />
** The overall functionality is there to the point that if background threads and floating point math were not knocking things out of sync, this would be a perfectly playable alpha. As it stands, it's quite playable for a few minutes at a time, at least on Chris's two test machines, without things becoming noticeably off.<br />
** It's also worth noting that the simulation speed on the host shows up as being something like 80% right after starting the game, which is misleading because it had one very long frame where it was waiting on the client to connect and sync up. That will be fixed in the future, but it self-resolves the visual artifact within something like 20 seconds of starting, anyhow.<br />
<br />
== Version 2.122 Empire Names ==<br />
(Released August 17th, 2020)<br />
<br />
* *Makeshift Drones now once again self-destruct when attacking instead of only self-attritioning slowly.<br />
** Thanks to NR SirLimbo for fixing.<br />
<br />
* The lobby now once again allows for you to zoom in and pan around, since some maps can be larger than you can comfortably see on a single screen.<br />
** However, every time you generate a new map, it will default to showing you the entire map completely zoomed out.<br />
** It also no longer EVER allows edge-panning in the lobby, as just general usage of the lobby will wind up with you accidentally panning the lobby around if that is in place.<br />
** Thanks to CRCGamer for confirming our suspicion that we'd need to do this.<br />
<br />
* Fixed ANOTHER bug with the lines being offset from the planets in the galaxy map, this time when you were zoomed in. The more zoomed in you were, the more off they got.<br />
** This bug was caused by our latest fix to the lines being off when you were zoomed out. Now it should work at all zoom levels. This was an annoying one, to be sure, but we're glad to have it finally lining up all the time.<br />
<br />
* Fix a bug where player-allied scourge weren't building properly<br />
<br />
=== Multiplayer Progress ===<br />
<br />
* Added a new Human Empire Name setting on player factions:<br />
** If left blank, will be the name of the first player controlling this faction. If you want your empire to have a different name than your personal name, you can do that here. If multiple players are sharing a faction, then they can give it a name that represents their shared interest in it.<br />
** This can be edited during the game (like player colors can be), or in the lobby.<br />
<br />
* When a new player joins as a client to a game, it now creates a slot for them and puts them in charge of it instead of them defaulting to spectator mode.<br />
** It assigns their colors properly, and all of that sort of thing, too.<br />
<br />
* Player accounts beyond the first are now removable, which lets players go back into spectator mode, or (later) control a single faction via multiple players helping.<br />
** This makes the default case (everybody has their own faction) set itself up by default, but then lets players back things out into the less-usual cases (shared factions, spectator mode, etc).<br />
<br />
* Players beyond the first are now auto-assigned a starting planet somewhat at random, letting them choose something on their own later.<br />
** A whole lot of logic that was very not-MP-safe is now MP-safe.<br />
<br />
* When loading a savegame or quickstart into the lobby, or loading the last settings for the lobby, it strips out all human players beyond the first.<br />
** This is consistent with it then recreating player accounts as those come in, too.<br />
<br />
== Version 2.121 Savegame Hotfix ==<br />
(Released August 17th, 2020)<br />
<br />
* Fixed a deserialization bug in the prior version that made any games saved with a dyson sphere in them not able to be loaded if they were saved in the prior version.<br />
** The nature of the issue was such that those savegames will now load without issue, thankfully.<br />
** Thanks to Lord Of Nothing, CRCGamer, fatcat__25, GreatYng, Djri123, Djri123, mekolab, and goz for reporting.<br />
<br />
== Version 2.120 Improved Lobby Map Experience ==<br />
(Released August 14th, 2020)<br />
<br />
* Fix a bug where sometimes the AI's ships wouldn't be allowed to retreat<br />
** Thanks to Sigma7 for reporting<br />
<br />
* Hopefully fixed a problem where sometimes allied scourge could kill AI Command Stations immediately after a game load<br />
** Thanks to GreatYng and ZeusAlmighty for reporting<br />
<br />
* Fix a typo with the Spire and Marauder Beacons<br />
** Thanks to Apthorpe and Ovalcircle for reporting<br />
<br />
* Fix a bug where hovering the Hacking resource bar entry would give a negative number during the superterminal hack<br />
** Thanks to GreatYng for reporting<br />
<br />
* Improve the Hacking Resource bar hovertext for the case where you have multiple hackers. Note it still doesn't show hacks against planets.<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* The MDC hovertext no longer mentions Exos<br />
** Thanks to Strategic Sage for reporting<br />
<br />
* Exogalactic Strikeforce speed updates:<br />
** Previously, Exos had travelled at 1800 speed (as of a few patches ago. Before that they didn't have a consistent speed).<br />
** Now Exos travel at "Average speed of their units + 20%" or "800", whichever is higher. This should feel less like they are speed-racing to your homeworld. For speed-context, 800 is the speed of a Parasite.<br />
*** Thanks to GreatYng and Lord of Nothing for discussion<br />
<br />
* Fix a typo in the hovertext for larger numbers of planets <br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Remove a mention of Fleet Exp in a tooltip<br />
** Thanks to Lord of Nothing for reporting.<br />
<br />
* Take safest path through galaxy now uses the modifier key alt, while take shortest path now uses the hotkey ctrl.<br />
** The prior hotkeys of X any Y conflicted with other functions and changed your unit stances or sidebar status, etc.<br />
** Thanks to Sigma7 for reporting.<br />
<br />
=== Ability To Reset Camera View To Default ===<br />
<br />
* New hotkey in the camera section: Reset Camera Rotation And Tilt<br />
** Default ctrl+R.<br />
** Press this button combo to reset the camera's rotation and tilt to the default values.<br />
** Thanks to dv, Ovalcircle, Bobtree, and many others for requesting.<br />
<br />
=== DLC2 Backports ===<br />
<br />
* The Dyson Sphere Golem can now be hacked like an ARS for one of a small selection of Dyson ships. You only can use this hack once.<br />
<br />
* The Dark Spire Vengeance Generators can now be hacked like an ARS as well<br />
<br />
* This is a backport of a DLC2 feature that allows for a minor faction to have a structure which can be hacked like an ARS for unique ships. This is usable by modders with only some XML. <br />
<br />
* Approximate usage: in the minor faction GameEntity XML, for the ARS-equivalent, set the following<br />
** Assign it the HackForShipType tag<br />
** Make it eligible for the HackToGrantShipLine_DontDestroyTarget or HackToGrantShipLine hacks<br />
** Then add the following additional fields<br />
*** grants_stuff_to_be_added_to_player_fleets="true" <br />
*** grants_stuff_to_be_added_to_player_fleets_strikecraft_options="X" <br />
*** grants_stuff_to_be_added_to_player_fleets_frigate_options="Y" <br />
<br />
* Then for the ships you want to have available, set one of these<br />
** <fleet_membership name="AddedToFleet_MinorFaction" ship_cap_group="Strike" weight="100" min="30" max="35" faction="factionName"/> <br />
** <fleet_membership name="AddedToFleet_MinorFaction" ship_cap_group="Frigate" weight="100" min="1" max="1" faction="factionName"/><br />
*** Note the FactionName in the fleet_membership must match the name of the faction (I believe it checks the TracingName for the faction, which is set in C#)<br />
<br />
=== Dark Spire Improvements ===<br />
<br />
* There's now a preliminary Journal Entry for the Dark Spire when you first see them.<br />
<br />
* There's now a Journal Entry for when the Dark Spire enter conquest mode (ie from the Fallen Spire campaign).<br />
** This explains what Conquest Mode is, and it's much harder to miss.<br />
<br />
* The tooltip for the Locus now prints different text in Conquest Mode.<br />
<br />
* Thanks to crawlers for the bug report that prompted these enhancements<br />
<br />
=== Galaxy Map And Camera Display Work, Lobby Map Overhaul ===<br />
<br />
* The galaxy object now has a a FindSpatialCenterOfGalaxyInGalaxyCoordinates() method, which lets us find the center point of the galaxy based on however the planets were seeded.<br />
** Also added FindSpatialBoundariesOfGalaxyInGalaxyCoordinates() to let us find the overall bounds easily.<br />
** But actually we're going to not bother using this, turns out.<br />
<br />
* We were also working on a CenterGalaxyOnAllPlanets() method, but we've abandoned that for a different approach. The code is mostly complete and left in for now so that we can revisit it if we find a use for it.<br />
<br />
* The old-style cameras have been disabled for a long time (years) in xml, but we've now removed them from the code as well.<br />
<br />
* Added extensions GetWorldSpaceBottomLeftCorner and GetWorldSpaceTopRightCorner for UI RectTransforms.<br />
** The chat window in the right hand side of the lobby in multiplayer now uses this and a world space to camera transform to calculate its ScreenSpaceLeft, which lets us, regardless of your screen resolution, DPI, aspect ratio, or custom settings in this game itself, figure out where the UI ends and avoid underlappig it.<br />
** Same thing with a ScreenSpaceRight on the map tab left sidebar.<br />
** Same with ScreenSpaceTop on the footer controls, and ScreenSpaceBottom on the header controls.<br />
<br />
* For the galaxy map camera, the zoom now lets you go out farther in the lobby, and even farther in the multi-player lobby, so that it can always fit the map entirely in the main view screen.<br />
** Tested this with the game at 900px wide, 1800px wide, and 2560 pixels wide. In all cases we now come out with a consistent result.<br />
<br />
* Fixed up a bit of logic for the dynamic zoom for resolutions smaller than 1200px x 900px.<br />
<br />
* In the lobby, the galaxy map camera no longer responds to mouse or keyboard input at all. This is an overhaul that has been requested for years and years.<br />
** Now the lobby always has the map as zoomed out as it can.<br />
** It is also centered in whatever the available space is (depending on if the right-hand sidebar is there or not, that may or may not be centered on the actual screen).<br />
** This is extraordinarily useful, in that it lets you cycle through maps with ease, and there is typically not too much detail that you need to see in them like you would during an actual game.<br />
<br />
* The math for how much the galaxy camera should be able to zoom out has been entirely re-coded from scratch, and is now vastly more efficient as well as something we can actually follow.<br />
** Instead of taking something like a thousand loops to get a kinda-bad answer, it now takes typically under 60 loops (often under 20) to get a highly accurate answer.<br />
<br />
* In the galaxy map display calculations, and number of strange magic numbers were removed, now that we have the proper math in here. Wow this was unexpectedly hard.<br />
<br />
* At very long distance zooms, the planets were STILL being visually offset from their lines that they were above, it turns out.<br />
** This had to do with how we were offsetting the icons in order to avoid z-fighting, and how that was getting magnified by us scaling up the planets at further zoom distances.<br />
** The fix for this might introduced some z fighting, but probably will not because of the way that we are rendering these as "cutout" style transparency, and with GPU instancing determining the order of draw.<br />
<br />
* In the lobby, the planet you own is no longer ringed in white selection, as the in-game "planet you are on" is done. Now it just shows the planet color, plain and simple.<br />
<br />
* In the lobby, if you have the setting "always show planet names" on, it still won't do that, because that will make the fixed-size galaxy map potentially impossible to read.<br />
<br />
* The galaxy map in general shows planet names that are un-owned as being far less blinding white in their text.<br />
<br />
* In the lobby, it no longer shows the first owning player name under the name of the planet.<br />
<br />
* The visual scale of the actual planet spheres in the lobby is now about a two thirds what it previously was, but the text is almost as large as it was before. If the text is too small, we can adjust it up.<br />
<br />
* In the lobby, hovering over a galaxy map link no longer highlights the two planets adjacent to it, since that is visually confusing in that context only.<br />
<br />
* Added ShowTooltipNarrow() and ShowTooltipWide() to the IPresentationLayer and IBattlefieldHandler, so that we can trigger tooltips super-directly from deeper-in code.<br />
<br />
* In the lobby, hovering over planets now makes it show a tooltip at the mouse cursor that says the name of the planet (since that might be obscured by being very near the top of the screen, now), but also some other information.<br />
** It says how many wormholes there are, and gives a comment if that will be extra hard to defend.<br />
** It also shows the name of any human players who are going to have that as their starting planet, in their appropriate colors based on their faction color.<br />
** There was some funky stuff in the hover logic for the galaxy map that made this super difficult.<br />
<br />
* Fixed a funky bug relating to tooltips that were showing the same text as before, but had themselves cleared and then wouldn't keep showing the text anymore until it was given different text.<br />
** The first time this ever manifested was in giving tooltips on the lobby galaxy map, but it's an old old bug.<br />
<br />
* Fixed an issue in the lobby where it was not showing the names of planets automatically for planets owned by players other than yourself.<br />
<br />
* The map types list in the lobby has always been kind of randomly organized, which was annoying. More recently, it has been in a different order every time you start the game.<br />
** Now it is in the order Realistic, Simple, and then all the others alphabetically.<br />
<br />
* Fixed a bug when loading directly into the game and not visiting the lobby where it did not set the dynamic zoom properly in the last few internal builds.<br />
<br />
* Also fixed a boneheaded typo in the very most recent internal versions that was making the height of the dynamic zoom calculation slightly off.<br />
** There is still something a bit off with the squares map type and how it displays in the lobby (it is offset upwards and also shown too small), but all the other map types work and so this seems to be some sort of data issue with that map type and not a problem with our central algorithm.<br />
<br />
== Version 2.117 Ion Cannons And Melee Units ==<br />
(Released August 11th, 2020)<br />
<br />
=== Balance Work ===<br />
<br />
* Ion Cannon Shots can now:<br />
** Damage both the personal shields and hull of a target in one shot (including killing it outright).<br />
** Kill multiple ships in the same stack in one shot.<br />
** Thanks to GreatYng for pointing out the oddity of Ion Cannons not being able to do these things.<br />
<br />
* AOE shots can now hit any enemy bubble shield overlapping the explosion, rather than only being able to hit the shield if the generator (or something it's protecting) were physically within the explosion.<br />
** Thanks to NRSirLimbo for reporting and RocketAssistedPuffin for the save.<br />
<br />
* Crippled units (i.e. player flagships) can now pass through enemy bubble shields and traverse wormholes covered by them, to avoid being stranded in hostile territory.<br />
** Thanks to tadrinth for reporting and RocketAssistedPuffin for the save.<br />
<br />
* Melee units in attack-move mode will now go after units within a limited range (equivalent to a weapon with range=Normal1), so you have a middle-ground between "only attack your direct target or things actually touching you" and "pursue anything on the planet".<br />
** Also, even when not in attack-move mode, player melee units without orders (and not in hold-fire mode) now automatically move to attack nearby targets. If all such targets die or move away, the melee unit goes back to where it was.<br />
** Thanks to OzoneGrif, wm46, RocketAssistedPuffin, and Ubifan for the suggestions and saves leading to this change.<br />
<br />
* Fixed a bug where deathgrip tackle drones had a gun that could shoot immobile targets, greatly confusing their logic. That gun now has the only_targets_mobile_units flag.<br />
** Also fixed a bug where tackle-drone-launchers could give their spawned drones a direct attack order to go after an immobile unit.<br />
** Thanks to tadrinth and RocketAssistedPuffin for the reports leading to these discoveries.<br />
<br />
=== Bugfixes ===<br />
<br />
* Scourge: fix a bug where player-allied scourge were building tons of Builders but no Fortresses (they were mistakenly thinking they were minor faction allied)<br />
** A number of people on discord noticed the lack of Fortresses<br />
<br />
* Potentially fix a bug where Regenerator Golems were regenerating things while crippled<br />
** Thanks to crawlers for reporting.<br />
<br />
* AI Reserves now will create anti-player zombies.<br />
<br />
* Take another stab at 'adjacent planets watched'. Sigh.<br />
<br />
* Fixed an issue where on computers without GOG Galaxy installed, they would get a harmless-but-annoying error message at game startup.<br />
** Thanks to Badger for reporting.<br />
<br />
* Minor tweak to target list planning; use a case insensitive comparison for zombification.<br />
<br />
* The 'total units' count should now include stacks.<br />
<br />
* The AI "Great-Turrets" are now simply called "Turrets" again, as at this point balance-wise the player turrets and AI turrets are similar.<br />
** Thanks to GreatYng and RocketAssistedPuffin for bringing this to our attention.<br />
<br />
* Exogalactic War Units now use a better spawn-in message than before<br />
** Thanks to zeusalmighty for reporting<br />
<br />
* Fix a problem with the Custodian description text<br />
** Thanks to GreatYng for reporting<br />
<br />
* The semicolon was previously not supported by our chat log format (our "condensed ascii"), but now is.<br />
** Thanks to Badger and Sigma7 for reporting.<br />
<br />
=== Multiplayer And Lobby Work ===<br />
<br />
* Heartbeat messages from the client to the server and vice-versa are now omitted from all of the networking logs. They were making things far too cluttered for us to be able to see real information when we had network logging of various detail levels turned on.<br />
<br />
* Some excessive logging on GOG and Steam with regard to their send result statuses has been removed, as again this was clogging up our network logs.<br />
<br />
* The clients now have a secondary FromClientToServer_SignalDoneButHasNoCommands that they can send in place of the FromClientToServer_SendMyNextCommandBatch when they don't have any commands to send (which is most of the time, statistically).<br />
<br />
* GameSpecificNetworking now has a DoPerFrameLogic() method, which lets us efficiently set some per-game settings like we do for the arcen debugging stuff.<br />
<br />
* New setting in the Network section of the settings menu: Network Logging Includes Frame Auths.<br />
** In the lobby and during gameplay, there are messages sent by the network every 100ms or so to keep themselves in sync, and if you have them included they will tend to crowd out the rest of the messages that are sent. So by default these are disabled.<br />
<br />
* New setting in the Network section of the settings menu: Network Logging Includes Command Batches.<br />
** In the lobby and during gameplay, there are messages sent by the network as frequently as every 100ms, but more often some sporadic multiple of that. This is how factions tell everyone what they want their ships to do, and how human players say the same. There's very little that we can say about this in a meaninful way in the networking log level, and again this will tend to crowd out the other messages that happen. So by default these are disabled, but bear in mind that most things that players actually cause to happen are being caused through these batch messages.<br />
<br />
* Found and fixed a general issue where the player accounts were not properly being cleared (and fully resetting the player account IDs) during all cases where a game is loaded into the lobby. At a bare minimum, it was affecting the "open a custom game with my last settings."<br />
** That would have eventually led to out of bounds exceptions, over time, and in general was cluttering up some areas important for multiplayer, but it had not had a negative impact on anyone so far.<br />
<br />
* Fixed a bug that was causing all sorts of craziness on clients in multiplayer in the lobby, with them not getting their galaxies full cleared.<br />
** This was leading to things not being properly in sync between the client and host, like planet names or locations, and things like extra planets or planets in old locations, or noninteractive planets at a whole other scale visually from the real planets. It was quite messy! All of that is now corrected, thankfully.<br />
<br />
* In the lobby, when you change the number of human factions, it now regenerates the map immediately. For other factions it does not bother, never has, because there's nothing different to see at this point in the galaxy.<br />
<br />
* The WorldSetup objects now have a readonly SetupTypeName on themselves, so that we can tell what they are.<br />
** ChangedSinceLastMapGenCall on this same object is now a property, which lets us throw out debugging messages when it is being triggered for whatever reason.<br />
** Something has been causing extra calls to be sent through the map generation pipeline in a redundant fashion that makes everything slower than it needs to be.<br />
<br />
* Removed the ability to send a WorldSetup object via GameCommand, as that is actually highly antithetical to the way we edit that data as of the last year and a half or so.<br />
** We specifically try never to adjust the entire thing, because several players at once could be editing different parts of it and we want those bits to all merge at once.<br />
** Got rid of the SetupOnly_ChangeSetup GameCommand, which was set to use this sort of thing.<br />
** Got rid of the LobbyWorking_HasBeenChangedAndShouldTransmitChanges() method on WorldSetup, which was being used by a loop in the footer to keep clients up to date.<br />
*** The problem with this is that this was far older code, back from perhaps 2017, and it was using an older and more sledgehammer-y approach to try to keep clients and the host in sync. When the lobby was redone in 2019, this became obsolete but was still hanging around and so caused some nontrivial chaos.<br />
** LobbyWorking_HasBeenChanged() has also been removed, as it seemed duplicative and was no longer in use perhaps?<br />
*** Oh goodness, this was actually how we were ever updating the long-term stored version of the game (as opposed to the lobby working copy). This was not a good way to do it, but it was not quite as antiquated as we thought.<br />
<br />
* Fixed a rare nullref exception that could happen in the ships sidebar if you were not properly on an actual planet.<br />
<br />
* Fixed an issue from the last few months (probably) where if you had an error during map generation, it would still try to dump you into the world and then give you tons of other errors. It should have been stopping you and making you fix whatever was wrong.<br />
** This is most common when there are not enough planets for all the factions you have chosen, or a few other rare cases. One such case is just discovered internally, and that's you having a planet starting index that is higher than the number of planets currently in the world.<br />
<br />
* Helper_AssignHumanHomeworld() and the AI variant are now Helper_TryAssignHumanHomeworld() and an AI variant.<br />
** It was already quite possible for these to fail if the player had selected something invalid, such as previously having clicked a planet with an index above 40 and then choosing a map size of 40 planets.<br />
<br />
* The game now auto-assigns humans a planet that is valid if they don't have a valid option, and it does so in a multiplayer-compatible fashion.<br />
** Previously this tried to do the assignment, but did not do so in a way that worked, and even if it had worked it would have only worked for one player.<br />
** This also includes a new sub-gamecommand, StartingIndex_FromAutoAssignInMapgen, which efficiently lets the UI know what is happening without triggering an extra map generation cycle or accidentally overriding a distinct change made by the player.<br />
<br />
* The lobby is now substantially more responsive even in single player, although it seems to be having some extra calls that we are still hunting down.<br />
<br />
* Fixed an annoying issue that was causing an extra regeneration of the map to happen when you first went into the lobby in single player or as the host, leading to the lobby load time being half a second or so longer than it should have been.<br />
<br />
* Fixed an issue where if one person in the lobby adjusted the following fields, it would not be reflected for the other players in the GUI (but would in the map itself):<br />
** Planet naming style.<br />
** Map type.<br />
** All of the other map sidebar controls were showing things properly and also able to be controlled from any client or the host.<br />
*** Do bear in mind that if you manually enter a map seed, it won't appear for the other players until you hit "Regenerate Map," but given that does not actually affect the map until that button is pressed, this should not be overly surprising.<br />
** All of the faction controls and their sub-controls have been workign properly from the start, and still seem to be.<br />
** Same thing with the galaxy option controls (all of them), which is pretty exciting.<br />
<br />
* The "Campaign Name" is something that is only for savegame management, and thus is only relevant on the host side. The clients now see "Will be set by host" as the text in that box, and cannot change it.<br />
<br />
* The "Start Game" button is also something that we are limiting to be host-only, for a variety of reasons. The biggest is that they need to set a campaign name, but that's entirely host-side.<br />
** Clients clicking this button now get a message that asks them to wait for the host to do it.<br />
** Actually, for the sake of ease of use, the "Reset To Defaults" button and this one are just hidden on clients in multiplayer. Clicking Reset to Defaults on a client results in an error for a lot of good reasons based on how it is trying to accomplish that.<br />
<br />
* All of the lobby controls now seem to work properly for both the host and client. There are still some things in chat that are messed up, and we're missing controls for making clients not always be spectators, but we can also get into the game.<br />
<br />
* Fixed the harmless but annoying "StartingIndexChanges: factionIndex 1 passed when faction count was 0" error message that would happen on clients after a host gave orders to start.<br />
<br />
* The campaign name and its textbox is now just plain invisible for clients in a multiplayer game, again to avoid confusion.<br />
<br />
* The right-hand sidebar in the lobby in multiplayer is now split into two scrolling parts.<br />
** The top part has information about the connected players and the factions that they are a part of, and never auto-scrolls around.<br />
** The bottom one has the actual chat messages, and auto-scrolls to the bottom when new messages come in.<br />
** The fonts of both are a bit smaller, from size 12 down to 10.<br />
<br />
* From past changes, we can now verify that the proper name shows up for clients on the host, instead of it just saying "Player 2" for them.<br />
** However, text messages from the client in the lobby show up with the color of the client but the name of the host?<br />
<br />
* Hitting enter while in the chat textbox in the lobby now actually sends the chat properly, as already worked in the main game.<br />
<br />
* In the multiplayer lobby, the top panel now shows the status of the various PlayerAccounts that are in a game. Specifically it shows any who are connected or disconnected, or which ones are you, etc.<br />
** It also shows players that have an account in this game at the moment, but who are absent.<br />
<br />
* Fixed a bug where player accounts were being created with the name of the host, not the connecting client, which was confusing all sorts of things.<br />
<br />
* The preferred colors from the player profile on each local machine is now sent over and applied to their player account for later reference. This was also causing endless new player accounts to be created, since there was never a match to the connecting client.<br />
** A variety of pieces of code had to be updated to support this.<br />
** Apart from them selecting a color for their faction, this gives them a chosen color in text chat.<br />
<br />
* Added a new OnEndEdit() event for text input boxes, which lets us trigger things when a player clicks out of a textbox.<br />
** This now happens for the map seed in the galaxy map, same as with hitting enter, as both now trigger an immediate regeneration of the map (without you having to hit regenerate map manually).<br />
<br />
* Faction colors for player factions now come from the network data rather than just the local data, which is important for multiplayer.<br />
<br />
* Fixed the bugs with lobby chat messages not appearing properly on the client and host in various ways.<br />
<br />
== Version 2.116 GOG Networking Done ==<br />
(Released August 6th, 2020)<br />
<br />
* Fix a bug where the 'Watch Extra Hops Worth Of Planets' code was being applied incorrectly<br />
** Thanks to Tynendir for reporting.<br />
<br />
* Fixed a bug where Macrophage Spores don't move to new planets when loading a second save game.<br />
** Thanks to GreatYng for reporting, and StarKelp for fixing.<br />
<br />
=== Milestone: GOG Galaxy Networking Integration Complete! ===<br />
<br />
* The Arcen GOG Wrapper has been majorly updated to get your GOG Galaxy Friends list and the status of them so that you can play multiplayer with them if you want to.<br />
<br />
* When you are in the GOG networking mode, it now shows the list of your friends, just like it does for Steam.<br />
** Basically all of the functionality is identical here, in terms of how it shows those who are online, offline, and in-game, and lets you filter between them, etc.<br />
** The one difference is that in Steam we show the "in this same game" status as a light green (like Steam does), and in the GOG version we show that status in a purple color (to match their color theme).<br />
<br />
* The host computer now is able to open up a lobby for friends when it says "open server."<br />
** This works with all the various NAT punchthrough that GOG Galaxy supports, which we are not entirely clear on the details of. This may be as robust as Steam, or slightly less so, but we honestly have no idea. We'll be interested to hear from you! But either way, it's out of our hands at that point, so it's just information gathering.<br />
** The host is also now properly destroying the lobby when it shuts down, so that others won't try to connect to it and not see it.<br />
<br />
* When clicking the Join menu in GOG, the client now sees lists of their friends with four categories instead of just three.<br />
** Friends who are in-game but not in a lobby right now are showed in a dull light purple. Friends who are in game and have an open lobby show up with a bright purple status.<br />
** You can also cycle through all friends, open lobbies, friends in this game, and online friends.<br />
<br />
* In the listing of connections, for GOG it now shows a button that says "closed" instead of "connect" next to each friend who does not have an open lobby.<br />
** With Steam, someone could be in offline status but still let you connect to them. With GOG, we have to have a lobby ID to connect to, so there's no way to hide that and still even attempt a connection to someone.<br />
<br />
* GOG clients are now able to search for lobbies and correlate those to their friends list, which under the hood is a several-step process.<br />
** We are filtering out any potential rogue lobbies created by bad actors, and correlating them specifically to those owned by your friends.<br />
** It's possible that a friend might jump from the status of being offline (prior to opening the lobby) to showing up as someone you can connect to (when they open the lobby), actually, so potentially this actually does allow for the same sort of quasi-stealth game connections that people can do using Steam.<br />
** That said, since lobbies have to be advertised (to your friends) and we can't have a client just blindly try connecting by userID like in Steam, if you open a lobby and your other friends are actively in GOG looking to join a game of AI War 2, they would see that. Not a big thing, probably, but it's something we've noticed about the nature of these two differing systems.<br />
** You may find yourself having to hit refresh a few times on the client side in GOG, as there is a few seconds of lag before the lobby that the host creates shows up. It seems to be under 4 seconds at the most in current tests.<br />
<br />
* GOG clients can now actually initiate connections to a host lobby. And it works!<br />
** The client is aware of getting into the lobby, although it takes a few seconds.<br />
** The client also does gracefully tell them that they are leaving the lobby, and the GOG servers and the host are both finding out about that properly.<br />
<br />
* The GOG Galaxy networking client is absolutely fully implemented, now!<br />
** A huge amount of the actual send/read logic was able to be pretty much identical to Steam, which was not super far off from what we did with LiteNetLib.<br />
** Pro tip: if any other developer is ever wondering about SendP2P messages on the GOG network, those can take any size, not just stuff under 1200 bytes. It handles all of the fragmentation and recombination extremely well, and just as fast as Steam or other services.<br />
** The initial connection process to a lobby with GOG is a bit slower from North Carolina in the US than what we are seeing to Steam, ranging from 4-6 seconds on the first creation of a lobby on the run of a game to 2 seconds for ones after that. But once the connection is established and brokered, it's easily as responsive for us as Steam.<br />
** For us, this is routing through the internet and some firewalls, so the NAT punchthrough or relay servers or whatever it is in this case seem to be doing their job. We certainly did not mess with any ports.<br />
** Because of the nature of how data is read in from the buffers in GOG, we actually were able to get slightly more efficiency and speed with how we manage the heap compared to Steam or LiteNetLib. It's probably not usually a huge advantage, but it is something that we appreciate the efficiency of.<br />
** Essentially all three of the networking options have their own pros and cons a bit, but are all extremely good. That's a real relief to see, and to see them all working.<br />
** At this point it is now down to making the game networking actually work properly to have the game run, and that's a networking-framework-agnostic process.<br />
*** In a lot of respects it feels like after a large move of house, where all our stuff is now out of the old house and into the new house, but we still have a lot of unpacking and arranging to do. It still feels excellent to be done with the movers and have everything in one location now.<br />
<br />
=== More Multiplayer Work ===<br />
<br />
* Removed some old and unused code that is from the Valley Without Wind versions of multiplayer, checking for disconnections due to inactivity. We are handling that at a lower level, now.<br />
<br />
* Got rid of some old code that was mainly in the older version of our engine pre-Raptor, which was checking for "pthread exceptions" that was never something that could happen in the newer engine that we've replaced it with.<br />
<br />
* The game now has some self-checking code in there for giving us some actual feedback when it decides that it can't run the simulation or show visuals for more than 3 seconds at a time.<br />
** This is a pretty rare case, but it was the "too many changes and the client machine goes to black screen and unresponsive" issue.<br />
** This may have fixed the issue, although there also seemed to be another issue that was related to this.<br />
<br />
* Took out some other unused and old data.<br />
<br />
* The "UseSeed" command in the lobby no longer triggers the gamesettings to be saved. That was not useful, and slowed it down for no good reason.<br />
** It turns out that this was blanking out the settings data in a strange way a lot of the time, and causing the black and white view of the game after you reloaded. It also was apparently directly the cause (somehow) of the infinite black screen on the client after this was triggered.<br />
<br />
* Put in a lot of extra error handling for the steamworks networking in particular in case it has internal exceptions while trying to send something.<br />
<br />
* The cumulative effect of a lot of these changes has basically fixed a ton of issues in the lobby, including:<br />
** Clients not being able to use certain buttons or dropdowns.<br />
** Certain dropdowns not showing the right values to clients.<br />
** The client and the host getting a different view of things after certain buttons or dropdowns were used.<br />
** For a while there I was thinking that I was maybe going to need to make some of the controls for the lobby host-only, but now that's definitely not the case!<br />
<br />
== Version 2.115 Imperial Summons ==<br />
(Released August 4th, 2020)<br />
<br />
* You can now have multiple copies of the Devourer and Zenith Trader in a game<br />
** There's no technical reason for this limitation, and we're encouraging Zenith stuff because of the coming Onslaught<br />
<br />
* Quickstarts are sorted alphabetically again, instead of when the quickstart was created<br />
** Thanks to ArnaudB for the bug report<br />
<br />
* Add some defensive code to the Dyson Sphere<br />
** Thanks to GreatYng for reporting.<br />
<br />
* Fixed a cross-threading nullref exception that could happen during unit unselection (probably due to it dying).<br />
** Thanks to GreatYng for reporting.<br />
<br />
=== Imperial Fleet Summoning Changes ===<br />
<br />
* The AI now generates some weaker bonus exos against miscellaneous player targets (energy producers, MDCs, GCAs, etc), just to keep things exciting.<br />
* Fix a bug where Exos were trickling into their targets instead of moving as groups.<br />
* Start the Exos the moment you finish the hack, instead of some random time < 30 seconds from when the transceiver finishes.<br />
** Blame MasterGeese for these changes<br />
<br />
=== Multiplayer And General Lobby Work ===<br />
<br />
* The "partial map generation" code for giving a preview in the lobby now does even less work, bringing our mapgen times down to 200ms or so on average.<br />
** Because of this, we've also moved the mapgen code during partial-map-generation onto the main thread, to keep things as fast as possible. The full map generation still happens on a dedicated background thread.<br />
<br />
* During the lobby, the way that we handle the execution frame loops is now entirely new, and basically skips over a lot of things that were artificially introducing lag.<br />
** This makes the lobby perform far better in general, and also makes the map generation times absolutely flyyyy compared to what they were before, on single or multiple player maps.<br />
<br />
* This is leading to a number of substantial bugs in the lobby, temporarily, but will make the lobby performance far superior in both singleplayer and multiplayer as we get those resolved.<br />
<br />
* The silent "generate partial map" or "generate full map" complete messages now tells you how long it took.<br />
<br />
* The way that mapgen works, it now has a couple of different contexts that it passes in, so that each one has its own random number generator that is not dependent on the others.<br />
** This lets us ensure that there is consistency between runs of the same code on different machines, and on the detailed version (for play) and the non-detailed version (for viewing in the lobby).<br />
** This is largely solving the issue that we just have started having in this latest round of internal builds with a difference in the final map and the original map.<br />
<br />
* Renamed the Generate() method on map generators to GenerateMapStructureOnly() to be more clear, and also make our code more eaily searchable.<br />
<br />
* Adding a planet to a galaxy no longer requires passing in a context object at all. It now generates its own internal random number generator for its initial variables based on the galaxy map seed, its index, and its original position.<br />
** One of the side effects of this is that now when you change which planet you want to be your starting planet, it will keep the name the same instead of shuffling them around.<br />
** This sort of name-stability has actually never been in this game before, and always was mildly annoying. But in multiplayer lobbies it was going to be even more annoying. "I'll take Adam." "Okay, sure." "Well, I clicked it and now it is called Brian, but that's the one I meant." "Wait, what?"<br />
<br />
* When you are loading a savegame or a quick start as a template into the lobby, it now immediately regenerates the map rather than using the old map, because it's highly likely that the new structure will be different in some fashion.<br />
** This then also solves the problem of clients being different from the host on first connect, probably; that was kind of a compound problem in general.<br />
<br />
* Fixed an order of operations issue that could lead to the occasional "No human players found to seed homeworlds for!" error in the lobby in general, but more recently in multiplayer more frequently.<br />
<br />
* Possibly fixed the issue with later player accounts in multiplayer being renamed incorrectly to "player 2" and such.<br />
** There is still a fair bit of duplicate data happening between data structures, and some lobby/startup code that is blatantly single-player-specific that we need to get sorted out.<br />
<br />
* Dramatically cut down the time it takes to generate planet random seeds, but still with keeping them consistent as you click around the galaxy, by pre-generating the random seeds as the first 300 calls to the "broad random" for the galaxy. Any seeds needed after that will be generated the slow-but-unique way. This means mainly things like nomad planets or other things that are late additions. When just adding a planet or two, it's not so slow as to be a problem.<br />
<br />
* Until now, if you loaded an existing savegame it would automatically put you in control of the first player account, even if your profile name did not match.<br />
** It now continues to do that when you are loading as a single player game, which is enormously helpful for testing and just in general, really. But in multiplayer, it now tells you a list of what the available profiles are, <br />
** In general, if you are loading something as a template, it now clears all the old player account data and loads in your own current name as the new first player account (and further players are already added properly as they connect).<br />
<br />
* Fixed up the way that planets are shown as colored in the lobby galaxy map, so that it will work well with multiplayer and also with the new faster single-player-generated stuff.<br />
<br />
* Improved the logic for it properly setting you to be viewing the new planet you've selected after you make a selection in the lobby. Another thing that did work, but with the revised logic had to be made to work all over again.<br />
** This concludes the fixes to all the known bugs that we are aware of that we've introduced into the lobby today.<br />
<br />
* Fixed another nullref that was happening only on the multiplayer custom games after today's changes.<br />
<br />
== Version 2.113 Dyson Growth ==<br />
(Released August 3rd, 2020)<br />
<br />
* Fix a null reference exception if the game wants to spawn a Relic but you own basically every explored planet<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fix a bug with Dyson Sphere units not marking up<br />
** Thanks to GreatYng for reporting<br />
<br />
* Fix a typo in a Battlestation description<br />
** Thanks to ovalcircle for reporting<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed one oversight that was causing the factions tab chat to not show its chat text properly, unlike map and options in the lobby.<br />
<br />
* As text messages come in inside the lobby, it now scrolls to the bottom of the chat window, as you would expect.<br />
<br />
* The maximum length of chat messages in the lobby is now 1000 characters.<br />
<br />
* GetLocalPlayerFaction() is now GetLocalPlayerFactionOrNull(), to support spectator players.<br />
** Additionally GetFirstPlayerFactionOrNull() has been added, and GetIsFriendlyToLocalFaction() and GetIsHostileToLocalFaction() have been updated to work based on that in order to extend support for spectators even further.<br />
<br />
* Planet visibility is no longer determined from your local faction (since for spectators that might be null, and for all humans it is identical anyhow). It now just uses GetFirstPlayerFactionOrNull(), since that's slightly more effient and supports spectators.<br />
<br />
* Huge areas of the AI have been updated to allow for spectators, generally giving them information that mirrors that of what the first player is seeing (objectives-wise and so on).<br />
** In other areas, it simply updates things to not erorr out when you hit hotkeys, etc.<br />
** Spectators also can't run "cmd" messages from chat; it will just show the text as if it were not a command.<br />
<br />
* GetLocalPlayerFaction() on the planet object has been removed, as that did some risky caching for multiplayer in general, and also was not really compatible with spectators.<br />
<br />
* Fixed a couple of errors where non-sim-but-background-fation-AI code was referring to the local player faction. It now refers to the first player faction.<br />
** Probably this would not have made much difference, unless the game switched hosts partway through or something like that.<br />
<br />
* The chat controls in the lobby now work, though there are some bugs in them still.<br />
<br />
* The correct name for each player faction now shows up for even for players who are in spectator mode.<br />
<br />
* Player factions in spectator mode now see in the lobby chat area that they are in spectator mode.<br />
<br />
* Both the lobby chat and main game chat now support more characters in their text -- basically anything that our "condensed" ascii format is allowed to display.<br />
<br />
== Version 2.112 Steam Networking Complete ==<br />
(Released July 31st, 2020)<br />
<br />
* The description of the Ensnarer Battlestation now explicitly mentions that it can use AI Great-Turrets<br />
** A number of people have reported this as a bug over the years, so hopefully that won't happen anymore<br />
<br />
* All of the Fallen Spire ships, including those in the Spire Railgun Shop optional mod, have had their health and shields doubled, but their firepower halved.<br />
** This should make battles with other mega-units last longer, which feels more appropriate, but keep their "damage over time" the same. <br />
** When these were going toe to toe with the AI Exogalactic War Front units, they seemed to disappear too quickly, making them feel weak. This should keep their effectiveness the same as before, but make the battles take about twice as long with those large ships, so that it doesn't feel like instant evaporation at least.<br />
** The one unit not adjusted is the Spire SuperDreadnought from the Spire Railgun Shop mod. That was already maxed out as a "kills everything and is basically invincible" sort of ship.<br />
** Thanks to a variety of players for weighing in on the feel of these units, and Badger for suggesting this adjustment.<br />
<br />
* Rather than having a slider for the number of planets in the galaxy map view, there is now a dropdown.<br />
** This prevents the intense "regenerate map spam" and lag that was inherent in using a slider, along with making it easier to choose a certain number of planets.<br />
** We have made it so that it only gives you multiples of 2 below 60, multiples of 5 below 100, and multiples of 10 above that. This makes it easier to quickly peruse the range.<br />
** Each entry has some commentary on what it will mean to the feel of the map if you are hovering over it in the dropdown with the number of planets expanded.<br />
** Actually, it wasn't even regenerating the map after you changed the number of planets, which was really confusing! You had to hit regenerate map. Now there is no confusion.<br />
** All of this is easier to use as a player in general, on top of being something that is easier to deal with in multiplayer for sync purposes, too.<br />
<br />
* Fixed a longstanding bug where dropdown selections that were open could persist when leaving the lobby or changing tabs within the lobby.<br />
** Thanks to MaverickPenkenn for reporting.<br />
<br />
=== Milestone: Steam Networking Integration Complete ===<br />
<br />
* Fixed an issue where multiplayer clients disconnecting from a host would try and fail to save the last settings from the lobby. Now it does not save the lobby settings from a session you are just a client of.<br />
<br />
* All of the networking frameworks have had their "send to anyone here and myself" code consolidated into the network authority, so when an interface is partially implemented it won't wind up stalling out waiting on the host.<br />
** Less code duplication is also always good, but it wasn't clear that this was a complete commonality until we got partway into the Steam framework implementation.<br />
<br />
* A new ArcenSteamClientConnection wrapper has been created to keep track of the Steam connection on servers.<br />
** This now properly is registered while the steam connection is alive, and all of the "waiting for player to connect" and "player disconnection" events now happen properly.<br />
** For some reason, we are not getting the "host has accepted you" callbacks on the client end, but that doesn't really matter. As we start actually having our challenge-response data sent via the higher-level networking code, that bit will become irrelevant as it establishes itself within part of one second anyway. It's just a curiosity, or potentially something that is only meant to trigger host-side. Frankly the documentation is sparse in points, both from the Facepunch C# wrapper and the Valve C++ baseline, so this might be working as intended.<br />
<br />
* Substantial progress on the Steam network transmission of data. Still not quite seeing it register yet, but we're getting close.<br />
<br />
* The full suite of network logging has been integrated into our steam networking wrapper, now.<br />
<br />
* When a Steam host shuts down the connection, the steam client computers now definitely notice and react to that. The inverse was already working from the start.<br />
<br />
* Figured out the missing information on how to get data from the facepunch steamworks wrapper (call Recieve() to trigger the other events), and are sticking with the derived classes methods rather than the interface method, since for relay connections it seems like the interface method is not fully implemented.<br />
** With this in place, we're now getting messages on the client machine, and they are properly decoded! The host for some reason still doesn't get messages back, but this is progress.<br />
<br />
* Fixed a bug in our connection status window code that was causing it to stop showing a timer on connection stages after the earliest ones.<br />
** With LiteNetLib, that all flashes past so fast we could not tell that was even happening. With Steam currently stalling out with the host not getting messages, it became apparent.<br />
<br />
* Previously it was possible for our socket mode to be off, and silently ignoring messages we were sending.<br />
** This was initially done to make it so that any lingering messages that would try to be sent after a disconnect would not cause visible errors, but in this case we've wound up with the socket state being off on the steam networking, despite it being active, and this thus resulting in client messages being composed but not actually sent. That was not obvious because of the lack of error messages.<br />
<br />
* Figured out a stupid mistake in our own code, indeed a single line of code, which was preventing the client from sending data properly back to the host.<br />
** Steam networking is now fully functional in terms of sending data back and forth. There is some sort of issue with the world data not getting across properly, but we have to now verify whether that's limited to Steam or also happens on LiteNetLib.<br />
<br />
* Added in a substantial amount of extra error tracking in our univeral and game-specific network message handlers.<br />
** This helps us to find out where errors actually are.<br />
** In the case of steam, right now we are getting some exceptions when the host tries to tell the client what their player profile number is.<br />
<br />
* Fixed a simple typo that was having us send a junk message via both frameworks to the client when they first connected.<br />
** In both cases, this led to the galaxy map not showing up properly on the very first world connect. But in the case of Steam networking, it also led to an exception because the byte array was too small.<br />
** This extra smallness is actually more accurate, and basically it was only not erroring with LiteNetLib because the buffer array was larger than needed because they are pooled.<br />
** This is an interesting difference between these two networking frameworks, but neither one is particularly "wrong. But it does make Steam slightly more sensitive to certain errors in a way that is useful, because it's an error in both cases that manifests in other places.<br />
** Anyhow, this seems to argue for us to internally use Steam as our main testing framework, additionally because that means we are round-tripping out through the internet and Valve's servers and back rather than having the speed of a LAN.<br />
** This also means that the Steam networking library is fully completely integrated, which is a very major milestone! Now it's all game logic, regardless of what is going on with the two networks.<br />
** Also worth noting that it's under 3 seconds to connect a client to the lobby in our test case, using the Steam relay servers, etc. On the LAN it is under one second, so that's pretty killer.<br />
<br />
=== More Multiplayer Work For All Frameworks ===<br />
<br />
* "Planet GalaxyMapVisuals in CenterGalaxyViewOnPlanet null!" will no longer happen. It was a thing relating to trying to center on a planet slightly too early, and the population of the galaxy map still having failed.<br />
** We are now bypassing that and using the raw internal transform offsets to calculate the correct camera position.<br />
<br />
* In response to the initial challenge from the host, the client no longer just sends their profile name. They now also send their list of installed and enabled expansions and mods.<br />
** The host then compares that list to its own installed and enabled expansions and mods. If there are differences, then it rejects the client connection and does a popup on the client and a chat message on the host side explaining why.<br />
** It also notes in there that both parties can enable or disable expansions or mods in the Game tab of the Settings menu to get things to match.<br />
** Please note that, yes, in some cases there will be mods that are enabled but which "wouldn't do any harm" because their functionality won't be triggered in the campaign in question. We don't have any way of knowing that, so we have to err on the side of caution.<br />
** When it comes to expansions, there are none that "wouldn't do any harm," because all of them add some ships and features to the game in general that all players need to have. For instance, the first expansion adds a bunch of new turret options that are available to choose from in any game you play with that expansion on.<br />
** At any rate, we've gone out of our way to make it easy for people to disable expansions and mods so that they can play with friends who don't have those same expansions or mods. The last thing we want is for the only solution to this sort of thing to be someone reaching for their wallet or having to faff about in the filesystem.<br />
<br />
* Low-level chat messages that are sent to everyone from the host are also now sent to the host themselves. Previously, they could not see messages of this sort, turns out.<br />
<br />
== Version 2.111 Initial Steam Connection ==<br />
(Released July 30th, 2020)<br />
<br />
* Fix a null reference exception in my new spire relic code<br />
** Thanks to Chuito12 for reporting<br />
<br />
* Nanocaust: Make the AI wait a bit longer before unleashing Exogalactic units on it. Remove some deprecated code<br />
** Also the exogalactic units won't hang around to kill the entire nanocaust, so there's a chance it can recover.<br />
<br />
=== Milestone: Initial Steam Networking Connection Between Client and Host ===<br />
<br />
* The Steam versions of the game now initialize relay access on startup, to make it so that the first connection using Valve's relay network will be extra fast.<br />
** If you wind up not playing any multiplayer, this is absolutely harmless. If suddenly it is flagging your firewall on game start on the Steam versions of the game, though, that might be why.<br />
<br />
* The basic connection through Steam's newer networking sockets connection is now in place, using their relay servers as recommended. This is the approach that absolutely bypasses NAT traversal and anything else of that sort, and in fact hides your IP address from anyone you are playing with. The claim is that their backbone is faster in most cases than the general internet one.<br />
** If need be, we can make a "Steam over IP" version that allows for their networking sockets stuff to run more directly over UDP, and only fall back to their relay servers if there is a problem. This would be a lot like LiteNetLib, except with much better NAT punchthrough making use of ICE and STUN and all those things.<br />
** For now we are sticking with Valve's recommended practices.<br />
** Beyond just getting the initial connection up, we don't have anything there yet, but on the server we can see the Steam username of the client who requested to connect and who forged the connection.<br />
<br />
== Version 2.110 AI Exogalactic War Front ==<br />
(Released July 29th, 2020)<br />
<br />
* Spire Relics now have additional text in their descriptions explaining either A. whether the relic is on route to a particular planet , or B. that this relic must build on this planet<br />
** Thanks to Lord of Nothing for suggesting<br />
<br />
* All of the units that were previously named "Galactic War [name]" are now just named "[name]"<br />
** However, in the tooltips for them, their faction should now say "AI Exogalactic War Front" in whatever the hunter fleet's color is, rather than saying the AI Hunter Fleet.<br />
** This lets us keep the shorter name, while making their sub-group and source a lot more clear.<br />
** This does need testing, so please let us know if it doesn't show up correctly somewhere. This is using a new xml feature called "override_faction_name", which lets us use a different faction name for some units in a faction, but without actually creating a new faction.<br />
** Thanks to Ovalcircle for leading the discussion that led to this.<br />
<br />
* Spending a ton of science will now increase a player faction's Overall Power Level very slightly.<br />
<br />
* Remove some inaccurate description text for the Rorqual Hejira<br />
** Thanks to GreatYng for reporting<br />
<br />
=== UI for Steam Networking ===<br />
<br />
* Added the new ArcenNetworkConnectionOption class, which we are using as a basis for things like lists of your Steam friends that you can connect to.<br />
** On the network authority, there is a new PotentialServerOptions, which is used to list out such things. This can be used for anything that we need to list a variety of to connect to, not just friends in Steam and GOG. This is in contrast to the "type in an IP" method that we use with LiteNetLib.<br />
<br />
* Started building out the Steam networking framework layer, currently based on the ISteamNetworking implementation that most games use.<br />
** We MAY opt to also start supporting the newer ISteamNetworkingSockets framework that Valve has rolled out more recently, but that would be an alternative networking framework in AI War 2 that you could choose between.<br />
** The fundamental premise of those two Steam networking setups is really different, and while the newer one would in some ways be easier for us to implement, it seems a lot less familiar to the average Steam player, involves IP addresses potentially, and is maybe less battle-tested, but who are we to say.<br />
<br />
* Previously it was still possible to have some exceptions happen silently in the Engine_Universal main loop, and they would log to disk but not show up in your face. Fixed.<br />
** It was also possible to get some silent errors when clicking buttons and other UI elements, turns out. This made the application just seem not to respond to the click, but now it properly shows the error if there was one.<br />
** Also it was possible for certain errors in the UI call stack to prevent the display of the error window.<br />
<br />
* When you try to connect to an IP address, or you change your active networking framework, the game settings now get saved immediately so that that is remembered even if you shut down the program right away.<br />
<br />
* There is now a screen that will be used for Steam and GOG connections, from the client side, and in Steam it now:<br />
** Shows a list of all your Steam friends, with ones that are in AI War 2 at the top, then ones that are online, and then the rest below that.<br />
** Lets you sort to just ones that are in AI War 2 or online.<br />
** Lets you refresh the list to check for updated statuses.<br />
** There is a connect button for each friend, but that is not functional yet. Just haven't gotten to that part yet.<br />
<br />
== Version 2.108 Galactic War Units And The Exostrike ==<br />
(Released July 28th, 2020)<br />
<br />
* Completely rework the way Exogalactic strikeforce leaders work, to allow per-AI-Type customization. No functional change right now, but intended to support some new AI types for DLC2<br />
<br />
* HandleHelperJournals() has been split out into a bunch of sub-methods, since they can error in rare cases and it would be nice to know where the error generally is.<br />
<br />
* Fixed an issue where we were not letting negative risk analyzer data be saved properly. Turns out that has a good reason to be negative at times.<br />
** Thanks to Badger for reporting.<br />
<br />
* Added a new UI feature that is a throwback to some of the functionality we had in various past games: the "center screen message"<br />
** This is basically a message that can show up near the top center of the screen, and stay there for a bit or for as long as needed.<br />
** It won't block the mouse, and it is over everything except modal popups and tooltips.<br />
** This isn't something we would want to use all THAT often, but for cases of things like "hey the server isn't responding, why is MP stalled," this is exactly the sort of UI functionality we need.<br />
<br />
* Fixed a harmless bug where, for the last few months since we've been doing multithreaded loading of camera xml files, the "PrivateVisExtensions" assembly would sometimes have annoying but unimportant errors appear on startup.<br />
** Essentially, it turns out that loading classes from a custom dll is not entirely threadsafe. Go figure. The fix for that is simple, and it doesn't slow things down, but now we know.<br />
** Thanks to GreatYng for the first report of this we'd had outside of ourselves running into it.<br />
<br />
* Fix a bug where macrophage achievements weren't triggering if you killed all the Telia<br />
** Thanks to GreatYng for reporting and StarKelp for the fix.<br />
<br />
* The in-game credits have been updated to include two more individuals who are key DLC2 testers.<br />
<br />
* Added new GetWasWorldStartedOnGameVersionOlderThan() and GetWasWorldStartedOnGameVersionAtLeastThisVersionOrNewer() to world, which let's people find out in a really efficient way if a world was started before some certain point.<br />
** We can't be accurate past a month or so ago, because we were not tracking the original savegame version back then. But it's useful for looking at saves older than the more recent ones and altering them if need be.<br />
** This is now used specifically to fix this macrophage disabled stuff only on older savegames than 2.108.<br />
<br />
* Fix a mispelling in the Mesopotamian planet names<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fix a typo, "reciever" to "receiver"<br />
** Thanks to Apthorpe for reporting<br />
<br />
=== UI Changes ===<br />
<br />
* In the Load Menu, campaigns are now sorted by 'most recent save game in that campaign' rather than alphabetically<br />
** Thanks to Puppet Master for the suggestion.<br />
<br />
* The default sort for the load menu is now by date.<br />
<br />
* Rename 'Exogalactic Strikeforce' to 'Exostrike' and 'Extragalactic War Units' to 'Galactic War Units' in UI. Having "ExoGalactic" and "ExtraGalactic" was a perennial source of confusion<br />
** Note that internally the code uses the old names for the moment<br />
** Thanks to a discord conversation involving relmz32, Oryutzen and NRSirLimbo<br />
<br />
=== Dyson Sphere Buffs ===<br />
<br />
* The Dyson Sphere's ships should now really level up after the hack<br />
** Thanks to GreatYng and zeusalmighty for the bug reports<br />
<br />
* Dyson Sphere hack descriptions now say "This hack will make the Dyson Sphere very unhappy with you for a while" to clarify the behaviour.<br />
** Thanks to Apthorpe for suggesting<br />
<br />
* The Dyson Sphere now gets additional income (ie it can build ships faster) that scales with AIP. As AIP goes up the Dyson and Antagonized Dyson get stronger<br />
<br />
=== Multiplayer Work ===<br />
<br />
* SendMessageToAllClients() has been split into two methods: SendMessageToAllClientsWhoAreFullyConnected() and SendMessageToAllClientsRegardlessOfConnectionStatus().<br />
** We really don't need heartbeats and frame auths and so on going to clients who are still connecting in.<br />
<br />
* Also added a GetCountOfClientsWhoAreFullyConnected() that lets us know if there are any clients who actually have gotten all the way in (and thus we should send world data)/<br />
** And added GetCountOfClientsNeedingWorldData() that lets us know we should make everybody wait for a bit until those people connect in. Otherwise everyone won't be on the same page.<br />
<br />
* Added a OnServer_IsAtPausedSpotWhereGameWorldCanBeSent() that lets us wait for a break in things happening (usually only 400ms or so at most) to then have a clean slate to send a world state to a connecting client without that state changing between them being sent the state and them getting it.<br />
** Along with this, if GetCountOfClientsNeedingWorldData() is more than zero, then it now pauses authorizing more simulation frames until the world is fully taken in by the new clients who are joining.<br />
<br />
* When a multiplayer game is stalled out for some reason, it now uses that central screen message to let you know what is happening, and if possible, why it is happening.<br />
** The game itself will have stopped having any action at this point, though you can still scroll around and look at things and give orders. But nothing is proceeding on the enemy side, so you don't have to worry about it being in your way.<br />
** When a client is first connecting into the lobby, it also uses this, to basically get the host and any other existing players to wait a moment before making more changes, etc.<br />
** On the host, this is already set up to give some context about the exchange under the hood that is happening with the new client.<br />
<br />
=== Multiplayer Transition To LiteNetLib ===<br />
<br />
* Okay then... we are switching network libraries when it comes to our non-Steam/non-GOG transport layer. Instead of FORGE Remastered, we'll be using LiteNetLib.<br />
** FORGE has grown a lot over the years, but the version we were using was from 2018...ish. We looked into updating our version of the code, but were not thrilled with how complicated it was going to be. Since we had working AI War 2 multiplayer on FORGE at least as recently as 2017 (in an alpha state), staying with the existing code made a certain amount of sense.<br />
** However, we started running into really long delays with something as simple as sending 10 bytes to say what our profile name was. This was taking upwards of 14-18 seconds between two machines sitting three inches apart and both within five feet of a powerful wifi router. We verified that the polling was happening hundreds of times per second, and that massive amounts of data was being sent via sockets. But in the internals of the old version of FORGE we have, it was taking it quite a very long time to assemble that into a full message, despite all the churn of hundreds and hundreds of data reads that were apparently all just empty headers and then noise. <br />
** Time for a new approach. It's worth noting that the current version of FORGE still lists all the most internal classes as "in development and lots of dire warnings," so that was another reason for switching up frameworks.<br />
** We chose LiteNetLib at this point, and within 40 minutes of dropping that in, we had the first successful connection between the machines on using this framework for the game. It was just a simple "hello client" message in basic unicode, but it arrived extremely instantly, as expected.<br />
** Next steps are going to be doing some cybernetic implants on LiteNetLib, rather like what we did on FORGE, to make sure that it integrates with AI War 2 properly and our network authority, and that it communicates as directly as possible with our own pre-formatted bitstreams. Most of that should be part of one day of work, at this point. We shall see. Then it's back to the actual larger "build out the multiplayer part of the game" work, but minus the lag that was tripping us up the last day or two.<br />
** It's also worth noting that, with this switch, we had to unfortunately also lose the awesome NAT punchthrough work that Doug Fields did for us with the FORGE interface back in 2018, but LiteNetLib has some of that of its own. And hopefully most people use Steam or GOG if they are behind firewalls of any complexity (since relay servers then become required, and that's where the free relay servers are).<br />
<br />
* NetPeer in LiteNet now inherits from ArcenNetworkClientConnection.<br />
** For now, we are using our own methods to generate the ConnectionIndex, rather than using the existing peer.Id. There may be some numeric conflicts, otherwise, but we can also change this later.<br />
** We also are initializing everything on the Arcen-integration side, keeping our own clientsOfServer list for quick access, and then calling the game-layer RespondToNewConnectionAcceptedByTransportLayer() that will kick things off.<br />
<br />
* PrepareMessageForSending() has become WriteLogOfSend().<br />
<br />
* Added a new SendToSpecificPeer() method onto LiteNet's NetManager. Not sure why that variant didn't seem to exist.<br />
<br />
* Wiring back up our LitNetSocket wrapper class:<br />
** SendMessageToHost_Inner() done.<br />
** SendMessageToAllClientsRegardlessOfConnectionStatus_Inner() done.<br />
** SendMessageToAllClientsWhoAreFullyConnected_Inner() done, using the new SendToSpecificPeer() method.<br />
** SendMessageToSpecificClient_Inner() done, using our own ConnectionIndices for now.<br />
<br />
* Booyah! Exclamatory phrases are not the norm in our patch notes, but this is an exciting moment. LitNetLib is sending messages, and doing so with speed and accuracy and a minimum of fuss. The username travels three inches in well under a second, as should be expected.<br />
** At first, I was getting some very strange data sent across, and I figured that this was going to be an endianness problem, but actually all of the .NET/Mono data is the same endianness from the look of things. Which makes sense, given that otherwise savegames would not work from computer to computer.<br />
** After spending the night with that rattling around in my brain, this morning I decided to definitely do some profiling of the data before I started messing with the #ifdefs.<br />
** First thing I noticed was that I'd chosen to use the RawData byte array, and immediately next thought was "I better check there's not a network header in there." Turns out, yes, there's a UserDataOffset. The first four bytes are not my data, and so of course it would give gibberish as if the endianness was wrong. Just starting my reads from the proper offset makes everything work instantly.<br />
** All of this is from a Mac to a Windows machine at the moment, but my I'll be testing three-way with my linux machine as well. Right now laptop is sitting closed under the Mac.<br />
<br />
* LiteNet logging now gets funneled to our own main logging pipeline.<br />
<br />
=== Continued Multiplayer Work ===<br />
<br />
* A fair bit of work has been done to make intentional disconnections from the client or server tell the other side more quickly.<br />
** This should help to avoid some disconnect-and-reconnect issues that are otherwise inevitable, and it just makes things feel more responsive.<br />
<br />
* Additionally, when you use the in-game controls to exit the program as a while, it now takes one extra half second to lets Steamworks and GOG actually do their exit logic properly, rather than rushing out the door.<br />
** This should hopefully help with any cases of the game still being thought to be running on Steam in particular after it closed.<br />
<br />
* When you exit the game, while it is doing its brief exiting stuff it now throws up a center-screen "exiting.." message.<br />
<br />
* Got rid of OnServer_WaitingOnConnectionIndices, as this was basically a duplicate of something we are doing better and more cleanly a new way, now.<br />
<br />
* UpdateDebugText() and all of its related variables have been removed.<br />
** This was the sort of thing that, in all of our prior games before Raptor and moving to 3D, you could hit F3 and get output information from. But it has never really been used in AI War 2 properly.<br />
<br />
* Got rid of WorldTransmissionMessageType, as it was needlessly complicated.<br />
** This was essentially us breaking the world transmission data into multiple parts and then sending those in parts. Historically there were two reasons for this:<br />
*** Back in AI War 1, we were using the Lidgren network library, and even though it was trying to work around the MTU (typicaly 1200 bytes) of various networks players might be on (or passing data through indirectly), it was often having bottlenecks and slowdowns with how it sent fragmented messages through the network card. Our theory at the time was that it was flooding the buffers of the NIC, rather than giving it data at a more reasonable pace. Network cards have grown enormously in the last 11 years, as have the OSes that control them, so that's not really a concern now. All of the newer network libraries that we would be using to send data should be able to handle 1MB of data without incident.<br />
*** Secondarily, for AI War 1 and for the A Valley Without Wind games, we were sending enough world data that you could see a noticeable wait time, and by handling this above the network transmission layer we could give you visual feedback on transmission progress (even though the whole act of that actually slowed it down). Eleven years later, we have networks that are vastly faster basically everywhere in the world, and the world savegames for AI War 2 are much more efficiently packed than AI War 1 was. So sending a file like this really is like a midsize image on any website you visit, now. Not really a progress bar sort of situation, especially if the progress bar itself causes slowdown.<br />
<br />
* ConnectionStage has moved from being just a UI-only element to being ClientConnectionStage as part of the ArcenNetworkAuthority, so that clients can better keep track of their connection status. Usually this is less than a second or so, anyhow, but we still need to keep track of it in case something goes wrong in particular.<br />
<br />
* The host now properly sends the world data to the client, for the first time in three years or so.<br />
** The client is having some trouble understanding it thus far, so now is a good time to build in error handling (it was just silently failing, until now).<br />
<br />
* Added a new SendLowLevelChatMessage() method on the network authority, which is used mainly for sending back and forth arbitrary messages from clients and the host to explain about the status of things. These can be echoed to all other clients or not, as the case warrants.<br />
<br />
* If the client fails to load a world sent by the host, then the host and any other clients all get sent a low-level chat message about that, the client gets kicked out (since they never made it fully in), and the client gets a nice error message on their screen and in the log.<br />
** This way we can solve whatever the problem is, and nobody is left sitting wondering why things are slow (when in fact they errored).<br />
<br />
* When you are loading a quick start, or loading a savegame as a template into the lobby, it now clears the chat log. This was definitely not information that needed to persist from a prior game to the new lobby!<br />
** These sorts of chat log messages, which are kept over the long term for the game (up to a limit), are no longer shown in the lobby at all.<br />
** Instead, we now are using LocalMomentaryDisplayLog, which is something that doesn't get sent with savegames, and which normally is just "stuff showing on your sidebar during the game for a little while."<br />
*** This is perfect for the lobby, and in the lobby we are just showing the last 100 of these, and not clearing them until you reach the game itself.<br />
*** These things are actually shown by timestamp, not by gamesecond (which isn't ticking yet), so that's just extra perfect for a lot of reasons.<br />
*** This also leads to privacy for people who were talking before someone new joined -- you only see messages that were sent after you were connecting -- although that's not hugely important in most cases.<br />
<br />
* Got rid of ArcenUI.Instance.CurrentNowUTC, since that was putting all of our lobby chat messages in the British time zone. We didn't use this anywhere else, and it was puzzling that we used it at all.<br />
<br />
* NatPunchEnabled is now true on the server and client for LiteNetLib. We'll see how well that works.<br />
<br />
* Added a new debug setting to the network section of the settings menu: Write Network World Serialization Logs<br />
** When sending a game world across the network to a client, write NetworkWorldSerialization.txt, and when getting one from a host write NetworkWorldDeserialization.txt -- both in the PlayerData folder (but on two different computers). The only real reason to turn this on is if a client is unable to join a host and gets an exception; this lets us do a diff of the two files and figure out what is different about what the host is trying to send and the client is trying to read.<br />
** Note these logs are often huge, sometimes hudreads of MB each. Compressing them into a zip or tarball and then uploading them somewhere we can download them to find out what is happening is a good idea. Hopefully as a player you will never need this, but this is basically a way for us to test the network world sync process, which otherwise can be incredibly opaque and take a lot of time to hunt down.<br />
<br />
* Used our new network world logging capabilities to fix an error in network world transfer where it needed to send the game version in a different format.<br />
** The client now looks at the game version very early on, and if it does not match it sends a message back to the host telling the host what the problem was.<br />
** Basically: If the client can't join because of a version mismatch, that gets shown and things happen properly.<br />
<br />
=== Milestone: World Sync Between Host And Client ===<br />
<br />
* Milestone! Initial transmission of the world data from the client to the host now works properly.<br />
<br />
* When a local player account is missing the following methods no longer throw errors:<br />
** SwitchViewToPlanet<br />
** OnClient_SendClientBatchToServer (actually still errors, because it's useful to have it do so).<br />
<br />
* PlayerAccount is now more strongly linked to the new ArcenNetworkClientConnection, and its connected status is now a method called OnServer_GetIsConnected().<br />
** There is some duplication of concepts here, but when you factor in the way that things like viewing of planets are synced in multiplayer, this is a worthwhile separation of concepts.<br />
<br />
* If two players with the same profile name try to connect to a game at the same time, it will now prevent the second one from joining and tell everyone why.<br />
** Bear in mind that these are AI War 2 profile names, not Steam or GOG or what have you. Everyone needs to have a unique AI War 2 profile name in the current game, but they can change up their names however they want and global uniqueness doesn't matter beyond the current game you are in.<br />
<br />
* In situations where a player 3 joins after player 2, and it's the first time player 3 has been in this particular world, player 2 now gets told by the host about player 3.<br />
** And of course all the more complicated permutations of this. It's the new FromServerToClient_SendNewPlayerProfile.<br />
** This is needed specifically so that all clients can know which planets are being viewed by other players, so that which planets are "tier 1" processing is honored and identical everywhere. Among other later needs.<br />
<br />
* Clients connecting to a host are now properly told what playeraccount they have been put in charge of.<br />
** This makes PlayerAccount.Local not null on their local machine, and lets them give orders and whatnot from their spot there.<br />
<br />
* Errors that happen during the main sim step will now be more visible in multiplayer contexts.<br />
<br />
=== Milestone: Initial Sharing Of Lobby Between Host And Client ===<br />
<br />
* Milestone: Clients are now able to load into the lobby, and they and the host both see most (but not all) changes that are made.<br />
** Clients are not yet assigned to any faction (making them just spectator-mode for now), and there are some specific bugs with certain data that isn't synced correctly just yet.<br />
<br />
* Map generation can no longer happen in the lobby except on the host.<br />
** We have no real way to be sure that map generation is deterministic between machines, so we need to do a world sync each time anyway.<br />
<br />
* When the map is regenerated on the host during a multiplayer lobby, it recreates all of the playeraccounts needed for each of the player connections that exist.<br />
<br />
* And when the map is regenerated on the host during a multiplayer lobby, it now re-syncs the entire world data to all of the clients so everyone is up to date.<br />
** This also solves the "authorized through frame number" issue, which was really just a smaller symptom of this larger issue.<br />
<br />
* Both the client and host are now verified able to add, remove, and edit factions and have that properly affect the world.<br />
<br />
* Window_ServerMultiplayerConnectionStatus has been removed, as we no longer use that. We've been using the new center-screen messages instead, or the chat sidebar, as needed.<br />
<br />
* In multiplayer games, the save button is now disabled and says: Cannot Save Game As Client<br />
** If you click it, it gives you this message: Unfortunately, only the host can save games in multiplayer. To save on bandwidth as well as on processing power between your machines, there is a LOT that is calculated only on the host machine. If you were to save a copy of the game on your client's end, loading it would lead to a lot of wrong and missing data.<br />
<br />
* Additionally, autosave is now something that does not happen on multiplayer clients. Just the host.<br />
<br />
* The header of the load quickstart and load saved game menus now make it clear if you are loading for multiplayer or single-player.<br />
** Also on these screens is a new "[Multiplayer Questions?]" bit of text up at the top that appears only on the multiplayer version, and which has some helpful mouseover text.<br />
<br />
* Rather than having an annoying explanatory popup to click through every time you open the various ways of hosting or joining a multiplayer game, it now puts that extra information under the "[Multiplayer Questions?]" section up at the top of those screens.<br />
<br />
* At the top of the lobby screen, it now says if you are joining as a client or a host to a multiplayer lobby, as well as having that same "[Multiplayer Questions?]" bit.<br />
** This includes the following new text in its mouseover text: Except for the host, all players are spectators by default. There is only one human player faction by default. Any number of players can share control of a single faction, or each player can have their own faction that they control on their own. You can mix and match as you like.<br />
<br />
* The connect by IP window has been completely reworked visually so that it matches the rest of the game and doesn't look like the old temporary style that we were using in 2017 (because that's what it was).<br />
** This also lets us put extra information on that screen to help anyone who might be confused.<br />
<br />
* The client connections status window is now patterned as a continuation of the connect by IP window, and it's nice and graceful and in the new style.<br />
<br />
== Version 2.106 Immortals and Unresponsiveness ==<br />
(Released July 23rd, 2020)<br />
<br />
=== Bugfixes ===<br />
<br />
* Put in field names for the risk analyzers saving, so if they have trouble serializing we can see which field it was.<br />
** Also then made it so that the total increase and net increase both are automatically clamped to 0 instead of a negative number so that they won't throw an exception when trying to save.<br />
** Thanks to GreatYng for reporting.<br />
<br />
* When stacks are split, they now have their "time on planet" and "time alive" set to be whatever the original stack was. Same with the amount of cloaking points they have lost, and the number of cloaking points they have left.<br />
** This prevents a variety of abilities from triggering, including the "invincible if only on this planet for x seconds."<br />
** We also made it so that dying to remains does not reset the "time have been alive or on this planet" counter, for similar reasons.<br />
** This keeps the vanguard hydra heads from being insanely impossible to kill, among other issues that are probably pretty much all in the player's favor to have resolved.<br />
** Thanks to crawlers for reporting.<br />
<br />
* Added some extra debugging information for the status of gamecommands that are queued, to see if there are clogs happening. At this point, we can't replicate any evidence of that, though we have some reports from multiple players of it. So maybe the problem either takes a bit to manifest, or is in a different area of the code than we expected.<br />
<br />
* AIP should no longer increase when things die to remains if you have the "ships of X type die to remains instead of dying entirely" galaxy map option on.<br />
** This is untested, but should work.<br />
** Thanks to crawlers for suggesting.<br />
<br />
* Found and fixed the core typo from a few builds back where remains that were being rebuilt were being set to have the cost of the rebuilder, not themselves. This was previously massively overcharging players for building most things, but then once we put on a band-aid to fix that, it started giving it to them for basically free.<br />
** Thanks to Lord Of Nothing for the report and save.<br />
<br />
* Fixed a bug from the last few versions that nobody seemed to notice, where the galaxy map was not centering on planets properly when you first went into the game after loading a savegame. This had to do with when we were calculating the position of the planet, and that not always being calculated before we tried to center on it.<br />
<br />
* Fixed a bug where it was possible that a client would send more commands to the host than it would tell the host about, and thus the host would not know to read the extra ones (or vice-versa). In single-player you are both the host and client, so it still applies.<br />
** This was happening because of multiple threads adding to the queues of commands at the same time that the queue was being drawn down.<br />
** This was actually something that probably could have happened since more or less forever, but it was substantially more likely in the last few versions because of some efficiency improvements we made.<br />
** Additionally, we have now switched to using a ConcurrentQueue for each of those collections, rather than a regular Queue. This should also help with potential contention.<br />
** There was also the possibility that we might not be able to get enough commands out of the list for some reason to then send more, and we are also now guarding against that.<br />
** Previously, this problem was manifesting as orders not being carried out when you gave them, sometimes or all the time. And things like "save my game" and "pause or unpause" not working anymore.<br />
** We were able to duplicate this in one savegame after some time, but no longer can. Given the intermittent nature of this sort of thing, we can't say for sure that it is solved -- but the logic of what was going on makes sense, and the fix we put in should hold that at bay. It's one of those "can't prove a negative" things, at the moment, so fingers crossed it just never shows up again.<br />
** The characteristics that we observed while this happens, if it happens to you and you want to see what you can tell us:<br />
*** In the escape menu, under the memory pooling performance, the number of raw commands were steadily climbing. One or two every few seconds. This should never happen in that way. Increases happen, but not a steady drain flow like that.<br />
*** In the escape menu, further down under the Commands Queued By Type, you may see some null warnings up at the top of that list, now. That wasn't there when we observed it, but it would be if it ever happened now.<br />
** Thanks to zeusalmighty, Puppet Master, Gdrk, and GreatYng for reporting and giving advice on how to reproduce it.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* In our copy of FORGE networking, we've removed some useless extra code that was for the UniversalWindowsPlatform framework, which we won't be ever using.<br />
<br />
* In our copy of FORGE networking, we also got rid of a very useless set of "pending" messages on the UDPClient and UDPServer, which were ostensibly to help with reliable messaging, but in reality was just doing some useless event handling and invocation, and some useless cross-threading locks. It just put the things in the basket and took them back out, never checking the basket or doing anything with it. Thankfully, there is a second basket for reliable UDP inside the UDPPacketComposer, so this was just extra redundancy.<br />
<br />
* Added a new ArcenNetworkClientConnection abstract class, which we now store on ArcenNetworkAuthority in a ClientConnections list.<br />
** These are connections, not yet correlated to specific players. But it lets the network pipe connect up a specific connection with a specific player (or reject that connection if it's not okay).<br />
** Each individual networking framework (ArcenSocket descendent class) is actually responsible for keeping track of these connections and populating them.<br />
** But the actual network authority does the job of authenticating them into a given game and handling the challenge/response work, figuring out a match to a player slot in the game, etc.<br />
** With this in place, we can now get rid of GetNumberOfConnections(), because that's now moved out of the socket and into the network authority.<br />
** This is a substantial refactor, in that it will really make Steamworks and GOG a lot easier for us to work with as networking frameworks, faster.<br />
<br />
* NetworkingPlayer in FORGE now inherits from ArcenNetworkClientConnection, and is the first version of a networking framework using this new pattern.<br />
** On NetworkingPlayer, rather than having a public { get; private set; } for some of the immutable connection things, we now use them as public readonly. This is both more efficient in performance (slightly), but also prevents sync issues between this class and its new underlying abstract class.<br />
** This class gives the information it needs to the base class, and doesn't bother registering the host NetworkingPlayer as an underlying client connection at all, keeping things simple.<br />
<br />
* A bunch of stuff with the FORGE networking logging has been replaced with wrappers around our own logs, so that if there are internal exceptions those don't just go nowhere invisibly anymore.<br />
<br />
* Trimmed out a bunch more old FORGE code that has been commented out for years from the look of things.<br />
<br />
* RespondToNewConnectionAcceptedByTransportLayer() is definitively game code, not part of the actual networking transport layer, and it has been moved into the central codebase and away from any specific networking framework.<br />
** "Hello friend, you've connected: what's your profile name you want to play under?" Etc.<br />
<br />
* A fair bit of the "initial chatter" of clients connecting to a host and the host responding are now logged to the debug log no matter what.<br />
** There really is not that much that is said, and this will certainly help someone at some point who is having some sort of connection issue.<br />
<br />
* When clients are connected to the host, now the host not only shows the number of clients, but also sees their profile names that they have chosen to connect with.<br />
<br />
* A bunch of event-driven stuff on the FORGE networking has been made a bit more inline, improving performance a bit and also reducing certain areas of complexity.<br />
<br />
* The initial challenge-response work, and "what's your name" work, is all functional again. This is stuff that will be identical regardless of the network framework.<br />
** The host can now properly see the profile name of the client, and is poised to send the client back all the world information.<br />
<br />
== Version 2.105 Selection Hotfix ==<br />
(Released July 22nd, 2020)<br />
<br />
* The game still loads various xml files asynchronously, and loads icons and music and sound in that fashion, but it no longer tries to load the ships, shots, or wormholes in that way.<br />
** This was just too unreliable, because of some issues in the unity engine. It didn't affect all players, and not all the time -- but enough that it majorly affected the stability of the game for some folks, and that's too much.<br />
** This also removes the potential for the really long (15-30 second) lag time when you are first opening a new game or the lobby if things didn't load during the loading period.<br />
** Thanks to Ovalcircle for the most recent set of reports.<br />
<br />
* Previously, the game was using a standard List<> object for keeping track of selected ships, and that sometimes ran into inefficiencies and cross-threading issues.<br />
** In the prior build, we tried to fix some of those cross-threading issues, but wound up making things not actually deselect properly.<br />
** To fix all of the above, we've now switched to the much more flexible and robust ArcenLessLinkedList<> object, and adjust the code to handle this. This is both more efficient (not that efficiency is a major problem here), and does not fall victim to the various cross-threading woes that the old style could. <br />
** And, naturally, as part of that, this also resolves the frankly infuriating selection issues in the most recent build of the game. Sorry about that one!<br />
** Thanks to ctl0ve, CRCGamer, Chuito12, and Burner for reporting.<br />
<br />
* Previously, the tech menu only showed techs that would actually benefit a ship you have at present, or which you could capture.<br />
** This was very confusing to a lot of players, as they would not see the entire tech tree and thus think that something was missing or broken.<br />
** In some other cases, possibly due to changes in the recent past, you CAN build something (like a command station), but since you have not done so yet, it would not show up.<br />
** All of the techs now always show up, but the ones that are for ships that would not benefit you right now still show up as red and not researchable.<br />
** Additionally, the tech color shows up as white when it benefits ships you have, gray when it benefits ships that you don't have right now, and lighter gray when it benefits ships that you could capture.<br />
** Please note that since citadel upgrades don't benefit battlestations anymore, the citadel tech not showing from the start was working properly.<br />
** Thanks to Strategic Sage and CRCGamer for reporting the confusion.<br />
<br />
== Version 2.104 Negative Build Percentage Hotfix ==<br />
(Released July 21st, 2020)<br />
<br />
* Somehow or other, it became possible for some self-building ships to go very negative in their build percentage (instead of counting up to 100%, they would be way in the negative percentages of building process). <br />
** This seems to be a new bug in the last day or so, based likely around some changes that we made to improve the cross-thread reliability of the game. The problem is, upon manual code review of the areas that would be relevant, we just can't see anything that looks like a bug.<br />
** Ultimately what is happening is that the SelfBuildMetalRemaining is getting absolutely giant in value, far larger than the original metal cost of the ship that is constructing. This was probably an integer overflow from it going really negative first, and then wrapping back around, but it's hard to be sure.<br />
** We've put in some extra defensive code to make sure that if it goes negative at all, it marks itself as complete. We've also put in protections so that if you "owe more than it is worth" in general, that it will assume that there was an overflow and just go ahead and finish it now. These two changes should help to keep the problem from happening again, and fix the cases where it was already in progress.<br />
** While we were already at it, we put in a small general improvement that prevents you from being overcharged for the last tiny percentage of constructing a ship. If you had a bunch of engineers building, and each frame cycle they normally would do 1.1% of the construction of a ship, and charge you accordingly, then you might wind up in a case where you had only 0.2% remaining work to do, and yet got charged the full 1.1% rate. It is now careful to only charge you for what you would owe, so the 0.2% rate in this example.<br />
** Hopefully there are no other errors in any of the metal flows, with things like drones building, anything engineers would claim or repair, etc. The code looks clean, but then again the code for the self construction also looks clean. In the next couple of days, please let us know if you see anything else that seems amiss with how metal is being charged against you. So far we can't duplicate anything like that anymore, now.<br />
** Thanks to CRCGamer, deso, and Puppet Master for reporting.<br />
<br />
* Some code from yesterday dealing with cross-threading protections let us unfortunately sometimes wind up with runaway DoForSelected loops. This is now fixed, and it has several kinds of self-repair in place to prevent this from happening now.<br />
** Thanks to Gunner for reporting.<br />
<br />
=== Multiplayer Connection Work ===<br />
<br />
* Reworked the NetworkTrafficLog.txt multiplayer output to actually be a lot more informative.<br />
<br />
* GetNumberOfConnectsCurrentlyActive has been replaced with GetNumberOfConnections, which lets the network framework tell us a lot more about the general status of things happening.<br />
** Instead of just a generic number of players that exist, we can see how many are disconnected, how many if any are the host, how many are clients, etc, etc.<br />
<br />
* In the lobby, the host now sees how many connected clients there are, and if there are any disconnected ones, how many disconnected ones there are.<br />
** Previously it just showed one number that included the host and also disconnected clients all wrapped up into one.<br />
** It still isn't detecting disconnects properly in FORGE, but we'll get to that.<br />
<br />
* The host now only bothers sending heartbeat messages if it has at least one non-host client machine connected.<br />
<br />
* Removed some old "desync detected" code that was not fitting with the new plans for multiplayer.<br />
<br />
* Figured out some of why the client was not detecting itself as properly connected, and so was not getting messages from the host at all in the last few builds after the connection.<br />
<br />
* The way that gamecommands are queued and then given out to player simulations for both single-player and multiplayer is now more efficient.<br />
** We're using queues now instead of lists, and this gives us a lower chance of accidentally losing a command, as well (not that we know of that ever happening before).<br />
** This has several performance benefits even for single-player when there are a lot of commands going around.<br />
<br />
* Added a new FromServerToClient_AuthorizeThroughFrameNoCommands in addition to the FromServerToClient_SendNextBatchOfCommandsToExecute, to slightly save on space (1 byte per message) and make the logs clearer.<br />
<br />
* The network log no longer has a time delay built in where it logs only 100 items at a time. It just immediately dumps items to disk.<br />
** Realistically there is only substantial traffic every 100ms or so anyhow, and the delay in logging was incredibly confusing as a programmer working with it.<br />
<br />
* The network polling interval has been updated from 20 times per second to 100 times per second. In practice it will actually be variable, but the polling is extremely lightweight (the part that is on the main thread), and having absolutely minimal delays in getting and sending messages is what will keep things moving smoothly.<br />
<br />
* To make network logging even more efficient and clear, the old ArcenNetworkLogEntry is now ArcenNetworkSendLogEntry, and is now a struct instead of a class. This runs lightning fast and doesn't affect RAM usage.<br />
** We also now are then logging data that is gotten in (which we call TAKE) along with data that is sent (which we call SEND).<br />
** This way we can see the conversation between several machines all interleaved on a single machine's log, and thus figure out why they are saying what they do, and if messages are getting there, etc.<br />
** Surprisingly, the way we were logging things previously really didn't lend itself to that, so it was easy to go down rabbit holes of wrong information (thinking data did not get to a machine when in fact it did).<br />
<br />
* Furthering clarity on the networking side, we're now ignoring loopback messages-to-self on the host in our logs, which previously we were not doing.<br />
** This way we don't get drowned in a sea of stuff that "I'm telling myself in order to be the same as everyone else," and we can just see what is actually passing between machines.<br />
** The loopback stuff has been demonstrably working fine since more or less forever, unless we broke it today, since single-player relies on that.<br />
<br />
* Fun fact, after all these logging changes, we can now actually see how well parts of the networking are already doing.<br />
** As one client connects, the host is able keep talking to itself and/or others without breaking stride, letting the potential connection wait for the challenge and acceptance (not yet reimplemented) before it loops in the new client to the rest.<br />
*** This is a great example of how we can keep people from accidentally messing with the sessions of friends by trying to join during a game, etc. It's the sort of thing that only matters among friends, but it keeps it clean.<br />
** On top of that, we can see now that the reason for the host not noticing when a client disconnects is because it's ignoring the client that has not fully gone through the challenge-response process yet, and so the mystery of how it was "sending messages that failed but didn't flag the client as disconnected" is easily solved (answer: it wasn't sending messages to that particular client yet, because it is smart).<br />
** In general, by improving our logging quite a lot we can see what is actually happening and make sure all of this works properly. The vast majority of this is network-agnostic, which is doubly great. These particular logs will look substantially the same between FORGE and Steam and GOG.<br />
<br />
== Version 2.103 Hotfix ==<br />
(Released July 21st, 2020)<br />
<br />
* Fixed a bug from the prior version where the dark spire serialization fix was making any savegames with dark spire in them -- new or old -- not able to load.<br />
** Thanks to valinor000 and stanazolol69 for reporting.<br />
<br />
== Version 2.102 Digression For Quality ==<br />
(Released July 20th, 2020)<br />
<br />
* Using the "Increase Max Dyson Strength" hack will now also increase the Dyson's general mark level<br />
* Some minor buffs to the Dyson's income, mostly at higher levels<br />
** Thanks to a discussion started by zeusalmighty<br />
<br />
* When picking music (through the debug menu), the hovertext will now give you information on most of the tracks saying the original source<br />
<br />
* Improved the speed of some dictionary lookups by precalculating the ArcenAssetBundlePath CombinedPath.<br />
** This also required us to change their member variables into properties, and in return that meant that the general string fill methods needed to be adjusted to new FillBundle and FillPath methods for xml reading.<br />
** This doesn't affect as much code as it sounds like.<br />
** We also adjusted the various debug logging points to use the combinedpath, which is cleaner and easier to read, but not much faster since that almost never happens.<br />
<br />
* Fixed a bug that could happen with entity order serialization in rare circumstances if threads were fighting over putting items back in or taking them back out.<br />
** Since multiple threads do in fact often use orders, at once, this is one of the few collections prone to that.<br />
<br />
* Fixed a variety of exceptions that could happen based on cross-threading bad luck during the exit of the game either to the OS or to the main menu, all in the metal expenditures code.<br />
<br />
=== Ship Behavior Improvements ===<br />
<br />
* Fix two problems related to shields recovering from being bumped by Astro Trains <br />
** Human Home Forcefield Generators can now recover from being bumped.<br />
*** Thanks to Lord Of Nothing for the bug report<br />
** If a forcefield generator is bumped twice in short order, it will now do a better job of returning to its original location. This isn't perfect, but it's a pretty intense corner case<br />
*** Thanks to Puppet Master for the bug report<br />
<br />
* If there are only non-combatant enemies on a planet, ignore any requirement in the targeting code that particular targets need to be combatants. This prevents ships in FRD from discarding reasonable targets incorrectly. <br />
** Thanks to ParadoxSong for the bug report<br />
<br />
* Actually support Targeting tracing now; you need to set Targeting tracing and the Debug setting that lets you set the PrimaryKey for the unit you want to follow, and you'll get some actual logging. <br />
** Not for the faint of heart; intended only for developers who want to get their hands very dirty.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fix a bug where the 'delete campaign' button wasn't giving the campaign name<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a rare and harmless (but annoying) cross threading exception that could pop up with argument out of range exceptions in RenderShip.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
* Fixed a rare nullref exception that could happen in DoRemovalChecks() on shots, mainly a cross-threading thing.<br />
** Thanks to Lord Of Nothing for reporting.<br />
<br />
* Fixed two possible spots in DoForSelected() where cross-threading issues could sneak in and cause an exception in rare cases.<br />
** Thanks to Lord Of Nothing for reporting.<br />
<br />
* Fixed an issue when loading savegames that have a missing planet naming scheme. It will now default to the default naming scheme if it can't find the one that the world was started with.<br />
** Thanks to Oryutzen for a save that demonstrated this.<br />
<br />
* Fix a bug where the imperial spire wasn't Watching previously explored planets for you.<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fixed an error in TextMeshPro where it would still give us "Unable to use Ellipsis character since it wasn't found in the current Font Asset" invisible errors that would fill up the debug log even if warnings were disabled.<br />
** This was, in very long play, a memory leak as well as a performance drain, and it was generally invisible.<br />
** The ellipsis character was typically something it was trying to find specifically for purposes of showing cut-off text, and some fonts just don't have that in them. So no wonder we couldn't actually find the ellipsis character used in our own text files.<br />
** Thanks to Puppet Master for providing the log file demonstrating all this.<br />
<br />
* Fixed an issue where the stationsRemainingBeforeDepot on astro trains could go arbitrarily negative, thus causing an error on save. It now stops at 0, and thus seems not to cause the issue anymore. But on the change that an astro train does have a data exception during save anymore, it will now log what field is having the problem and we can fix it.<br />
** Thanks to Lord Of Nothing for the report and save.<br />
<br />
* The game has been updated so that the debug logging that is DoNotShow now ONLY goes to the ArcenDebugLog.txt, and not to the unity Player.log. The unity Player.log is kept in memory in a very unfortunate fashion, and in long gameplay this will be extra RAM used that should not be. Probably also extra slowness.<br />
** We added a new DoNotShowButSendToUnityLogEvenOutsideEditor Verbosity option that lets us have the old behavior of going to both of those logs, but we are not using that anywhere at the present time.<br />
** All of this is going to make it even more important that we have both kinds of logs from players if they have an outright game crash, now. But generally speaking, if it's an exception popup but not an outright crash, the ArcenDebugLog.txt has always been enough and will continue to be. It's only when the game crashes all the way to the desktop that we need the Player.log, typically, and now we'll just still need the ArcenDebugLog.txt in addition to that. However, any ShowAsInfo or ShowAsError logs to the main ArcenDebugLog will still appear in the Player.log, so potentially even that won't be true.<br />
** For a developer using the unity editor, it still logs everything to the actual unity log because that's for short testing cases and super useful to see output in realtime.<br />
** At any rate, we are trying to strike a balance between getting the logs we need, easily on the part of players, but without having any accidental extra usage of memory on very long play sessions.<br />
<br />
* All of the dark spire per-unit data is now saved in a format where we can tell which field is having trouble if one does.<br />
** The dark spire data "lastTimeAttemptedLocus" was trying to save as an int16 and would overflow any time a game saved that was more than about 32000 seconds in. Fixed.<br />
** Thanks to RockyBst for reporting.<br />
<br />
==== Memory Leak Fix From 2.099 ====<br />
<br />
* New setting on the debug menu: Show Pool Counts In Escape Menu<br />
** Used for searching for memory leaks, particularly between loads of a savegame. If pool counts keep rising after each load, then something isn't getting put back in the pool properly and is instead persisting lost in memory.<br />
<br />
* ArcenGameObjectResourcePools must all now have a unique name, and they register themselves in a central place that identifies how many of them there are.<br />
** These pools also now keep track of how many objects they have ever produced from themselves, so that if we are leaking objects from them we can tell. And we can tell if we are leaking pools themselves.<br />
** After seeing all of these in the new debug menu option above, we can clearly see that none of these are leaking and they are all behaving just wonderfully. Hmm. But we have a leak somewhere, so let's expand this...<br />
<br />
* Created a new CountedPoolBase abstract class that sits under the ArcenGameObjectResourcePool, and takes its counting capabilities and puts them there so that we can also use them for some other pool types.<br />
** This is also now used on a new "Shot Instance Renderer Pool Of Pools" so that we can tell if we are leaking there. And now ships and squads, too.<br />
** Also this is now used on LoosePool, which is the underlying basis for ship, shot, and squad visualizers (different from instanced renderers) now.<br />
** Despite all this, no memory leak was found in any of these pools. They are all working wonderfully efficiently.<br />
<br />
* ExternalizedPool now inherits from CountedPoolBase.<br />
** Same for TimeBasedPoolBase (and thus TimeBasedPool itself).<br />
** And same for BasicPool.<br />
** And holy cow, there's some sort of memory leak with the time-based pools, looks like, based on this. That makes sense, as we recently reworked some of their functionality to fix a bug with them. Apparently we introduced a new bug at the same time.<br />
<br />
* Added a new setting to the debug menu: Show Details Of Time-Based Pools In Escape Menu<br />
** Used for searching for memory leaks or other bad behavior on a certain very high-turnover series of pooled objects. If pool counts keep rising, or other numbers seem off, then we know we have a memory leak or a performance problem.<br />
** Thanks to Puppet Master, RockyBst, Lord Of Nothing, and NRSirLimbo for reports that led to us finding this.<br />
<br />
* Fixed a MAJOR bug from version 2.099 that was leading to a memory leak in general, and performance problems as well (the longer you played the slower it would get).<br />
** Our entire "time based pool" logic was not actually properly processing because we forgot a single line of code, go figure.<br />
<br />
==== Slow Load Or CTD Fix ====<br />
<br />
* Since we started using the asynchronous loading of asset bundle items using unity (the last few weeks), there have been some intermittent problems with certain random items not loading in properly. This is some sort of funky bug in Unity, we're pretty positive.<br />
** We solved that problem a week or so ago by checking the async request's asset property, and if it was not invalid, forcing it to finish loading even though it was stuck.<br />
** On most machines, this was causing a really annoying lag of 10-25 seconds while Unity did whatever it was doing to finish that load. That was really annoying, but only happened the first time you loaded a savegame or quickstart or custom lobby after starting the program, and not every run of the program, and not on all machines.<br />
** More recently, we discovered that the very act of checking the async request's asset property would cause an unrecoverable error deep in unity and an immediate crash to the desktop.<br />
** Killing two birds with one stone, we're no longer checking the async request asset property at all -- thus avoiding the crash -- and instead just do a normal synchronous load when we detect a failed load. This leaves the one async request in limbo kind of forever, but that shouldn't be a problem; if it ever decides to complete, it will see that it was already completed and just do nothing.<br />
** In the meantime, not only should this avoid the crash, but it should also avoid that awful lag spike that happened for those for whom it didn't crash.<br />
** The downside is that on our dev computers we haven't been able to replicate the error at all today, so we can't verify that this 100% works. It should work, and you should see in the arcen debugging log slightly differently that says "PrototypeObject failed async load and so loaded synchronously for [some stuff] (this is not a problem, but is odd)"<br />
*** If you're one of the people who were frequently seeing either the crash, or seeing the older "PrototypeObject fixed and loaded late for [some stuff] (this is not a problem, but is odd)" message, then we'd love to have a confirmation of you seeing the new message and all being well.<br />
** Thanks to Sol and RocketAssistedPuffin for reporting.<br />
<br />
== Version 2.101 Connection Status: Confirmed ==<br />
(Released July 17th, 2020)<br />
<br />
* Carriage returns and newlines are now supported by the "condensed" string format. This will prevent tutorial messages from turning those characters into question marks when they are dumped to the chat log. Note that this will only affect chat log messages logged in this version and on, not past versions.<br />
** Thanks to ParadoxSong for reporting.<br />
<br />
* The left and right click functions of the metal display have been switched to be more natural.<br />
** Thanks to Waladil and Galian Gadris for suggesting.<br />
<br />
* The "Spire Railgun Shop" mod that comes packaged with the game has been updated to use the icons from their new locations, and will no longer error.<br />
<br />
* We've reworked our "Window_PopupScrollingColumnButtonList" a bit to add some new handy features for us.<br />
** In the factions selection window, when you are adding new factions, it now still lets you see factions that you can't add because there is only one per galaxy, but now it shows them in red, doesn't allow you to select them, and explains why in the tooltip.<br />
** In the debug menu in the escape menu in the main game, the change music submenu now shows the current selection in red (with the note that you can't change to it because it is already playing), and it shows all of the options sorted alphabetically except for the current track, which it shows as the first item.<br />
*** Also fixed a bug where the music you selected to play would not actually be the track that played; it was choosing a random other track.<br />
<br />
=== Scourge Updates ===<br />
<br />
* The hovertext for the Scourge "Strength" in the game lobby now tells you what the strength does (more scourge ships/structures, and faster).<br />
<br />
* Add a "Sandbox: Extra Strong Mode" for the scourge<br />
** This is not balanced for regular play, but is intended as a sandbox thing.<br />
** Thanks to Avenger1649 for suggesting<br />
<br />
* Fix a bug where the scourge were periodically suiciding Defensive Fireteams into player positions.<br />
** Thanks to ParadoxSong for the save.<br />
<br />
* On intensities >= 5, the scourge can create cloaked "blockade running builders" if the player has tried to blockade the scourge into a small region of the galaxy<br />
** Thanks to ParadoxSong for the suggestion<br />
<br />
* On intensities >= 6, the scourge is intended to sneak a builder off to another part of the galaxy at the beginning of the game, to make it much harder for the player to blockade them in. This was not working on some map types, including the X type.<br />
** Thanks to ParadoxSong for the save that exposed this problem.<br />
<br />
* These changes should make the scourge much harder to deal with in general, and on the X map type in particular.<br />
<br />
=== Initial Multiplayer Connection ===<br />
<br />
* AllowOtherPlayersToConnect was a setting on the World object in the past, and thus something that was getting saved into savegames and that dictated how a lot of things worked for player connections.<br />
** We've removed this concept, and instead are making it based on the menu choices you make on the main menu.<br />
** We now have a DesiredMultiplayerStatus on ArcenNetworkAuthority, which lets us recall if you wanted to be the client, a host, or just left alone in single player.<br />
<br />
* The basic shells of SteamSocket and GOGSocket have been added to the game. The in no way function yet, but this will allow for them to be built out in the future.<br />
<br />
* The SpecialNetworkType has been moved into ArcenUniversal, and is now copied onto ArcenSocket along with the InternalName of the row that created the socket.<br />
** There is now a list of AllPossibleSockets on the ArcenNetworkAuthority to allow it to swap between sockets as needed, and particularly by type.<br />
<br />
* When you open the multiplayer menu, if you have that enabled, it will now set a default network framework for you based on the status of your game at that time.<br />
** If you are logged into Steamworks, it will set steam as the default network.<br />
** If that didn't work or wasn't true, and you are logged into GOG Galaxy, it will use that as the default network.<br />
** If none of those worked, then it will pick the first "other" network type, which in this case would be Forged.<br />
<br />
* All of the options in the multiplayer menu for hosting a savegame, quickstart, or custom game now properly do those things identically to as if it was the single-player menu, but put you into host mode first.<br />
** The single-player menu puts you into single-player mode, and makes sure that your ArcenSocket is set to NullSocket.<br />
<br />
* When you try to go into one of the client or host multiplayer areas from the multiplayer menu, it now properly activates your most recent chosen network framework, or switches to the first available one that actually can function right now on your system and gives you explanations for why it did that.<br />
** Essentially there is a fair bit of under the hood plumbing now for the frameworks to register themselves with the network authority class and explain about their availability.<br />
<br />
* If you are looking to connect to another machine, then the "connect as client" tooltip now gives you information about what to expect based on your currently-selected framework.<br />
** Are we connecting by IP? How much of a hassle will that be? Is it going to be by selecting a friend on Steam or GOG? Etc.<br />
<br />
* For IP-address-based networking frameworks, either starting a host mode or client mode event now pops up with a message explaining what information you need to give to the client players or get from the host.<br />
** This is not really the preferred networking method unless you're having a LAN party, and the game makes that clear, but it also goes out of its way to address the most likely areas of potential confusion for people who are using these frameworks.<br />
<br />
* Fixed a few bugs, and added a bit more debug logging clarity, so that the host can once again properly open a socket and wait for connection.<br />
** This was working up until a week or so ago, and was simply messed up a bit when we reworked things to support multiple networking frameworks. There were lots of lonely hosts never getting any client requests ever since the game has been in public beta.<br />
<br />
* When you quit out of the multiplayer lobby back to the main menu, it now immediately disconnects you as a host or client, to avoid confusion of lingering connections.<br />
<br />
* When you are in the lobby in multiplayer, the chat sidebar/log now appears again. At the top it says if you are hosting multiplayer or a multiplayer client.<br />
<br />
==== Choosing A Networking Framework ====<br />
<br />
* The main menu has been updated so that the "network" button at the top of the multiplayer menu now updates its text to show the current network.<br />
<br />
* The network button at the top of the multiplayer menu on the main menu is now fully functional. It shows available network frameworks, and gives you explanations for each one, as well as showing unavailable ones in red with an explanation for why they are not available right now. It lets you select from available ones, which then get set as your current socket when you try to host or join a multiplayer game.<br />
<br />
==== What Is My IP Address If I Need It? ====<br />
<br />
* In the networking section of the settings menu, it now has helpful informational displays of your local IP addresses and your public IP address.<br />
** To get your public IP address, we have to make a public call to the url http://checkip.dyndns.org, so this may flag your software firewall to ask permission when you go to the networking tab now.<br />
** Our goal is of course for you to not have to use your direct IP addresses at all in this game, but if you're playing on a LAN then that would be one great example of when you'd want to use this.<br />
** At any rate, each IP address is stored in a textbox that you can copy-paste from, which is very handy when sharing with friends.<br />
** There are also lengthy explanations about what the public IP address is for, and under what circumstances to use it, as well as the local IP addresses, plus special notes for any IPV6 addresses that it detects.<br />
** Getting this data is time-consuming for your computer, so you will notice micro-lags every few seconds while you are on the networking tab, now. This is normal and should not impair your use of the functionality.<br />
<br />
==== Milestone: Successfully Connecting A Client To Host ====<br />
<br />
* The old interface for network connections by IP address is restored and works again. We'll have a different one for connecting via friends list on Steam and GOG, later, but this is the one that gets used for Forge and any other IP-based network frameworks.<br />
<br />
* Connections are now able to be established from one computer to another, for the first time since 2018!<br />
** We added the ability to see how many clients there are connected to a host in the lobby (including the host), so you can see the connection tick up.<br />
** Next up is them actually exchanging enough information to get the client into the lobby and have them see shared world info and be able to chat and all that. But this is milestone one!<br />
<br />
== Version 2.099 Last Rabbit Holes ==<br />
(Released July 15th, 2020)<br />
<br />
* There is now a galaxy setting to grant players Watch vision for 1, 2 or 3 hops from all command stations.<br />
** Thanks to uhamster9 for inspiring this addition.<br />
<br />
=== Fixes And Tweaks ===<br />
<br />
* Improved the way that time-based pools are incremented in time, so that we're never having accidental cases where we miss one.<br />
** Also made it so that they actually work as intended when the world is being cleared (running 16 seconds' worth of time at once). This then keeps the pools smaller if you repeatedly load savegames.<br />
<br />
* On the escape menu, under where it shows you the various numbers of objects in memory, it now shows you the number of galaxy planets and planet links activated and in existence.<br />
** This lets us tell when these have a memory leak, if there ever is one with them.<br />
<br />
* Additionally, galaxy map links are now pooled for the first time ever, as the discarding of them was previously a definite memory leak. Normally this just happened between saves and loads, but it was also possible to happen when nomad planets moved.<br />
<br />
* In addition to the existing time based pools, we now have a new ExternalizedPool.<br />
** This is now used for the galaxy map links, and actually we have stopped the galaxy map planets themselves from using the super-old IArcenGameObjectResourcePoolable and they also now use this.<br />
<br />
* The way that planets for the galaxy map are initialized, and the way that their positions are set, is completely overhauled.<br />
** This is more efficient and properly uses pooling (which never was working properly before, it turns out).<br />
** It also makes the position of planets automatically react to them having moved in the game sim, without having to do anything special.<br />
<br />
* The arcencolors asset bundle has been removed, with its contents simply rolled into arcenui. Ultimately this is a bit faster to load, and saves a bit of disk space and RAM also.<br />
** Also removed the aiw2squads bundle, and the examples bundle.<br />
*** The examples bundle simply has its example content still there, but not in a bundle (it's to help aspiring models modders).<br />
*** The squads bundle is old data that we've not used in forever, and so has just been cleared out. It wasn't huge, but wasn't worth being there.<br />
<br />
* Starting to load a savegame (including for a quickstart or the last settings for a lobby) now writes to the log when you start the process, and at the end of the process writes how long it took.<br />
<br />
* Added a new debug setting: "Write Detailed Savegame Timings"<br />
** When loading a savegame, including the 'last settings' for the lobby or the basis for a quick start, keep track of detailed timing data and write that into the normal debug log so that it's clear what is taking longer and shorter amounts of time.<br />
<br />
* It turns out that chasing "why savegames now take 16 seconds to load sometimes" was a snipe hunt. The serialization sizes logging, when enabled, actually was causing that amount of slowness. With that off, it loads in about 2 seconds.<br />
** The extra instrumentation that we added for the savegame timings is still nice, but ultimately was not a useful bit of time spent at the current moment.<br />
<br />
* Fixed an issue that could happen in the lobby in particular where it could not properly save your prior settings because the fleet ID or speed group ID was lass than zero.<br />
** This pretty much could only happen if you already had another error first.<br />
<br />
* Fixed an exception in SeedNormalEntities that could happen if you rapidly tried to regenerate maps in the lobby in just the wrong way.<br />
<br />
=== Under The Hood Improvements For Icon Modding And RAM Usage ===<br />
<br />
* The last of the icons from the ExternalIcons folder have been moved into the unity project that generates the asset bundles, simply to dispel any potential confusion about the fact that they can be edited directly and that have some change on the game without recompiling asset bundles. This was a frequent modder confusion.<br />
** That said, the ones that were in the Official_1 folder are now in a CentralIconBits, and can now be used in the UI for the first time if we ever want to. That means things like health bars and whatnot could in theory be used in the ui if someone wanted to, whereas before they could only be used on gamespace-level icons.<br />
<br />
* Cleaned out a variety of unused icons from the arcenui asset bundle, and in general tidied up some of our organization of working files versus final files.<br />
** Also standardized the naming of certain things.<br />
<br />
* Broke the "official icon dictionary" out into six dictionaries:<br />
** One is for the "central bits" like health bars and so on, and would be the same for all ships.<br />
** Two are for the overlays, like for saying what kind of starship or guard post something is. There can be more than one of these, and the fact that these are split out like this demonstrate the modding capabilities and how things can combine.<br />
** Three are for ship icons and their borders, and there can be more of these modded in as well. As with the overlays, not only does this demonstrate how such mods would work, but it also has the side benefit of slightly less VRAM usage in a few cases.<br />
<br />
* The way that GUI icons are discovered from the xml based on their gamespace-icon counterparts is completely revised, and is now based on extra information in the ExternalIconDictionary entries.<br />
** This is a lot more flexible, and allows us to load icons from multiple asset bundles and/or multiple files within the same bundle.<br />
<br />
* The naming for finding icons is now much more complicated, in the sense that they don't all come from a single dictionary called "Official."<br />
** So there were over 1100 places in the base game and expansions where we've had to modify to point to the new dictionaries. Any mods would also need to be updated to point to the new places, unless they want to start using their own icons (once we put together a tutorial for that).<br />
<br />
* The external sprite dictionaries have been updated to be able to properly load in in multiple threads.<br />
<br />
* The game is now able to load the xml files for external icons from any mod or expansion, in:<br />
** Expansions/[ExpansionName]/GameData/ExternalIcons/[thefile].xml<br />
** XMLMods/[ModName]/ExternalIcons/[thefile].xml<br />
** XMLMods_NonDistributed/[ModName]/ExternalIcons/[thefile].xml<br />
** It's worth noting that these are xml files that are generated by Texture Packer, not xml that we create.<br />
** These files are referred to in the "ExternalIconDictionaries" xml as something along the lines of xml_path="Official_CentralIconBits.xml"<br />
*** It will then search the main game's folder (/GameData/ExternalIcons/[thefile].xml), then all the expansion folders, then any activated mod folders for a file with that name that was specified.<br />
** This allows for mods to be self-contained when it comes to their icons, and it allows expansions to have their own icons that are not packaged with the main game (not that we have imminent plans to do that).<br />
<br />
* On the icons used in the game, we previously were not using any compression, which made them absolutely massive in size (80mb for the main dictionary).<br />
** This was done in order to preserve quality, but we're also using GIANT icons in order to allow for really super-high-res displays of the future, as well as square ones to allow for ideal mipmaps, etc. So the lack of compression was hugely overkill.<br />
** We're now using compressed textures, which turns what was 80mb into more like 8mb. This has a very direct impact on performance and VRAM usage, so particularly on low-spec machines they will likely run far better.<br />
<br />
* The game now automatically constructs custom "gimbal materials" for the in-gamespace icons, in as many combinations as are needed for the things that it has drawn for you so far.<br />
** The total number of materials always in the past was "one," but it was using a single large dictionary and a lot more VRAM -- and it had a finite amount of space for things. There was a solid chance we were going to run out of space in that one dictionary as part of implementing DLC2. But either way, mods were not possible. The new number right now is 8, looks like.<br />
** Now it may make a handful of materials, depending on how many mods you have installed that have custom icons, and several for the core game and expansions itself. But these are vastly smaller, and while this does increase the number of "draw calls," each material is still mostly instanced together (there are a few mesh differences depending on if there are health bars shown or whatever), but the overall load on the GPU pipeline is lower.<br />
** All of this is automatically handled by the game in as efficient a pattern as possible, and if you're curious how many combination materials it has created, you can see that in the escape menu at the bottom of the list of memory pooling info.<br />
<br />
* A new debug setting, "Log Gimbal Icon Material Creation", has been added:<br />
** When this is on, any 'gimbal icon' material creation events will be logged as to what was created and how long it took to do so.<br />
** Turns out that this uses an immeasurably small amount of time for each material (less than 1ms each), so that's awesome.<br />
<br />
=== Under The Hood Improvements For Mods With Code ===<br />
<br />
* The game is now able to load dlls from mods or expansions, rather than just from the central game folder.<br />
** This works just like the external icon files, and basically looks for the dll in the central game folder first (/GameData/ModdableLogicDLLs/[thefile].dll), and then looks at expansions and then installed mods if it can't find them.<br />
** The paths are:<br />
*** Expansions/[ExpansionName]/GameData/ModdableLogicDLLs/[thefile].dll<br />
** XMLMods/[ModName]/ModdableLogicDLLs/[thefile].dll<br />
** XMLMods_NonDistributed/[ModName]/ModdableLogicDLLs/[thefile].dll<br />
** We really don't have a need to do this with expansions, but the flexibility is nice.<br />
** With mods that are more than just xml, however, this finally lets a modder distribute just a single folder that has everything in it, and not have to worry about putting some things in central game folders.<br />
** This is only partially tested, but should work.<br />
<br />
* It's worth pointing out that expansions and mods already did (and still do) have the capability to load asset bundles (icons, music, sound effects, models, textures, shaders, etc) from their folders.<br />
** The structure for those is /GlobalBundles/ in the main folder for anything not platform-specific, /AssetBundles_Linux/, /AssetBundles_OSX/, or /AssetBundles_Win/ for the things that are.<br />
** Inside the folders for expansions it is: Expansions/[ExpansionName]/[OneOfTheAboveFolders]/<br />
** Inside the folders for mods it is: XMLMods/[ModName]/[OneOfTheAboveFolders]/ or XMLMods_NonDistributed/[ModName]/[OneOfTheAboveFolders]/<br />
** None of this is new, but it's worth mentioning for now.<br />
** This is only partially tested, but should work.<br />
<br />
=== Larger Gamespace Icons And Fixed Galaxy Map Line Offsets ===<br />
<br />
* We also now have a non-billboarding version of our shader for purposes of our icons on the galaxy map.<br />
** Our core shader does on-GPU (read: hyper efficient) billboarding to always fully face the camera. This is very useful in the main view where you are moving around the camera a lot but always want the icons to face you.<br />
** The downside, however, is that with a largely-straight-overhead camera like the galaxy map uses, this billboarding would cause there to be a perspective shift where the icons for planets would get offset from the lines leading between planets no matter what we did. It also caused them to move relative to the text that was next to them.<br />
*** This offsetting of the lines to the planets was one of the largest "visual papercut" issues that we've had for a really long time, and it is finally fixed!<br />
<br />
* The ship icon scale has been adjusted from a default of 1.5 to 2.2, and will affect all prior settings files.<br />
** It's description has also been updated for the personal settings tooltip: For the icons in the main display area (not the sidebar), how large should they draw? Default is 2.2. If you go too large, it can be hard to see things because they overlap too much. If you go too small, they can get extremely blurry because of flipping to a lower mipmap. The larger your screen DPI, the smaller you can go without losing clarity.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Building Multiplayer]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Paradigm_Shift&diff=40485AI War 2:The Paradigm Shift2020-09-22T21:17:57Z<p>Keith.lamothe: /* Version 2.509 */</p>
<hr />
<div>== Known Issues ==<br />
<br />
* Any bugs or requests should go to our [https://bugtracker.arcengames.com/ mantis bugtracker]<br />
** 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.<br />
** 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:<br />
*** Windows: C:\Users\username\AppData\LocalLow\Arcen Games, LLC\AIWar2\Player.log<br />
*** macOS: ~/Library/Logs/Arcen Games, LLC/AIWar2/Player.log<br />
*** Linux: ~/.config/unity3d/Arcen Games, LLC/AIWar2/Player.log<br />
<br />
* '''Multiplayer is in public alpha, as noted below.''' There is a [[:Category:AI War 2: All About Multiplayer|detailed multiplayer guide]] that we are working on building up.<br />
<br />
* Feel free to [https://discord.com/channels/240637654717300736/242012213580136448 join discussions on discord]!<br />
<br />
== What Does Multiplayer Alpha Mean? ==<br />
<br />
[[:Category:AI War 2: All About Multiplayer#Initial Caveats And Related Resources|Please see this link for details on multiplayer.]] This wound up taking up too much space in this document, so all of the multiplayer-relevant bits have been moved to the other page.<br />
<br />
== What's this phase all about? ==<br />
<br />
We've been preparing for this for months, tightening up the codebase and getting everything ready as much as possible. Now it's time to start having machines actually talk to one another, and then refine from there. At this point, LiteNetLib, Steam, and GOG Galaxy are all fully working as communication frameworks, and the game is in an alpha state (as of September 9th) where not all of the functionality is there, but the game can be played together. <br />
<br />
It's important to remember what an alpha is! There are glitches and inefficiencies, and we'd like to know more about those. There are also glaringly missing features. Beta means feature-complete but not bug-free, and we're not there yet. Please don't assume that we will implement some feature you want, like the ability to share X between players. If you're testing the alpha and want something, please do drop us a message and ask for it, just in case.<br />
<br />
We expect to be into beta of multiplayer in late September. Hopefully the alpha and beta periods are both short due to all the work of the last phase, but we shall see how it shakes out.<br />
<br />
Once we get into a stable beta period for multiplayer, then we'll let the clock run a bit and Chris will work on adding interplanetary weapons to the base game as a free update (that's the last of the kickstarter stretch goals). This phase should wrap up all our kickstarter promises (including a laundry list of other smaller items).<br />
<br />
Badger has already done the bulk of his work for the second expansion, Zenith Onslaught. Chris has done none of his work for that, as yet. Once multiplayer is in the "let it exist in beta and have people bang on it" phase, then Chris can circle in and get his work done for DLC2 along with those base game bits for interplanetary weapons, etc. The full version of multiplayer should launch alongside of DLC2, but we're not sure exactly when. October?<br />
<br />
Either way, multiplayer will be in a solid state that is "beta but just because we want more time with more people testing it" for a month or so while the DLC2 work from Chris's end happens. None of the actual multiplayer stuff is delayed in any fashion for DLC2, it's been the other way around.<br />
<br />
== Version 2.509 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Fixed missing descriptions for the Damage modifiers of TargetHullPercentageMissing, MyHullPercentageMissing, TargetShieldPercentageMissing and MyShieldPercentageMissing if not used in combination with the MultiplesOf comparison type.<br />
* Instead this was displaying Unknown DamageModifierBasedOn.TheModifierName twice in the tooltip.<br />
** Thanks to NR SirLimbo for fixing.<br />
<br />
* Fix a problem introduced recently by my hunter fleet performance improvements that was causing the Hunter Fleet to just sit around<br />
** Thanks to a number of people for pointing this out, including ArnaudB, CRCGamer and Minotaar<br />
<br />
* Tweak the journal messages about exogalactic war front units<br />
** Thanks to Ovalcircle for reporting<br />
<br />
* Fix a very longstanding bug with fireteam histories, where they would report the planets they were lurking on incorrectly<br />
** This won't apply to previously existing histories, just new histories<br />
** Thanks to a save game from Minotaar for making this really obvious to me<br />
<br />
* Make it harder for players to trigger exogalactic war units without allied factions<br />
** Several people have had thoughts about this<br />
<br />
* Some buffs to the stronger astro train variants<br />
** Thanks to crawlers for requesting<br />
<br />
* Tweak the stacking/splitting code to make it harder for ships to decide to stack and split themselves over and over<br />
** Reported by Gott365 and TechSY730 for reporting<br />
<br />
* Fixed some issues with the new-ish melee unit behavior of flying out to attack nearby enemies when otherwise idle:<br />
** Fixed a bug where a melee unit would go back to its prior location after a direct order from the player (like a normal move order).<br />
** Fixed a bug where a melee unit's memory of where to go back to after no targets were in range would persist across wormhole jumps (causing it to try to go to that location on the new planet, which doesn't make sense).<br />
** Fixed a bug where melee units wouldn't use their implicit attack-move behavior if their internal behavior flag had been changed away from default and then back. So new melee units would use the behavior, but ones that had been around for a while often would not.<br />
** Thanks to OzoneGrif for reports revealing these.<br />
<br />
=== Data Dump Improvements ===<br />
<br />
* Fixed a couple of problems that were leading "cmd:dump data tables" to actually crash the game rather than exporting things nicely. Sometimes the crashes were only intermittent, which was doubly "fun."<br />
** This obviously made this far less useful in terms of actually debugging anything!<br />
<br />
* In general with our data dumps, we've been using ObjectDumper in a customized fashion. But now that we're moving to use it in more places, we're customizing it even further and making it more efficient.<br />
** For the largest export, the GameEntityType, this makes the data go from 35.8MB down to 29.2MB<br />
** More importantly, it makes the data a lot more legible.<br />
** For all of the various lists and dictionaries and other collections, this also now gives us counts of how many items are in each one, which it did not do before.<br />
<br />
* Fixed a variety of other things that would be different in those exports on different machines, or at different runtimes, that thus would have been in the way of our log comparisons.<br />
<br />
* In our exports, a variety of cases of contents that would just have empty brackets now do not export the useless empty brackets. A good example is ArcenPoint, which was saying its coordinates and then four lines of empty brackets.<br />
** Additionally, a bunch of default values that would be "None" or "-1", or collections that are empty no longer export at all. This is consistent with things already not exporting that were 0 or false or an empty string.<br />
** This gets our GameEntityType down to 24.8MB, and even easier to read.<br />
<br />
== Version 2.508 Waverider ==<br />
(Released September 19th, 2020)<br />
<br />
* Fixed a couple of places in the metal flows tooltip where it was stating the left and right mouse buttons backwards. (There were three places in all, and we had only changed one of them).<br />
** Thanks to Daniexpert for reporting.<br />
<br />
* Fixed a rare exception that could happen inside GetControllingOrInfluencingFaction() when exiting the game either to the OS or to the main menu.<br />
<br />
* Fix a bug where waves were not spawning any units. This affected regular waves and hacking responses.<br />
** Thanks to weapon master, CRCGamer, DaniExpert, ArnaudB, Gott365 and probably others for reporting<br />
<br />
* The Zenith Trader no longer sells AIP-increasing black hole machines to the player<br />
** Thanks to TechSY730 for reporting<br />
<br />
* The Zenith Trader will no longer sell things to dead AI factions<br />
** Thanks to GreatYng for reporting<br />
<br />
* Really fix that Macrophage null reference in LRP bug that's been annoying badger<br />
<br />
* Some performance improvements for fireteams in general (and some extra improvements for hunters) in late game scenarios<br />
** Thanks to a giant save from crawlers for letting me see what was going on<br />
<br />
* When you see the name of a song in the Escape Menu, it should now be formatted in a more readable way. For example, it now shows "Waking To Darkness" instead of "WakingToDarkness"<br />
<br />
* Improve the text of several "You can't hack this because of...." messages<br />
** Thanks to GreatYng for reporting<br />
<br />
* The experimental "Astro trains get stronger after you kill some of them" code is now enabled for everyone, and the setting is removed<br />
** I've heard reports that it works okay<br />
<br />
* Allow the HRF to flush enemies from command stations and guard posts<br />
** Thanks to GreatYng for requesting<br />
<br />
* The "This faction has no allies, not even itself" message is cleared up; this was being triggered by dead AIs, usually after the civil war started<br />
** Thanks to a number of people for reporting<br />
<br />
=== Dark Spire Tweaks ===<br />
<br />
* Fix a bug that was preventing the Dark Spire from being suitably aggressive in late game situations<br />
** Thanks to crawlers and Gott365 for the bug reports<br />
<br />
* Other factions will now actively go after Dark Spire Conquest mode VGs<br />
** This should give some counterplay against the Dark Spire<br />
<br />
* To compensate for the fact that Conquest Mode VGs will be targeted more, they are also tankier<br />
<br />
* In conquest mode, the Dark Spire will get a bit more energy<br />
<br />
== Version 2.507 Bugfixes ==<br />
(Released September 16th, 2020)<br />
<br />
* Fix a bug where player-allied nanocausts that aren't allowed to kill command stations weren't properly expanding. Add a journal entry to point out to the player that this leaves their allied nanocaust vulnerable<br />
** Pointed out to me on discord<br />
<br />
* Fix a bug where the render vengeance generator hack wasn't completing<br />
** Thanks to a number of people for reporting, including jradishurr, Magiik and Gott365<br />
<br />
* Fixed several cases where cross-threading issues could lead to some issues in the selected-ships counter.<br />
** Thanks to MasterGeese and GreatYng for reporting.<br />
<br />
* Fixed several cross-threading bugs that could happen in GetIsWithinRangeOf() or GetIsWithinRangeOf_VeryBasicCheckOnly().<br />
** Thanks to GreatYng for reporting.<br />
<br />
* Fixed a bug introduced in the prior build that made it impossible to save most games that had outguard in them (all of them...?), and probably was messing with initial multiplayer sync, too. This was not seeming to affect every last save, but nonetheless was not good.<br />
** Thanks to Badger for reporting.<br />
<br />
* The "long range planning" code for the Macrophage now includes a lot more instrumentation for more detailed error messages. We started having some sort of error in at least some games starting the last release.<br />
** But after putting in the instrumentation (and having fixed the outguard serialization bug that also manifested in the same savegame), we no longer can duplicate the problem. So for now there's nothing more to do, but if it comes up again we'll at least know where it is.<br />
** Thanks to Badger for reporting.<br />
<br />
== Beta 2.506 ExternalData Overhaul Two ==<br />
(Released September 15th, 2020)<br />
<br />
'''This is kind of a nasty one, in that we're fixing a ton of things but potentially also breaking more things. External code-based mods are definitely broken again (sigh). But a bunch of things that were question marks for multiplayer are either now working properly for the first time (a few dozens of things), or are now verified-correct (even more dozens of things). So we're dropping back to beta briefly, to let people test things and let us know if there are any bugs that make this unplayable for some reason. Once folks have been through it sufficiently, we'll move back to the non-beta branch.'''<br />
<br />
* Previously, the dark spire ships that you could hack for had a starting mark level of X, and a max mark level of 4. Now they all start at mark 1 and level up like normal, but have a max mark level of 7 (because why not).<br />
** Essentially, tech unlocks for players probably did not work terribly well when the starting mark level of a player unit is greater than 1. And having a low mark cap on top of that can be frustrating for folks.<br />
** Specter used to start at mark3, now is 1.<br />
** Phantom was already mark1 at the start, but still is.<br />
** Okay, wraith was already mark1 at the start, and still is.<br />
** Anyhow, the level caps were a big part of what was messing with people, probably.<br />
** Thanks to crawlers and CRCGamer for reporting.<br />
<br />
* Fixed a potential nullref that could happen in CheckForInternalShipDeployment_DroneProducers_FromSimBGThread(), probably more likely on multiplayer clients than elsewhere, but definitely possible anywhere.<br />
** Thanks to Puffin for reporting.<br />
<br />
* Fixed a strange capitalization issue in the logging for faction deserialization where MinFIreteam and MaxFIreteam would thus show up as diffs.<br />
** Thanks to Puffin for the report.<br />
<br />
* New debugging command added: <code>dump data tables</code><br />
** This causes all computers involved in the current game (so not just the local machine in multiplayer) to immediately dump all their data in the same way that happens from "Dump All Data Tables After Load" from the debug section of the settings menu. <br />
** ''Please be advised that this will cause all of the computers involved in this game to freeze for something like 20-60 seconds, depending on their relative speeds, how many expansions and mods are installed, and so on. It's a good idea to warn people before you run this comment.'''<br />
** Aka, this writes a text file for each in-memory data table into a DataTableExports subfolder in the PlayerData folder. <br />
*** The purpose of this is mainly to use with diffing tools between one run of the game and another, to see what sort of data changes happened. If you are modding and made changes to some ships and want to see how those changes cascaded, this would be one way to do that. This is also a way for us to verify correctness when we make structural changes internally.<br />
*** In multiplayer, this can also be used to compare the contents of these folders between the host and various clients, to check for things that might be amiss thanks to mods or other local changes.<br />
*** To compare folders at a time, you'd need to share the contents of these folders between machines (zip and email, etc), and then run a folder-wide diffing tool like WinMerge to find any discrepancies.<br />
*** Lastly, if you're a mod author and concerned that your mod is adding to the data tables incorrectly over time, then you can use this to get snapshots of what those look like as you are playing. Normally this data should not be changing after the initial load of the application.<br />
** Never considered a cheat.<br />
<br />
=== Multiplayer And ExternalData Continued Improvements (Breaks Code-Style Mods Temporarily) ===<br />
<br />
* There are some issues with the data table dumps now actually dumping some game data.<br />
** To combat this, the ArcenOverLinkedList and ArcenLessLinkedList both no longer dump their firstItem and lastItem fields.<br />
** Hopefully we will still see the count of items in these, but that's really all we can do right now without getting into circular references by the very nature of these linked lists.<br />
<br />
* This also finally pushed us over the edge when it came to IArcenExternalDataPatternImplementation, and this is now becoming an ArcenExternalDataPatternImplementationBase abstract class that we can control a bit better in several different ways.<br />
** In general this will be a help for us with multiplayer sync, among other issues.<br />
** This class should never be directly inherited-from by things in External or mods, however.<br />
** Added a new ArcenExternalDataPatternImplementationBase_World, which is for use with things being attached to worlds.<br />
** And also a new ArcenExternalDataPatternImplementationBase_Faction, for things being attached to factions.<br />
** And a new ArcenExternalDataPatternImplementationBase_Squad for things being attached to ships.<br />
<br />
* Took this chance to fix a number of data structures that might not be multiplayer client-sync safe based on the fact that MP sync data might be missing and might need a catch-up:<br />
** AIReservesData (constructor updates, DeserializeExternalData updates).<br />
** Okay, 33 other classes needed the same update pattern, so we'll save you the list of going through all of those again.<br />
** Added a new ArcenExternalSubManagedData class, which all 34 of those classes now inherit from.<br />
*** This lets the increasingly-complex central logic from DeserializeExternalData be written only once, not 34 times.<br />
**** This is all handled, for the default case, via the new generic method DeserializeExternalDataAsArcenExternalSubManagedData().<br />
*** Also worth noting, we can no longer use constructors with arguments on this, because of how the logic is centralized. The default constructor is always called now, and then DeseerializeIntoSelf() is called after that if needed.<br />
**** This is doubly worth noting, since it makes sure that there are no cases where object initializations from the default constructor are not called.<br />
<br />
* While we are at it, we're marking the various lists and other collections as readonly in ArcenExternalSubManagedData-inheriting classes.<br />
** This helps us avoid ambiguity and extra code, and is a double reminder for us to review places where we could get into infinitely-expanding lists on multiplayer clients.<br />
*** Fixed the following infinite-expanding collections for multiplayer clients:<br />
**** The FinalComposition dictionary on PlannedWaves was going to infinitely expand while waves were incoming.<br />
*** Fixed the following "accidental data churn from throwing away collections on multiplayer clients":<br />
**** The DZPerUnitData ConversionList and ConversionBag.<br />
**** The metalByTier on DysonData.<br />
<br />
* Added a new ArcenExternalSubSubUnmanagedData abstract class for classes that is for the sub-data types that a few things use, like DarkSpirePerPlanet.<br />
** This adds some structure, but is not as fully managed as the main classes above it. These again help us to avoid some bad habits that can lead to memory leaks on clients.<br />
<br />
* Fixed a general cross-threading issue that could happen with Loci_ForUI in the dark spire. This could happen in single player or multiplayer, and we found it because of the new code rigor enforced by these new abstract classes.<br />
<br />
* The DeserializeDictionary utility method, and a few similar ones, no longer take their dictionaries as a ref parameter. That's now allowed syntactically for readonly dictionary fields, and it's not needed logically at all for dictionaries as a whole, which are reference objects and thus always passed by reference no matter what.<br />
** Same deal with ArcenRandomDrawBags, for the same reasons.<br />
** And same for some various working methods that were passing generic List<>s with ref explicit. It doesn't matter if the contents of the list are a value type, the list itself is still a reference type.<br />
<br />
* Fixed a client-only bug where certain things were being cleared incorrectly on the DLC2 "ZM" faction data object during faction sync, but now are not.<br />
** In that same faction, fixed another of the "ForUI" list cross-threading issues.<br />
<br />
* Added a ClearAndCopyFrom() method onto ArcenSparseLookup, which does what it says on the tin.<br />
** This is useful in places where we are no longer shuffling around sparse lookups by reference (think pointer), but instead are now keeping the lookups but needing to copy from one to another.<br />
** The need for this is pretty rare, but it's used in wave planning.<br />
<br />
* Discovered a rather dire issue from the last week or so, and have fixed it.<br />
** Essentially, the objects that previously inherited from IArcenExternalDataPatternImplementation (and now from a descendant of ArcenExternalDataPatternImplementationBase) are NOT UNIQUE per object.<br />
** So the fact that we were starting to store the ParentWorld and ParentSquad and so on on those was actually a major problem, and probably a source of some sort of random bugs in single player and multiplayer.<br />
** We were mostly saved by the fact that we ignored those properties and were using the Source object cast properly, which is what was supposed to happen.<br />
** But upon refactoring things, we ran into increasing problems with this. It has now been corrected, and this should hopefully also prevent us (or a modder) from making the same error in the future.<br />
<br />
* With the new way that we are using readonly for collections on the ArcenExternalSubManagedData and ArcenExternalSubSubUnmanagedData, we have to initialize all those collections properly in the constructor, which was not always happening before.<br />
** We now are just initializing them as part of their definition itself, which is easier to check for correctness and has the same end result and performance.<br />
** If we missed any of these, or heck if we made any typos in the many many other changes list above, then there will be errors when loading certain savegames or when during certain parts of gameplay.<br />
** We should be able to fix such issues very quickly, and for now we're not seeing any issues, but we'd definitely appreciate testers in both singleplayer and multiplayer.<br />
<br />
* It goes without saying, perhaps, that this breaks all of the code-style external mods again. We will probably break those a few more times in the coming weeks as we get things multiplayer-safe, and then will stop that.<br />
<br />
== Version 2.505 Multiplayer Alpha Starts, Take Two ==<br />
(Released September 14th, 2020)<br />
<br />
'''Let's try this again! This is one big reason we did a "soft launch" into MP alpha. If anyone is able to test tonight and let us know how it goes for you, then we will probably make the official "hey there's multiplayer alpha now!" posts tomorrow, unless new showstoppers are found. At this point there's the periodic minor "waiting for players" micro-hitching annoyance, but beyond that being a small thing, Chris was able to play for 18 minutes between two computers across Valve's network tonight. No permanent sync issues, no degradation in performance, nothing that seemed glaringly off. There will be more bugs, but the core stuff -- knock on wood -- seems to be working. [[:Category:AI_War_2:_All_About_Multiplayer#Selected_Short_Term_Todo_List|There's a good list of things that need to be done in the near term here]], and that's just in terms of general functionality, not MP-specific features.'''<br />
<br />
* Fixed a bug where "??? Name" was showing up incorrectly in the factions list in the prior build.<br />
** Thanks to Badger for finding the typo.<br />
<br />
=== Multiplayer Sync Initial Implementation Now Tests Out Initially Working ===<br />
<br />
* Followed several paths of code trying to fix the ship sync, but ultimately wound up reverting a lot of that code after we found the actual cause.<br />
<br />
* Found a one-line typo that was leading to infinite duplication of every fleet on the client every few seconds.<br />
** Essentially every fleet was trying to match to fleet 0, and never finding it, and then creating a new one.<br />
** This was leading to a really devastating amount of duplicate data, and confusing everything on the client.<br />
<br />
* Manually reviewed the code for all similar things, including factions and planets, and all of those seem good for now.<br />
<br />
* Discovered that it was possible for extra fleets to wind up on the client just hanging around after a full fleet sync. Those extras (usually were only one or two) now delete themselves.<br />
<br />
* The clients no longer automatically add 1000 to all of the PKIDs that they are syncing from the host. We welcome the extra conflicts at this point... maybe... as it will also lead to some sometimes-correct things that don't need to sync.<br />
** This was something we were doing as of a couple of versions ago in order to try to prevent things from fighting over the same dictionary spot.<br />
<br />
* At this point we have far fewer syncs needing to happen between the host and client, which is awesome.<br />
** The number of ships and fleets is consistent between the client and host, and the energy usage is also consistent, and so on (though energy usage may be misleading since that gets synced from the host as part of the ultra-frequent processing).<br />
** A bunch of ships are showing up as invisible on the client for whatever reason, we know for certain, but those ships that are showing up maintain sync properly.<br />
** There are still some extra ships in ship fleet lines on the client that should not be there, and may just be duplicate references to existing ships.<br />
** Overall the total stats on the number and size of messages sent and received on the clients and the server seem to be incorrect, although sub-parts are often correct.<br />
<br />
* The "Deletion Time!" header in the ship sync details log now only appears when there is actually something to delete, which is not all that frequently anymore.<br />
<br />
* Fixed a bug on the client and host in multiplayer where the total messages received, and the total bytes of them that were received, were far too low. A filter based on message type was incorrectly being applied to these overall counts, where no filter should have been applied.<br />
<br />
* Fixed the remainder of the network messages still not being properly logged, in size or number. There are two places where filters applied, and we missed the second one at first.<br />
<br />
* Fixed an issue where ships that were network-synced were properly added to fleets and the global registry, but NOT to the planet faction (and thus faction) registries. So they were showing up as invisible, despite syncing properly as of today.<br />
** Now the ships show up just fine!<br />
<br />
* Previously we had put some logic in place to not delete ships too fast on the client if they were not discussed by the host in a sync pass. But now that the sync passes are working, this is no longer needed (and in fact actively makes things look wrong for seconds at a time).<br />
** The game now does a much quicker job of removing these extras, and consequently there are not as frequently extra ships that should not exist in the fleet memberships sitting around.<br />
** It's worth noting that for 3ish seconds at a time right now, it is possible for these ships to hang around (but they only appear on the client, and can't be given any orders, which is confusing and annoying but a comparably minor thing and will be tamed soon when we improve how PKIDs are allocated so that fewer clashes happen.<br />
<br />
== Version 2.504 Clarity And Fair Play ==<br />
(Released September 14th, 2020)<br />
<br />
'''We're no longer on the beta branch, because we don't think that this will negatively affect the single player experience. However, multiplayer's alpha is still not ready to go. This build is focused on fixing things up to get things back working properly for single player (which of course also affects MP), and we'll be resuming work on getting MP ready now that this is out.'''<br />
<br />
* If a player-allied faction kills something that would grant rewards (science, hacking, metal), the game now sees if there were player ships on the planet too. If so then it grants the rewards to the strongest player on the planet.<br />
** This seems the path of least frustration for players<br />
** Thanks to Ymir for the bug report, and others for a spirited discussion on steam.<br />
<br />
=== Bugfixes ===<br />
<br />
* When placing wormholes on a planet, the game now makes an effort to make sure they aren't on top of eachother. In very rare cases, some map types could wind up with wormholes that basically overlapped eachother, which was very hard to work with.<br />
** Thanks to Mac for pointing this out.<br />
<br />
* Fixed a longstanding issue with the number of entities contained within a ship where it was showing much lower numbers than appropriate, because we were indexing into the wrong array of display numbers. Above 100 units, it should now show much more appropriate numbers.<br />
** Thanks to TechSY730 for the report that finally tipped us off to the potential cause of his strange area.<br />
<br />
* Fixed an issue that could cause exceptions in the target list sorting if ships died at just the wrong moment.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
* Fixed a very unexpected bug that our recent extra-strict ExternalData checking logic let us find. Essentially it was somehow possible to get a second Praetorian Guard faction for a single AI, although we're not quite sure how. The game now actively clears those out when it is loading a savegame or settings as a template, to keep you from having double-strength PG forces for no apparent reason.<br />
** Thanks to Deathlymad and Metrekec for reporting, and for providing the savegame that let us practice testing and fixing the issue.<br />
<br />
* Fixed an exception that could happen at various times if the spire debris data was null when it was thinking about making notifications relating to them.<br />
** Thanks to jradishurr for reporting.<br />
<br />
* Fixed a minor visual error where it would say "ERROR: my FleetMembership is null!" if you were viewing a tooltip or popup window with a ship in it that had died. It now will say "This ship has died." instead, if the ship properly died (which is likely to be the case).<br />
** Thanks to GreatYng for reporting.<br />
<br />
* Preventatively 'fixed' theoretically-possible-but-not-encountered bugs (that might not actually have been bugs in the end relating to the following, all based on the new ExternalData changes:<br />
** Winning a game and getting a superterminal achievement (probably not likely).<br />
** Exceptions in notifications about wormhole invasions (this one probably would have been hit eventually).<br />
** Exception in notification tooltip about spire debris (again was likely to be hit).<br />
** Exception in notification tooltip about instigators (very unlikely).<br />
** Two exceptions in notification tooltip about astro trains (somewhat likely).<br />
** Exception in notification tooltip about relic trains (unlikely except maybe for multiplayer client).<br />
** Exceptions in five tooltips for DLC2 (likely to be hit).<br />
** One other exception relating to DLC2.<br />
** Possible exception with the Shark B plot on.<br />
** Several possible exceptions in writing out the list of AI factions and their subtypes (most were very unlikely, except maybe in multiplayer on clients).<br />
<br />
* Fixed a pretty huge bug where if certain entities died to remains (rather than permadeath), they would give AIP every time they died to remains, but when the normal permadeath setting was on they gave no AIP. This was the opposite of our intention and has apparently been incorrect since July 23rd.<br />
** This meant that things like GCAs, etc, would not give their proper AIP on death.<br />
** Thanks to ParadoxSong, Strategic Sage, crawlers, Isiel, and Puffin for reporting and helping track this down.<br />
<br />
* Regular engineers are no longer part of the fleet membership selections for anything that you can get via battlestations or citadels. Instead, combat engineers are used for those cases.<br />
** This will not affect existing savegames, only new ones.<br />
** Thanks to ultamashot for the report.<br />
<br />
* On September 6, we added the following: "QoL tweak for repair. Any ships on a planet where you outnumber the enemies 10 to 1, or the enemies have less that .2 strength are eligible to be repaired immediately. The previous rule was 'Any ships on a planet without enemies'"<br />
** This now only applies to ships and structures of factions that are friendly to the humans. Any neutral or enemy factions will now use the old style of logic that existed prior to September 6th.<br />
** This prevents the AI and Exos in particular from developing invincible shields when they have overwhelming firepower against you, among some other unintended consequences.<br />
** Thanks to TechSY730, crawlers, and MasterGeese for reporting.<br />
<br />
=== Fireteam dynamic resizing ===<br />
<br />
* In the late game, powerful factions can have hundreds or thousands of fireteams, which can make LRP threads run very slowly.<br />
* Each faction using fireteams has some variables that control 'how large should my fireteams be'. <br />
* Now for every 50 fireteams a faction has, it will require future fireteams be larger 1.5x larger. If a faction starts losing fireteams, the size requirements will go back down<br />
** The end result is fewer but larger fireteams, which should be a nice performance boost. Note this won't really help existing games as much as it will help new games to never have that many fireteams at all. Applies to all factions that use fireteams except the Imperial Spire, since that ends the game quickly<br />
<br />
=== AI Difficulty Description Rewrites ===<br />
<br />
* The tooltip descriptions for AI difficulties have been updated after folks have given us indication that there was some confusion based on the old ones (particularly sometimes players felt bad for playing too low, or did not understand the true purpose of difficulty 10, etc):<br />
** Difficulty 1:<br />
*** Old: So easy it might be asleep.<br />
*** New: The AI is effectively dormant; this difficulty is good for practicing the game without any real opposition.<br />
** Difficulty 2:<br />
*** Old: Actively does stupid things.<br />
*** New: The AI will only utilize its most basic subroutines. Retaliation will be minimal in response to your efforts.<br />
** Difficulty 3:<br />
*** Old: Excellent if you're just wanting to mess around with no stress and you've never seen an RTS, ever, before.<br />
*** New: The AI is conscious, but will operate primarily in a reactive capacity. Most of your opposition will be in the form of defensive AI forces in enemy territory.<br />
** Difficulty 4:<br />
*** Old: If you're only vaguely familiar with RTS games, this might give you an interesting time. But bear in mind all the cool and clever tricks aren't remotely here for the AI yet.<br />
*** New: If you’re ready for a little push-back from the AI and some confrontation on the homefront, this will be a good introduction to some of the behavior you can expect from higher difficulties.<br />
** Difficulty 5:<br />
*** Old: If you're here for the first time, but know your way around RTS games, this isn't an awful place to start. The AI is partially brain-dead still, but it should give you an interesting time. But if the game seems too easy, you'll know why.<br />
*** New: The AI takes your presence a bit more seriously. You may find your attention split from time to time and will have to more carefully consider the repercussions of your choices and how the enemy will react to them. Ongoing reckless expansion on your part has the potential to incite a deadly response from AI.<br />
** Difficulty 6: <br />
*** Old: If you're solid at RTS games, then this is what would typically be considered 'Normal' for you... potentially. The AI doesn't have its full bag of tricks yet, but it's still pretty crafty and is starting to have some of its tricks. This difficulty is also great to use if you're really wanting to have the AI be there, but some other factions be the MAIN threat. This will keep the AI interesting but not on your back all the time.<br />
*** New: Against a Difficulty 6 opponent, your choices are really starting to matter. You will notice more devious tactics being used by the AI and will need to watch your back as you claim assets and territory. Other factions have the potential to be more threatening depending on how you set them up, but the AI will continually make its presence known.<br />
** Difficulty 7:<br />
*** Old: Players in the first game had a saying, that 'the real game starts at difficulty 7.' And while that is kind of... rude?... there is also some truth to that, in that the AI is finally fully unshackled. There are a few truly nasty things for the AI that you would still need to turn on in the AI Behaviors section of the Options tab if you really want full pain, but this is a fully competent AI. This is also the difficulty that Chris, the original developer of the games, plays at. It's fun and he can play in a relaxed fashion and not be super focused on every detail, but still win only about a third of the time playing that way. So if that gives you some measure. He plays most other RTS games on their max difficulty or close, not that that's always saying much.<br />
*** New: This is where the AI stops holding back and utilizes all of the strategies and resources at its disposal to try and keep you at bay as your power grows. Its economic power is still somewhat limited, and while you can still get away with being a bit of a nuisance early on, the enemy won't hesitate to put you down if you make yourself too much of a threat.<br />
** Difficulty 8:<br />
*** Old: This is the sweet spot for veteran players. The AI has all its tricks, and has a bit of a stronger economy and stronger responses, too. You COULD make the argument that the economy of the AI at difficulty 7 is a bit on the weak side, so it's not that this is a cheaty AI or something. For players who are really paying attention and managing all the small things and want to have a drag-out battle, this is the difficulty of choice. If Chris really wanted to white-knuckle it, he could probably maintain his 30% winning streak at this level. But he's not into that kind of stress. There's a good chance you're better at RTS games than he is, though, if you're a veteran in particular, so maybe that's not so much stress for you.<br />
*** New: If you take the fully-functional Difficulty 7 AI, provide it with a bit more fair allotment of assets, and make it more sensitive to your actions, this is where you end up. Ideal for veteran players really looking to test themselves.<br />
** Difficulty 9:<br />
*** Old: Are you super awesome at RTS games in general, and this one in particular? Difficulty 8 is just proving too passe? This keeps all the tricks from before, but cranks up the economy and some of the frequency with which the AI will harass you. You could argue that at this point it is getting to be slightly a 'cheating AI,' but frankly things are so lopsided it is hard to make that kind of distinction. If you're so much better than the average player at managing your empire, then... I guess this is kind of taking away that advantage that would otherwise let you roll the 'fair' AI? We get into murky waters here, but a subset of veteran players enjoy this difficulty, so here it is.<br />
*** New: Making for an exceptionally tough adversary, Difficulty 9 stacks the odds in favor of the AI. Armed with a robust economy, the enemy will be ruthless in their attacks and relentless in their harassment of your defenses. To overcome this challenge, you will always need to be on full alert to prevent the AI from exploiting any weakness in your strategy.<br />
** Difficulty 10:<br />
*** Old: This difficulty level is not meant to be fair. It's using all of the AI's legitimate tricks, and it has its economy and whatnot cranked up to 11. If you win against this level of AI, that's something that we traditionally consider 'a bug.' You are supposed to lose, every time. Please file a bug report with how you won so we can fix it. So why do we have this difficulty level? There are some players who are just THAT GOOD, and they spend their time trying to find weaknesses in the AI despite its unfair advantage. A lot of improvements to the AI have come about because of players on difficulty 10 telling us how they won. We usually adjust unit balance or AI logic in response to difficulty 10 victories, we don't just make difficulty 10 harder. That would defeat the point.<br />
*** New: Economically, the 'SuperCat' AI gets a substantially unfair advantage. Militarily, they still play fair but will be able to bring overwhelming force against you in most every situation, all the time. A subset of dedicated players enjoy this difficulty level, but it is not fun for most. Beating the SuperCat even once is considered a crowning achievement, and usually involves a player discovering an unbalanced tactic. If you find yourself in the enviable position of being able to have your name added to those who win a 'pure' difficulty 10 win, please file a bug report with any tips you have on how we can (legitimately) upgrade the AI to counter your winning strategy. This back-and-forth arms race between the players and the developers has led to some of the most interesting innovations for all levels of AI for the game (and its predecessor), and it is also a very specific style of brutal gauntlet that certain dedicated individuals enjoy throwing themselves into.<br />
** Thanks to Tzarro for writing the new descriptions for us, except for the new difficulty 10 description.<br />
<br />
== Beta 2.503 Multiplayer Not Quite Ready ==<br />
(Released September 11th, 2020)<br />
<br />
'''This remains on the beta branch in case there are more singleplayer issues. As far as multiplayer goes, things are not stable enough to do any real testing. There is an issue of some sort that causes fleets to infinitely multiply copies of themselves on the client, which leads to a lot of lag and other problems. There's also an issue with various ships syncing in and out of existence in funky ways, which essentially makes multiplayer unplayable. This is something that is going to take more hunting, but it's all one cluster of issues, and once it's resolved multiplayer should be pretty ready to go. Really glad we did a soft launch! It would have been awesome to have people able to play multiplayer over the weekend, but we're just not quite there at the moment. Hopefully in the first couple of days of next week we can figure this out, but for the moment our brains are fried. More to come soon!'''<br />
<br />
* There's now extra error handling in the "stage 3" faction logic, to keep that from ending the entire game when those happen. It reads:<br />
** DoPerSecondLogic_Stage3Main_OnMainThreadAndPartOfSim Error for faction [name] (index [a number]). Consider restarting the game, as many other things may now go wrong because of this first error. And please report this! Error: [error text]<br />
** This will probably solve things like paralysis counters not counting down when there are such errors, but you're still likely to have a strange time.<br />
** Thanks to StarKelp, Mac, and gigastar for reporting.<br />
<br />
* Fixed a bunch of places in notifications where it was still looking to the old locations for an out of date icon. We will have real icons in the future for those, but for now the placeholder will no longer throw an exception.<br />
** Thanks to jrad for reporting.<br />
<br />
* Fixed an exception that could happen when killing instigator bases, in the notification tooltip for them.<br />
** This is another regression... kind of... from the last few betas. This actually will make clients more robust in multiplayer, though, so it's better than just a straight regression fix.<br />
** Thanks to TechSY730 and jradishurr for reporting.<br />
<br />
* The Civilian Industries mod has been updated to be compatible with the new versions of the game.<br />
<br />
=== Multiplayer Ship Sync Fixes ===<br />
<br />
* Added a setting to the networking section of the settings menu: Log Human-Readable Ship Network Syncs To Disk<br />
** Only relevant on multiplayer clients, not the host. Will majorly slow the game down, but dumps a huge amount of networking info to the disk in the NetworkHumanReadablyShipSyncLog.txt file in the PlayerData folder. This gives a message for each ship that was changed or deleted and why that was done, as well as what planet it was on and who owned it. When syncs are doing funky things, this is a way to manually review it and find out why.<br />
** This required us putting in a LOT of extra code to handle log<br />
<br />
* The current sync cycle is now sent with the divergent data sets, hopefully leading to clients not deleting things they just fixed (because that was totally happening before. Logs are a magical thing.).<br />
<br />
* Discovered a major oversight in our sync code, where basically once something had been synced once it was then being synced every sync cycle forever after that.<br />
** This was a huge cause of lag for multiplayer, and made things disappear inappropriately, probably.<br />
** There are still other things wrong with the ship sync, though, that we can see in the new logs.<br />
<br />
* The sync code has been made more robust in general, now syncing the type of entities as well as what faction they belong to.<br />
** These are often incorrect, when there are catastrophic different uses of primary key IDs anyhow, so getting those right is a good thing.<br />
** It occurs to us that maybe this is overkill, since if these are wrong then probably the planet or at least the location would also be wrong? But... let's leave it in for now, and maybe make an option later for skipping it. It's not a lot of data to transmit or a lot of extra processing.<br />
<br />
* Fixed a couple of issues with reusing entities as different ship types, where it will now properly add or remove or reassign system types on them.<br />
<br />
* Fixed some issues with reusing entities during sync where they were not being added back to the central lookup of entities, leading to future syncs to fail on them forever.<br />
<br />
* Put in some logic to improve the number of loops before we remove something that isn't being synced properly, to make it based on the number of loop counts rather than the amount of time something has been alive (since things that have been alive for a while can get fully synced later).<br />
<br />
* Fixed some conflicts that could happen with entities in the central lookup on the client in multiplayer, if the order of registering and unregistering entities gets out of sync.<br />
<br />
* Intentionally desyncing the PKIDs of ships, wormholes, and fleets on clients compared to the host.<br />
** Trying to reuse entity IDs was often causing some notable problems, and they were rarely in sync as it was.<br />
** This forces a sync cycle for every new ship and fleet that is created, but makes conflicts on the client a lot less likely.<br />
** This may not be a good long-term solution, but a refactor to avoid the conflict space is potentially where we're at, honestly. That will take days, and add a lot of bugs temporarily, so it would be great to avoid it.<br />
<br />
* At the moment the game creates infinite extra fleets on the client, slowing it down progressively. This makes it effectively unplayable.<br />
** There are also about a thousand ships that it will routinely delete from the client, then re-add, then delete again. Also making things unplayable. Still looking into it, but this is likely to be a Monday thing, as this is not a simple matter.<br />
<br />
== Beta 2.502 Regression Fixes ==<br />
(Released September 11th, 2020)<br />
<br />
'''Note that this build is still in beta in order to let people have a chance to run into any more regressions that we may have introduced. So far none of the regressions have indicated any errors in older builds, which is a nice thing. Though in the process of making the prior beta build, we did fix a number of "useless extra data" things, so even if we don't find any new bugs that were older, these regressions were still worth it to ensure data accuracy. It is quite annoying in the short term, though, and we really appreciate the folks taking the time to test it out.'''<br />
<br />
* Add some new voice lines when the player is attacked by the Nanocaust<br />
<br />
* Hopefully Zenith Forcefield Generators will now return after being pushed<br />
** Thanks to GreatYng for reporting, and Puffin for reminding us of the fix<br />
<br />
* Fixed a bug from the last couple of builds where chat commands were failing in general.<br />
** Thanks to Magiik, MasterGeese, gigastar, and Richard333 for reporting.<br />
<br />
=== Fixes To Regressions From Prior Beta Build ===<br />
<br />
* Fixed a bug in the latest beta build that was causing new games to constantly error out with autosave data not being added properly.<br />
** This is one of those "externaldata is now more explicit" things, but this is an example of us choosing the wrong explicit option this time around.<br />
** Thanks to Puffin for reporting.<br />
<br />
* Fixed an exception that could happen when trying to generate notifications about AI reserves before their data was initialized. This was caused by the last beta, but is better to have it handled this new way (so, yay error, this time).<br />
<br />
* When there are errors in generating a galaxy, it now no longer lets you into the galaxy to play (since that leads to many random errors after the real one with the map not generating).<br />
** Random things might include lots of planets belonging to no one, among other things.<br />
<br />
* SeedStartingEntities_LaterEverythingElse during mapgen now has a lot of new exceptions it can throw if various data is missing that it is supposed to have.<br />
** Mostly these are related to the AI and its subfactions (hunter, warden, and PG), but there's also one for if risk analyzer data is missing.<br />
** Prior to the last beta, it seemed to have been just using blank data, although it's impossible to be sure. And in the last beta, it was throwing an exception.<br />
** We then tested all of the factions in the game and the first two DLC, and the only three types that threw exceptions in this area were the AI subfactions (hunter, warden, and PG).<br />
*** We could use more robust testing of the game starting with various factions and them having various settings, though, to make sure that it's all going across properly (this is just in single player, not even multiplayer).<br />
** Thanks to Puffin and jradishurr for reporting.<br />
<br />
* Fixed four typos in the last beta that were not properly having the "related AI and subfactions" properly reach for one another, which led to missing or misapplied settings on game start.<br />
** This then left the Praetorian Guard still not working properly, because they have no custom fields in the lobby and thus were never having a reason to initialize. That probably was not a problem, but to keep things consistent and safe we are now initializing it when the general "AIDifficulty" field is processed.<br />
** For the record, prior to the most recent beta this means there were not actually any errors, but now we do have protection in place in case such an error pops up in the future. But for the time being, these errors were just in the most recent beta, which is gratifying to know.<br />
<br />
* Fixed a couple of logic errors with risk analyzers in the most recent beta that was causing their notification to show up wrong as well as also firing them immediately on game start.<br />
** They now should work properly again, and if the notification is going to be wrong, it will be more informative in its wrongness.<br />
** Also fixed the fact that this could happen when AI Risk Analyzers were not even enabled as a faction.<br />
** Thanks to Puffin for reporting.<br />
<br />
== Beta 2.501 First Raft Of Multiplayer Fixes ==<br />
(Released September 10th, 2020)<br />
<br />
'''This one is on the beta branch on Steam and GOG because of how much we changed with the "ExternalData Accidental Creation Avoidance" section. There may be legitimately new bugs that we introduced from that, or there may be old bugs that now simply show themselves with error messages. Either way, we don't want to inflict that on everyone, so please use the beta branch to help us test this one out.'''<br />
<br />
* There is a '''list of known issues with multiplayer''' here: https://wiki.arcengames.com/index.php?title=Category:AI_War_2:_All_About_Multiplayer#Selected_Short_Term_Todo_List<br />
** It's debatable how playable the alpha is at the moment, given the issue with the client ships deleting themselves rather than syncing, and given some of the (essentially) client-side memory leaks. Those two things will be my main priority tomorrow, unless something else more pressing comes up (like fixes to things broken by the ExternalData stuff).<br />
<br />
* A new button has been added on the main menu above the forum link that links directly to the AI War 2 discord channel.<br />
** Thanks to Metrekec for suggesting.<br />
<br />
=== Better Default Screen Resolutions! ===<br />
<br />
* Fixed a bug where the fullscreen resolution was still being saved into newsettings.dat rather than graphicssettings.graphics.<br />
** This meant that the fullscreen resolution was being sent over cloud sync, when really that should not be, since that is a machine-specific setting.<br />
** This may wipe out your prior values for the fullscreen resolution, requiring you to set it again.<br />
** Thanks to jrad for reporting.<br />
<br />
* At long last, added a startup feature that folks have been wanting for a while: better default screen resolution, for a better first impression as people start the game for the first time.<br />
** Previously, this particular game was just having a default of opening in windowed mode and 1024x768px, since that will fit on most monitors.<br />
** One of the reasons for this is that opening directly in fullscreen mode can cause bugs, particularly when settings are copied from one machine to another. But we are using fullscreen windowed mode, which reduces the chance of fullscreen bugs, and we also have our graphics settings not set to cloud sync for the last year or so.<br />
** With that said, now the game will automatically (first time opening it on this or future versions on any given computer) set itself to be fullscreen mode with your desktop resolution.<br />
*** It also will set your windowed mode defaults to be your desktop resolution minus 80px width and 100px height. So if you do flip it back to windowed mode, it should be at a size that feels sensible for your machine.<br />
** If you are using a very high-DPI monitor on an underpowered machine (for instance how Chris is testing with a late 2013 MacBook Pro 15" that is below minimum specs for the game), then you may want to lower the fullscreen resolution to something that machine can handle more gracefully (for instance, with ship graphics off and only running at 720p, that below-specs machine runs the game great).<br />
** Note: if you are already in fullscreen mode, then unity just reports what your current fullscreen resolution is. So it will save itself to that, and then set your windowed mode resolutions to be a bit smaller than the current fullscreen mode. Normally this game opens for the first time in windowed mode until this logic kicks in, so this only applies if you already have a current fullscreen setting active.<br />
<br />
=== Multiplayer Fixes From First Alpha ===<br />
<br />
* If there is a null result from FindArcenSteamClientConnectionByConnectionID in OnMessage on a Steam host, it now will write a more detailed and informative message as to why.<br />
** Additionally, in general OnMessage on the Steam server and client is now far more instrumented if those wind up with issues.<br />
** This won't actually solve any problems, but for the case where there was a client disconnect on connect, this should tell us what is going on more.<br />
** Thanks to StarKelp for reporting.<br />
<br />
* The numerical order of the detailed networking sync logs is now better regardless of OS file sorting, as it gives leading zeroes where needed.<br />
<br />
* While in the lobby, or while players are still connecting, the game no longer tries to run the general sync-correction code. This was an oversight in general, and was leading to various errors that would keep popping up until the host saved in-game and clients disconnected and reconnected.<br />
** This was the chief cause of the ""Fixed attempt to read more faction data than we had factions" error on the client.<br />
** Sync was already being handled as well as it needed to be in the lobby in particular: all it needs to do is make sure that your UIs are consistent, which it does. The actual underlying data about incomplete factions and such that can't be seen yet are really quite irrelevant at that point, and so it actually skips a lot of that data, which was incompatible with the full main-game-style sync. As soon as you start a game from the lobby, it already doing a much more robust generation and transmission of the data.<br />
** After loading into the game from the lobby, however, it seems that that initial sync is not as complete as we had hoped, so that's another area for us to now investigate.<br />
** Thanks to StarKelp and his play group for reporting.<br />
<br />
* Fixed a bug in deserializing player accounts, which was something that was leading to the immediately-after-lobby sync being broken.<br />
<br />
* Fixed a harmless extra blank fleetID that was being sent as part of the PeriodicWorldExtrasSync, which made them look inconsistent but did not cause other problems.<br />
<br />
* Fixed a larger bug that was actually preventing deserialization of divergent ships from working properly if the ship did not already exist on the client.<br />
** We had fixed this the other day, but made a mistake in the fix and had to do it over. Now it works!<br />
<br />
* There are still some more issues with syncing divergent ships that have external data on them, and we're not sure why yet.<br />
** The deserialization code for external data now has extra error handling in general, so that we can be more informed if something like that happens during sync or a load off of disk.<br />
<br />
* On the ArcenSerializationTester, added AppendIfActive() and AppendLineIfActive(), which are basically like Append and AppendLine().<br />
** These return a ArcenSerializationTesterWriter so that they can be chained into concisely readable calls like other parts of the code.<br />
** We want to be able to write more complex data in for informational purposes without it being the full WriteHeaderStringIfActive(), and without having to do string concatenations that hit the GC.<br />
<br />
* Several pieces of new logging are now in place to help us more easily identify problems syncing unit data, and external data in general.<br />
** We were seeing some mighty funky stuff on ExternalData syncs failing in multiplayer, and are trying to understand what is happening and why.<br />
<br />
* A WHOLE lot of extra error handling and instrumentation has been put in place around ships and externaldata in general.<br />
** Basically if something goes wrong, we don't want it to do so semi-silently. The various problems that most people were seeing in the first multiplayer alpha version were really downstream issues from the real errors, which were largely silent.<br />
<br />
* Found and fixed a part of the externaldata serialization that could be null in some cases, requiring us to instantiate it even on a partial sync.<br />
** This is something that we had already guessed we would have to do, based on us doing the same thing with ships themselves last version, but the silent errors happening here took us several hours to figure out what was going on. It's fixed now, but there will be more cases of this, probably.<br />
** With this fixed, the divergent ships no longer throw any errors. However, there are still some major differences between the client and the host that need to be looked at.<br />
<br />
=== ExternalData Accidental Creation Avoidance ===<br />
<br />
* Put in several fixes to potentially remove ScourgePerUnitExternalData from accidentally being created on any unit that was part of a fireteam.<br />
<br />
* This is going to break code mods temporarily.<br />
** GetCollectionByPatternIndex() on externaldata now takes a new ExternalDataRetrieval enum, which can either be CreateIfNotFound or ReturnNullIfNotFound.<br />
** The default used to always be CreateIfNotFound, which was nonobvious and was causing things like scourge data to appear on non-scouge units. But very likely it was also causing all sorts of other data to be erroneously initialized. This wouldn't have broken anything, but was certainly bloating savegames prior to this version.<br />
** For reference, all of the methods for getting these are expected to follow this sort of pattern: GetScourgePerUnitDataExt( this GameEntity_Squad ParentObject, ExternalDataRetrieval RetrievalRules )<br />
*** In the main game and first two expansions, this led us to having to correct 112 locations in 26 files. That in turn required another 705 secondary fixes.<br />
**** This may seem excessive, but being able to verify that we are correctly initializing data only when needed is a worthwhile goal, and it makes code clarity so much greater.<br />
*** There are a variety of places that this may make a difference based on our changes thus far (aside from whatever bugs we have introduced):<br />
**** Reinforcement spawning may be more correct now. There was previously some logic that may never have been hit if it was originally pointed at a non-sentinels faction, but now it will hit it.<br />
**** AI sentinels data will no longer be put on every faction during the post-victory achievement check. That was likely causing some problems (which someone had put a mantis report about post-victory slowdown and exceptions, so it's possibly related).<br />
**** When checking faction intensity in general, a whole host of wrong data collections are no longer created on random factions.<br />
**** Several things about astro trains can no longer cause accidental data on wrong factions.<br />
**** If astro trains that should be spawning AI waves or adding to the AI budget are pointed at a wrong faction, the data no longer goes into the void but instead an actual error pops up.<br />
**** Several hacks will now show exceptions rather than throwing their data into the void if they are pointed at wrong factions.<br />
**** There are a wide variety of places where the AI difficulty or AIP of an AI were referenced, and which might now throw a nullref exception. If any of those DO, then that is actually a good thing, because in the past those have silently been returning 0 for both rather than using real numbers. If neither of those cause any errors, then that's even better because we know our other code has been correct already. Fingers crossed for more of the latter than the former.<br />
**** Any time any fireteam was disbanded, all of its units were assigned blank scourge external per-unit data. Fixed. Oh, actually every time it looped over the units in a fireteam. Fixed that, too.<br />
**** ExoData is no longer added to every last faction in the game (notifications checks were causing that).<br />
**** It's possible that some tooltips or notifications might throw exceptiosn now, particularly if you load a savegame and mouseover them before unpausing. If these throw exceptions, then basically this is a case where it would have been gibberish data previously, so it's still useful.<br />
**** Various pieces of code like "don't run the nanocaust info if it's not set up" will now work as their programmers likely originally intended.<br />
** This probably introduced a number of new bugs from typos, along with whatever bugs it uncovered, so this is why we're heading back into the beta branch temporarily.<br />
<br />
== Version 2.500 Multiplayer Alpha Begins Now! ==<br />
(Released September 9th, 2020)<br />
<br />
* Removed some extra code that was accidentally included that was preventing the new findp command from being able to cycle through planets properly if there were multiple matches.<br />
** Thanks to cml for reporting.<br />
<br />
* PlayerAccounts are now also passed to cheats/commands (not to be confused with gamecommands), so that now if there are multiple people in charge of a single faction, commands that are sent can affect just one of the players if needed.<br />
** This is now used for the findp command, which lets two players share control of a single faction without the findp of one player affecting the other.<br />
<br />
=== Multiplayer Readiness In The UI ===<br />
<br />
* The multiplayer button on the main menu now has a small bright "Now in public alpha!" tag on it, to make sure no one misses that.<br />
<br />
* In the multiplayer section of the main menu, a new "Alpha Testers: Please Read!" button has been added.<br />
** This has a tooltip that says:<br />
*** Click to open a web browser that explains the current state of the multiplayer alpha (that changes almost by the day), as well as questions for testers (also get frequently updated), a history of recent improvements to multiplayer categorized by date, and a list of work items that are upcoming.<br />
*** Most important of all: if you are running into problems, please take the time to report them to us, rather than assuming someone else will report it. That is absolutely the most helpful thing we can ask for.<br />
** And its link goes here: https://wiki.arcengames.com/index.php?title=AI_War_2:Multiplayer_Alpha_And_Beta#What_Does_Multiplayer_Alpha_Mean.3F<br />
<br />
* At the top of the networking section of the personal settings menu, there used to be an option called "Enable Multiplayer Alpha"<br />
** This had warnings about how multiplayer alpha was not ready, but that you could click this to enable it anyway.<br />
** This option has, happily, been removed!<br />
** Previously, if that option was not enabled, then clicking the Multiplayer button on the main menu would show a popup with a message from Chris explaining the current state of multiplayer and projected timelines.<br />
*** That message has been removed, and clicking the multiplayer menu now just opens it, again, happily.<br />
<br />
=== Included Mod: Civilian Industries Pre-Multiplayer Finalizations ===<br />
<br />
* Final optimizations for Multiplayer, touching up loose ends.<br />
<br />
* Many nerfs in regards to AI Raids.<br />
** A 20-40%, based on intensity, reduction to AI Raid strength.<br />
** A roughly 100% longer warning before they fire.<br />
** They now only spawn a singular wormhole per planet.<br />
<br />
* Large scale Trade optimization<br />
** The Grand Station will now output a larger amount of cargo ships on demand.<br />
** Many more Cargo Ships can accept trade routes every second.<br />
** Trade Stations will no longer be built on planets that construction ships couldn't safely reach from the Grand Station's planet.<br />
** They are now much smarter about stockpiling resources for local militia use before exporting them.<br />
<br />
* Additionally, a large number of undocumented bugfixes that were lost in the surge of all these multiplayer-based updates.<br />
** The most notable fix is a fix to the Exception that could pop up when mousing over the Raid notification.<br />
<br />
=== Multiplayer Sync V1.0 ===<br />
<br />
* Added AddBytesWithFormatAndColor() and AddBytesWithFormat() for writing bytes nicely to an ArcenDoubleCharacterBuffer.<br />
** This cuts down on our repeat code for easy formatting of things that might be in bytes, KB, or MB.<br />
<br />
* There is now some basic sync stats that will show in the escape menu during multiplayer, and then more detailed sync stats that can be turned on at will.<br />
<br />
* New setting in the network section of personal settings: Show Network Sync Details In Escape Menu<br />
** Only applies when you are in multiplayer, and has different outputs on the host versus clients. Gives statistics on how much the game has had to correct in terms of divergent data between the client and the host.<br />
** Note: The PKIDs and squads are actually checked for divergences, and those are shown in more detail on the client than the host. All the other things are sent in a periodic overwriting fashion, without checking for divergences, as the bandwidth used (which you can see with this setting on) is less disruptive than the CPU cycles required to do divergence checks.<br />
<br />
* The width of the columns in the escape menu are now a little wider.<br />
<br />
==== Fixes Based Off Testing Initial Implementation ====<br />
<br />
* Fixed a bug where the client in multiplayer was incorrectly calling a host-style method when trying to tell the host about divergences in squad sync.<br />
<br />
* Fixed a bug in multiplayer sync where the squad sync stage would never complete or advance beyond the first 20th of the squads, instead just doing those ones over and over again.<br />
<br />
* Fixed a minor bug in multiplayer where the client was telling the server about mismatches even when there were none (just sending an empty list to them).<br />
<br />
* Fixed a one-line bug in multiplayer sync that hilariously just caused all of the ships on the client to be deleted within a few seconds of playing.<br />
<br />
* Put in extra debugging for Client_AcceptDivergenceDataFromHost(), since it was having some exceptions happen.<br />
** In general at the moment, actual divergent ship data is coming across slightly garbled.<br />
<br />
* Temporarily disabled the planet and world-extras sync steps in the multiplayer sync code, as those both were throwing errors on the client side.<br />
** With those disabled, we can see that the ship sync, fleet sync, and "ultra frequent" sync all seem to be not only working great, but also not sending too much data and not slowing the game simulation down.<br />
** The garbled divergent ship data is a bummer and does mess with things, but in general it just speaks to our need for better instrumentation in that area, and is not entirely unexpected.<br />
<br />
* A new setting has been added to the networking section of personal settings: Log All Decoded Network Sync Data To Disk<br />
** Will majorly slow the game down, but dumps decoded sync messages to the disk in files inside the PlayerData/NetworkSyncMessages folder. This only covers sync-style data, but with this logging enabled on both the client and host, this is a great way to see why serialization is failing, if it is. <br />
** Enable with care! Since this data is being actively decoded as it is written, it is far larger (and in plain text) than the actual data being sent across the network. A typical ratio might be 40MB of decoded data for 500kb of actual network traffic. You can have a few GB of data on your disk after just a few minutes of letting the game run in this fashion.<br />
<br />
* Using this hefty new tool and some extra instrumentation, we were able to locate and fix the problem with the sending of divergent ship data from the host to the client.<br />
** We were simply omitting the primarykeyID for entities that were different, not deleted. Things like that are easy to miss but almost impossible to find without a logging mechanism like this. Manual code review just leads you to look right past it, especially if you've been staring at it for days.<br />
<br />
* Did a bit of an overhaul on how some of the network sync data is logged, so that we can do a folder-at-a-time comparison to find differences where any may exist.<br />
<br />
* Server_SendBatchOfSyncsBasedOnCurrentSyncStage() now has extra debugging going on in itself, because we're experiencing some sort of errors in there on the host after a certain amount of time in multiplayer, now.<br />
** Thus narrowed the problem down to Server_SendPeriodicFactionSyncDataThatJustOverrides(), and so instrumented that a lot more thoroughly... except actually the problem was in Server_SendBatchOfDivergentSquadsToFix(), we just read it wrong. So that also got extra instrumentation.<br />
*** And that was, in turn, just a simple typo on one line. Logging and instrumentation makes the impossible and time-consuming very fast and easy -- after the initial setup time cost. Very much worth it.<br />
<br />
* Found ourselves back with another error in Client_AcceptDivergenceDataFromHost-DivergencesSection. But we can't quite use the logging as it currently exists to easily diff these on a folder level.<br />
** In order to make that possible, we are switching away from using a central LogIndexThisSession Int64 for all message types being sent to StartNetworkSyncDataMessageLoggingIfNeeded, and instead are having an individual index for each FilenameBase string.<br />
*** This puts things slightly out of chronological order when we're talking global messaging, but that's because the client and server can be talking back and forth and have some different ordering between message types. We need the message types to always match up, and now they will.<br />
<br />
* Discovered that we were not properly sending the TypeData of the ships in the divergent ship fixes messages from the host. This was then causing nonsensical errors later in the deserialization of those messages.<br />
** Another great example of something we would not have found, potentially at all, without the new instrumentation.<br />
<br />
* Discovered a harmless logging artifact that we introduced into the last few versions where the header for fireteam data was behind its id on one machine, but in front of it on the other.<br />
<br />
* Thanks to the logging, also discovered an inconsistency in how fleet data was being updated, which was causing those to choke and die on the client side.<br />
<br />
* Went ahead and re-enabled the world-extras and planet syncing, since those go wrong so quickly but we now have logging on for them.<br />
** That immediately errored, but that is just fine for our purposes. Can you tell logging makes us happy?<br />
** This quickly revealed that there was something funky and inconsistent with how we were reading the planet's type. That has been fixed to be consistent.<br />
** That then revealed something a lot more complicated was wrong with how the external data patterns were being read in general, most notably on the world but definitely not limited to that.<br />
*** We improved the logging and instrumentation on the external data pattern serialization in general, and this then solved the issue on the world and the larger issue as a whole that would have come back to bite us in many other areas later.<br />
*** Then put in some more logging related to MDCExoDataExt, since it seemed to have an inconsistency. We now are marking when ExternalData is complete in the log, to make that mistake harder to make.<br />
** Then found and fixed yet more inconsistencies in how we were syncing squads.<br />
*** Also we then stopped syncing some stuff that was set to "only save on the network" (and not to disk) for squads, but it was data that really really should not have been synced because it was working fields from other threads.<br />
** And then also fixed a random extra float that we were sending after "world extras" sync. It's the sort of thing you only see in a log, as it was invisible in the code.<br />
<br />
* We are no longer syncing the IncomingShots on entities except during the initial world sync, because in general we are not syncing shots.<br />
** This is going to take some refactoring for targeting, possibly, but then again existing code will very possibly just adapt to it. <br />
*** "Catastrophic" or "planet switch" styles of sync fixes are probably not frequent enough during combat for it to be too very wrong, but either way things will fix themselves within a rolling 3-4 second window. It's interesting, because its constant attempts to heal itself in various places, while "in battle" with attrition is reminiscent of a scene with Wolverine in X-Men 3. That's an amusing thing to realize about one's code. (Let the record show that the devs really don't like X-Men 3, but that one scene was visually neat).<br />
<br />
* Fixed some potential nullref exceptions in CalculateSpeed() on ships, which really at this point mainly would happen when ships or fleets or speedgroups or some combo of that were being updated at the same time as they had something going on in the background threads.<br />
** Basically there's a whole new nest of cross-threading errors that we can run into, but there's not much we can do about them except to harden individual methods as they come up with problems, and in general also add extra instrumentation to methods if we think they have the potential to be a problem again (this one does).<br />
** This is kind of an unavoidable element of the loose way that we handle threading, which is needed in order to get the maximum speed out of the simulation and all the various threads that are involved. The client side of network sync is now a new source of these issues, but it's not remotely the first of them. We'll probably be swatting this sort of thing down throughout the alpha and beta of multiplayer. And then SirLimbo will somehow find a way to run into exceptions that no one else sees for the next two years. ;)<br />
<br />
* At this point we can confirm, based on our detailed logging, that multiplayer is able to successfully run for a solid four or five minutes of gametime (at 5x sim speed) and come out with consistent results the entire time.<br />
** This leads to about 2600 network log files for the sync messages, which are about 100MB per computer, and this substantially slows down the game from running at an unencumbered pace (the disk writes are heavy).<br />
** Of course, as soon as we turned off the logging, we ran into some sort of new gameplay thing which caused issues in the ship sync code. So there are still some goblins in there, probably related to certain types of data that are not on every ship.<br />
<br />
* Added a new setting to the network section of personal settings: Log Decoded Network Ship Sync Data To Disk<br />
** Same as the 'Log All Decoded Network Sync Data To Disk' setting, but only writes data for actual divergent ship fixes. Since that is one of the more-likely-to-break areas of sync, but only something like 1/15th of the actual data being passed around, being able to isolate it to this is helpful.<br />
<br />
* Fixed an issue where the current galaxy map display mode, and the current planet index you were viewing, would be reset by the sync data on clients in multiplayer.<br />
** It now takes in that sync data only for non-local player accounts. Clicking to another planet only to have your view bumped back a second or two later was MILDLY frustrating, heh. And also slightly hilarious.<br />
<br />
* Discovered and fixed an issue where if a partial sync was sent from the host to the client about a ship that the client had no knowledge of, then the client would try to read it as if it was an off-disk sync and thus read things incorrectly and fail.<br />
** This will probably be elsewhere in the code as well, so we will potentially need to review a lot of other data structures.<br />
<br />
== Beta 2.134 Searching For Planets ==<br />
(Released September 7th, 2020)<br />
<br />
'''This one is still on the beta branch on Steam and GOG, since we have continued making lots of substantial changes to the central serialization logic for the game in service of the multiplayer sync code. We're now done with what would constitute V1 of the MP sync code, so we can come out of the beta branch tomorrow so long as no one runs into any problems with single player on this build. As for multiplayer itself, we have a fair bit of testing to do to make sure that the MP sync code is doing its job and not exploding RAM usage on the clients or harming performance, etc. Once that's verified and all the bugs we find in testing the MP sync code are fixed, then we're officially into an alpha status with multiplayer. Given that the V1 of our sync code turned out to be far more thorough than we originally planned, the multiplayer alpha period should hopefully be shorter than it would have been.'''<br />
<br />
* Extragalactic war ships are no longer classed as 'small' when hovering the Planets Under Attack notification<br />
** Thanks to crawlers for the bug report<br />
<br />
* The Dyson Sphere produces a small number of drones, as well as its usual ships. Those few drones no longer leave the sphere's planet<br />
** Thanks to GreatYng for reporting<br />
<br />
* Update the time estimates for releasing multiplayer and DLC2<br />
** Thanks to ParadoxSong for reminding<br />
<br />
* There's now a Journal entry for when the AI can send extragalactic war units, so they won't come as a surprise<br />
** Suggested by zeusalmighty<br />
<br />
* Fix a bug where the Helping Hands 2 quickstart was broken<br />
** Thanks to Spook for reporting<br />
<br />
* QoL tweak for repair. Any ships on a planet where you outnumber the enemies 10 to 1, or the enemies have less that .2 strength are eligible to be repaired immediately.<br />
** The previous rule was 'Any ships on a planet without any enemies' which could be frustrating if you were trying to hunt down a few cloaked ships.<br />
** Thanks to crawlers and Isiel for suggesting<br />
<br />
* Some minor tutorial tweaks<br />
** Thanks to MasterGeese for reporting<br />
<br />
* The extragalactic war spawning notification message now uses 'a' and 'an' appropriately<br />
** Thanks to Ovalcircle for reporting<br />
<br />
* Update the Description for the snake map to mention that it's very hard<br />
** Prompted by a discussion on the forums<br />
<br />
* When you have the galaxy setting for Adjacent Planets Watched, it now takes that as the baseline and is increased by things like Economic Command Stations and Spy Cradles.<br />
** So if you have "Watch 1 adjacent planet" then a military command station will watch 1, but an economic will watch 2<br />
** Thanks to ParadoxSong for suggestion<br />
<br />
* Small update for MoreStartingOptions by AraudB:<br />
** Inordinate had 10 plasma turrets rather than 2. Fixed the number of stations in the mod description too.<br />
<br />
* Removed a blank "Fleet Experience" section from the tips window.<br />
** Thanks to Isiel for reporting it.<br />
<br />
* Several different spots that could throw errors if fleet membership was null now no longer do.<br />
<br />
* DoEntityStepLogic_Ship now has better debug logging.<br />
<br />
=== Multiplayer: Sync Correction V0.90 ===<br />
<br />
* Added a new SerializationCommandType, which has three values:<br />
** NormalFullType, Network_ContinuousPersistentSync, and Network_DuringDetailedNetworkSyncStage.<br />
** This is now used on Factions in order to differentiate the three major types of serialization that we might be doing.<br />
<br />
* The ExternalData on factions is no longer synced as part of the "every frame" IsForNetworkContinuousPersistentSync.<br />
** And actually a bunch of other stuff on factions is now limited out so that it's not over-saturating certain data while it IS still sending other things every frame auth.<br />
** This is also of relevance because it means that any faction externaldata that is not fully optimized to not thrash the GC will inherently do less thrashing of the GC. So that makes mods a little more safe in general in multiplayer.<br />
<br />
* Fixed several parts of the faction object to be efficient and not thrash the GC in the way that we were doing for the ExternalData last build:<br />
** TechHistoryEvent, HackingEvent.<br />
<br />
* FromServerToClient_SendAllOtherSyncDataThatJustOverrides has been renamed to FromServerToClient_SendUltraFrequentSyncDataThatJustOverrides, because it no longer is "all the other data." It's just the most common stuff.<br />
** Added new new messages for time-sliced sending of the following: FromServerToClient_PeriodicFactionSyncDataThatJustOverrides, FromServerToClient_PeriodicFleetSyncDataThatJustOverrides, FromServerToClient_PeriodicPlanetSyncDataThatJustOverrides, and FromServerToClient_PeriodicWorldSyncDataThatJustOverrides.<br />
<br />
* The full-faction-data sync even has been implemented on the client and the host, and now includes speed groups (which previously we felt like were too heavy to send on the ultrafrequent channel -- which was correct).<br />
** This also means that we needed to make the SpeedGroups be nice to the GC on deserialization, so that's done.<br />
** Also fixed several oversights that would have led to hard-to-diagnose endless inflation of array contents for various faction items. Yow. These sorts of things will be hard to find any other way than manual code review, and can be in mods or the main game and can cause massive slowdowns with no central way to diagnose it. These will be "fun" to find in the future.<br />
*** Essentially lists like FactionIndicesIAmAlliedWith were being added to each frame without ever being cleared before the new set of data was put in. This would only happen during multiplayer, and only on the client, but would start causing all sorts of problems.<br />
<br />
* Planets and planetfactions and their externaldata have now gotten the same treatment that factions did.<br />
** Here again there were a couple of infinitely-expanding lists that are now fixed.<br />
<br />
* Whew, okay, fleets and their memberships have also been updated to the new style.<br />
** This... is going to be very problematic, the way it currently exists. This first checkin of the fleet memberships in particular is going to be very problematic indeed, for a whole lot of reasons, but it's a good start for refactoring.<br />
** Essentially, fleets are so bloody complicated the way that they exist right now (in terms of data structure under the hood) that they can't work cleanly in multiplayer without a bit of refactoring. The positive news is that we can make potentially even single-player slightly more efficient with this refactor, but it's going to require redoing drones and a few other things along those lines.<br />
** Edit: the below solves our issue for the time being, although we may still make some changes in this area in the future to make things easier. We're no longer FORCED to, though, which is nice.<br />
<br />
* Came up with what is hopefully a clever use of our existing sync infrastructure to handle the cascading wrong data that can happen from the current fleet structure. This was something that has us stumped for a bit, because doing the most efficient sync style for fleet memberships could lead to units that were in the wrong membership after that.<br />
** The simple solution is the fact that we do know when we are hitting such a case, and so we can just tell all those units to kill themselves on the client. They will then naturally and fully re-sync from the host within 2-3 seconds.<br />
** This is the sort of thing that we want to minimize, of course, but the worst case is having something be permanently wrong in a MP game and us not being able to fix it. Later logic can always do something to sync these back quicker, or to minimize the number of times these are being hit if it is frequent, etc, etc.<br />
** For now we're just monitoring (in the UI) how often it happens, and we can make decisions based off of that... as people choose to share that data about their sessions with us. We may implement some sort of automated data reporting that people can opt into if things seem problematic, or if we think we're not getting reports on things like this but it does seem to be a problem for people.<br />
** At any rate, priority one is making it work properly in the long term of a game even if there is a snafu for a few seconds on a client, and priority two is minimizing or erasing the snafus.<br />
<br />
* Various central world data is now synced from the host to clients every few seconds/<br />
** Among other things that were more intentional, this actually lets clients know the status of other clients pretty rapidly (aka, seeing that someone else is disconnected or connected).<br />
** This should have all the central items of relevance nicely synced, although we are skipping the "world history" and "journal history." For those, if they are really needed, we may just introduce a new sync stage to time-slice the processing of those. But frankly they are not likely to get out of sync.<br />
<br />
* At this point it will be time for us to test our sync code, which is utterly untested at the moment. But the design and implementation of V1, except for actually testing it, is complete.<br />
<br />
=== "Find Planet" Command ===<br />
<br />
* Added a new extension in our central ArcenStrings which lets us do a case-insensitive Contains() call (for purposes of searches, etc).<br />
** This is useful for a variety of purposees, and lets us do partial comparisons (not just Equals()) calls) without having to cast to lowercase.<br />
<br />
* Implemented a new [https://wiki.arcengames.com/index.php?title=AI_War_2:Cheats#Debugging command], "findp", which lets you search for planets via the chat command:<br />
** Formatting is like this: "cmd:findp,gear" (minus the quotes).<br />
*** This example would search for the text "gear," and would bring up results "Geary" and "Gearworld" and "geaRson" if all three of those existed in one galaxy.<br />
** It tells you how many results there are, and if there is more than one result, then repeat entering of the same command (just press up and enter) will cycle you through them. It tells you that it will cycle you through them if there are more than one.<br />
** If you are on the planet view, it switches you to the planet view of that other planet. If you are on the galaxy map view, it centers the galaxy map on that planet.<br />
** Thanks to cml for the initial implementation of this as a mod.<br />
<br />
* Added a new "Quick Tip" item, which shows up randomly on the starting screen as well as in that section in the tips section: Searching For Planets By Name<br />
** During the game, if you hit enter/return to bring up the chat window, and then type 'cmd:findp,yoursearchhere', you can search for planets by name. If you type part of the name of a planet, then you can hit up and enter to issue the command repeatedly and cycle through multiple hits if there are any.<br />
<br />
== Beta 2.133 Hotfixes ==<br />
(Released September 4th, 2020)<br />
<br />
'''This one is on the beta branch on Steam and GOG, since there were a number of problems with the prior build that prevented adequate testing. Once we have confirmation of more people able to play this new version without incident, we can move back out of the beta branch.'''<br />
<br />
* Fix typo in Full Badger tooltip<br />
** Thanks to Breach for reporting<br />
<br />
* Nanocaust now uses a darker border colour<br />
** I forget who mentioned that this looks much better<br />
<br />
* The Nanocaust might now play a bit of defense<br />
<br />
* Improve the way a player's Overall Power Level is calculated<br />
** A player can now have a high enough Overall Power Level to trigger Extragalactic War Units without allies if they are on difficulty >= 7<br />
<br />
* Dark Spire ship line hacks no longer destroy the VG<br />
** Thanks to Sol for reporting.<br />
<br />
* In Steam, the default launch style is now OpenGL, rather than Vulkan.<br />
** As noted, this is the preferred launch style, and more stable.<br />
** Thanks to TechSY730 for suggesting.<br />
<br />
=== Fixes Relating To Prior Beta ===<br />
<br />
* Fixed several areas where trying to check a non-existing setting (potentially because it was from a mod or expansion you don't have installed) was causing issues.<br />
** This is a problem dating back months to when we changed how lookups to missing settings worked, but we're only now seeming to hit it in the most recent betas.<br />
** Thanks to Badger and others for reporting.<br />
<br />
* A variety of extra debugging info has been put into some of the high-level world serialization areas for our logs when problems happen.<br />
** Also put in a bunch more into fleets and fleet memberships for debugging purposes.<br />
<br />
* Identified two fields from fleet memberships that were not properly translated over into the new format in the last beta build, causing all new savegames in that beta to fail to load.<br />
** Now that this is fixed, the broken savegames all seem to load just fine, which is always nice when that happens.<br />
** Thanks to StarKelp, Sol, and ArnaudB for reporting.<br />
<br />
* The "Civilian Industries" mod by StarKelp has been updated to function in the new code framework we introduced last build.<br />
** All of the mods we distribute with the game are again working at the moment, to our knowledge, now. Code-style mods from other sources (forums, etc) may not be updated yet to compatibility with this latest set of builds.<br />
** Please note that we broke compatibility on purpose (not a typical thing), to add multiplayer functionality to mods and make sure that no mods would cause unpleasant spikes in memory usage on client machines in multiplayer.<br />
<br />
== Beta 2.132 Exterior Leviathan ==<br />
(Released September 3rd, 2020)<br />
<br />
'''This one is on the beta branch on Steam and GOG, because we made so many changes to some fundamentals of how the game works. These are driving at improvements for multiplayer, for the partial syncs to be able to happen, but they break code-style mods for the game (including Civilian Industries as included in this version), and it's possible that they temporarily are breaking something else since we've changed several thousand lines of code in a few dozen files and may have made an error in any one of a number of places. Some bits of multiplayer sync are a bit more hefty than we'd been thinking they might be for V1 of that, but then again we're getting more of it done upfront rather than later. We'll be able to start actually testing the sync maybe tomorrow, unless a bunch of other things are broken by our changes.'''<br />
<br />
* Dyson Spheres now must kill all the guard posts on a planet before they can kill a reconquest command station. This should prevent a buildup of guard posts. <br />
** Thanks to TechSY730 and Khankar for reporting<br />
<br />
* Fix some bugs with Usurpers owned by praetorians or other AI subfactions<br />
** Reported by GreatYng<br />
<br />
* Try harder to make sure waves against minor factions have ships<br />
** Reported by GreatYng<br />
<br />
* Fixed some minor typos<br />
** Reported by GreatYng<br />
<br />
=== Multiplayer: Sync Correction V0.75 ===<br />
<br />
* New setting in the network tab of personal settings: Network Logging Includes Sync Checks<br />
** During gameplay there are messages sent by the network as frequently as several every 100ms, and these are one of the largest sources of data usage. This lets you see the timing and payload size of those messages, if you think that potentially they are what is slowing things down in a networked environment.<br />
<br />
* Stripped out a lot of old code that was related to an old style of sync (aimed at desync detection), and started building in the new sync framework (aimed at detecting micro desyncs and correcting those).<br />
** Decided to move this to a new AIWar2NetworkSync static class in its own file, as after just getting about a third of the way through this logic, it was clear that it was pretty sizeable and overwhelming the rest of the networking code's readability.<br />
<br />
* Added in the logic for the server keeping a list of ships that the various clients have told it are divergent.<br />
** The server could be getting overlapping reports from several clients, but we need only one copy of this, because we're going to err on the side of caution and tell every client about each bit of sync data that needs fixing.<br />
** We could always change this in the future if there seems to be a bandwidth benefit to this, but it would probably just mean extra processing on the host for more unique sends per-client. At the moment we judge that to be the resource that is more scarce.<br />
<br />
* The logic for removing ships on a client that were not part of the last sync cycle, but also not new during that cycle, has been put in place.<br />
** The idea here is that these ships probably died on the server, and the client didn't know for some reason.<br />
<br />
* The logic for having the server do send check data for 1/20th of its ships (or stacks or whatever, as the case may be), but no more than 9000 per 100ms, is now in place.<br />
** This is the meat of the desync detection code, and it is based around only a very few factors:<br />
*** Health lost, shields lost, extra ships contained within (of ANY fashion), current planet, and current location.<br />
*** We are generally making the assumption that if all of those things match between the client and the host, then the ship is probably in sync.<br />
**** In the case of certain faction ships that do things like gather resources or whatnot, that will obviously be very incorrect, but it is correct for most combat ships.<br />
**** For those cases where faction-specific data is potentially going to be wrong, it would be prohibitively expensive to add a bunch of checks based on that extra faction data, so we will build in separate tools for forcing sync of these non-combat factors.<br />
**** Frankly, other things like fireteam history, which would be missing on the clients, could be synced via other methods later on if we really want to. Though that's generally only used for debugging in most cases, so seems not to be worth doing.<br />
<br />
* The logic for clients checking for mismatches with their local data compared to the server is now in, and it sends back the requests to the server to have divergent units corrected.<br />
<br />
* On PlanetFactions, there is now FactionIndex and PlanetIndex directly in order to make it easier to quickly find those in case they have been reassigned.<br />
** Additionally, their Faction and Planet member variables are now exposed as get-only properties to keep unexpected things from happening there.<br />
<br />
* The way that squads deserialize has been updated substantially to allow for several levels of partial deserialization for various sync scenarios.<br />
** The sync fix code allows for normal-level same-planet sync fixes (which should hopefully look very nice with things sliding visually into new positions if positions differ).<br />
** The sync fix code then also allows for normal-level different-planet sync fixes, which instantly disappears the old spot and puts it somewhere new.<br />
** And finally, the sync fix code allows for catestrophic-level sync fixes, where the two entities aren't even the same (not matching faction or type), and it destroys the old one instantly and as invisibily as possible, and then puts in the new one where it should be.<br />
*** This last category is for basically when the primary key ID generators are out of sync between the host and one or more clients. These will be hit with some regularity, but they should not be hit over and over for the same unit.<br />
<br />
* The deserialization logic for "fleet memberships" has been split in such a way that we can now sync just some of the data into them (for network purposes).<br />
** We are not using this yet, but will once we get into the fleet sync phase of the sync cycle (outlined below).<br />
<br />
* CalculateContentsCount() on squads now takes a required parameter IsForNetworkSyncCheck.<br />
** If that is true, then it ignores any data that is not on the squad (but is usually on the fleet or the "fleet membership" areas.<br />
** This is things like drones or transported ships, and city sockets. These will be something we sync at the fleet level.<br />
<br />
* Network_CurrentSyncCycleNonSer has been moved off of the World_AIW2 object and into the AIWar2NetworkSync class.<br />
** Same with the OnServer_SquadsNeedingSyncFixes dictionary.<br />
<br />
* The server now cycles through a series of "sync stages," where it will sync different things other than just squads.<br />
** This is useful for us to be able to time-slice syncing of data of different sorts... for instance fleets and fleet memberships data.<br />
** We actually are now going to use this for separating out the squad sync checks and the divergent squad fixes, too, since time-slicing that is good for smooth gameplay as well as also making sure that multiple clients with partially bad sync cause as few excess sends as possible (that's a ms timing thing).<br />
*** The code for syncing the squads that were divergent is now in, as noted above.<br />
<br />
* The data for factions, and for some of the Primary Key info, is now synchronized from the host to all of the clients every authorized network batch.<br />
** On average this is probably anywhere from 10kb to maybe 40kb, at most. It's easier just to keep this in sync.<br />
** At the moment, for ExternalData on factions and squads, there is a huge amount of inefficiency on the clients in that it is completely recreating objects every network sync right now. We are looking into various refactoring options.<br />
<br />
* At the moment we are explicitly not syncing SpeedGroups, since those are complicated and may tend to diverge.<br />
** We are probably going to wind up refactoring these to be by faction, or something along those lines. In fact, there are several major refactors coming, and one of those may be that a lot of the PKIDs may become faction-specific in general.<br />
<br />
* Turns out that adding the NetworkSyncStage as a concept was a really good idea, because we not only need to sync squads and fleets, but also planets and some data off the world, too.<br />
** The faction sync is happening once every sync frame, but it's possible we might back off the frequency of some of that if it becomes too harsh. Mainly for ExternalData stuff. But for now we'll see how it does.<br />
<br />
* Planet has now had its data split out like squads and fleet memberships and factions and some other classes to have its own DeserializedIntoSelf() method.<br />
** Also PlanetFaction. Whew, wow. For this it doesn't sync the entities during the partial sync, of course, unlike during disk or main network sync.<br />
<br />
==== "ExternalData" Updates That Affect Mods ====<br />
<br />
* The ExternalData framework has gotten a few updates to allow for us to do partial-syncs like we now do with squads and such, versus always just creating something new.<br />
** Any mods that use ExternalData will need to be updated to use the new pattern, although it's not a huge change.<br />
<br />
* FireteamRequiredTarget has been updated to have a DeserializeNewFrom and DeserializedIntoSelf, to ensure that what we are doing is intentional.<br />
** Since this is a class, not a struct, it's highly efficient for us to be able to write to an existing class rather than always replacing it, even in single-player.<br />
<br />
* The following "external data" has been updated to be dramatically more efficient with syncs during multiplayer, employing a variety of strategies that we're using in the main game stuff:<br />
** WormholeInvasionDataExternal (this one is basic and simple)<br />
** AI_PlannedWave_Data (this one is complex in that it has a list of sub-objects and shows how to handle that properly. It even gets rid of theoretical extras on the client machines)<br />
** DoomData (this is really old style in terms of the data, and is not used actively, but does show a way to handle the multi-part sub-data well).<br />
** ExternalData_AIFactionCommon (this one is ridiculously complicated and used for a couple of factions)<br />
*** ExtragalacticBudget and AIPChange as a part of this, and are good simple examples. These don't even have the new bool passed to their sub-objects, because both the DeserializeNewFrom and DeserializedIntoSelf() methods can both validly be used as part of one during-game sync (depends on relative list length, see code).<br />
*** StoredAIPurchaseCostByBudgetForSpecificUnits is a good example of where it's better to just use a bit of extra GC (especially with the new time-sliced GC unity now has) instead of doing extra CPU processing to be a hair more efficient with that memory.<br />
*** Fireteams themselves have changed from having a constuctor for deserialization to having a DeserializeNewFrom method that makes it a bit more explicit what is happening. We also pulled out the id deserialization so that we could reuse Fireteam objects as much as possible if they are being updated.<br />
** DysonExternalData and DysonAntagonizerExternalData (another two examples of the simplest possible cases for updating a modder might have)<br />
** MacrophageGlobalData, MacrophagePerTeliumExternalData, MacrophagePerSporeExternalData, and MacrophagePerHarvesterExternalData, which are also very simple examples.<br />
** RiskAnalyzerData is even simpler, with no sub-objects to modify.<br />
** AIReservesDataExt is seemingly simple, but is dodging accidentally creating two sparse lookups internally on each sync.<br />
** AstroTrainsGlobalExternalData, AstroTrainsPerDepotExternalData, and AstroTrainsPerTrainExternalData are all pretty straightforward, although we saved ourselves a lookup load on AstroTrainsPerDepotData.<br />
** AutosaveDataExt, even though it's not really even needed on the clients at all. Since it has some sub-data that is in a list, and in string format, we're just not bothering to send that to clients at all during syncs since it is a waste of bandwidth.<br />
** DarkSpireData, which has some complexities with the sub objects DarkSpirePerPlanet. It has special notes in the code for any similar cases with a sparse lookup and sub-objects.<br />
** Two "DZ" items for DLC2, which was wildly complicated to convert compared to most things. It involved sub objects DZResourceConversion, and DZUpgrade, among other nested objects. Mostly it was a good example of just following the existing principles on down, but there is one ConversionBag that was tricky enough that we're just clearing and refilling it in a somewhat GC-wasteful way rather than going into the extra complexity and perhaps incorrectness of doing it another way.<br />
** AntiMinorFactionWaveDataExt, ExoDataExt, and MDCExoDataExt, which thankfully were all trivial examples of the common case.<br />
** ExternalData_GroupTargetSorting, which has nothing formal to save or send.<br />
** InstigatorPerUnitDataExternal and InstigatorDataExternal, which again the simple common case.<br />
** SpawnAnimationData and DespawnAnimationData were very old and probably not used, but simple to upgrade.<br />
** MarauderOutpostRaiderSpawnData is again the simple common case.<br />
** MercenaryUnitExternalData and MercenaryGlobalExternalData, which had some more notable complexity. MercenaryBeaconState upgraded with WorkingHasBeenUpdatedThisDeserializationCycle to handle its situation. MercSpawnRequest just does it the inefficient way since these rarely exist, and only exist for a short period when they do. SingleMercenaryGroupState is a strange bit of data, and gets handled in a novel way. Thankfully MercenaryUnitData was a trivial case.<br />
** ExternalData_FactionCommon is old and strange, but was not too hard to update.<br />
** ExternalData_MinorFactionCommon was super old in its styling, but already was efficient enough.<br />
** NanocaustMgrData, NanocaustPerUnitDataExt, and LastSpawnTimestamp are all extremely simple. The old FrenzyFleet stuff is still kinda-sorta there, but never has data since it is legacy, so that shouldn't cause any GC churn.<br />
** FallenSpireGlobalExternalData and FallenSpirePerUnitExternalData had a few quirks, but mostly were the common case with some minor array clearing and preservation.<br />
** One "NP" item from DLC2 required pretty minimal updates to work with this, hooray.<br />
** ScourgeGlobalExternalData and ScourgePerUnitExternalData were both the common case with a tiny bit of list/dict management.<br />
** Two "ZA" items from DLC2 are mostly the common case but with some collection management added in.<br />
** Two "ZM" items from DLC2 are also mostly the common case with a bit of collection management.<br />
** HRFDataExt and MarauderDataExt both were also mostly the common case with a bit of list management. There is a question mark about the regiments aimed at planets, on this and a few other locations, but they are at worst going to be inappropriately blanked out over and over again on clients in MP, which we can fix later.<br />
<br />
* In general, any of the usages of IArcenExternalDataPatternImplementation in mods should be updated to follow the new examples in the main code. The changes are not severe.<br />
** The most important changes are the ones above, relating to SerializeExternalData() and DeserializeExternalData() taking an extra parameter, and then each handling a graceful DeserializedIntoSelf() sub-method (and choosing if there's some data not to sync across during gameplay if required). But beyond that, there are some more changes:<br />
** RelatedParentTypeName has been removed, as it was never used. Same with GetShouldInitializeOn.<br />
*** During InitializeData, the object ParentObject is being cast into an appropriate-type Parent object for general usage, (aka GameEntity_Squad, Faction, whatever) that people can then later use. If the type is wrong, it will just come across as null, and we have it complaining if that's the case. You can do the same or omit that part if you don't care.<br />
<br />
=== Third Off-By-Default Mod: More Starting Options By ArnaudB ===<br />
<br />
* The More Starting Options mod by ArnaudB is now included with the game by default (with permission), but disabled.<br />
** Requires The Spire Rises expansion (DLC1).<br />
** Pick between seven starting fleets and twenty starting battlestations for your custom games. These choices are balanced for regular play and are acceptable to use for achievements.<br />
** The eight starting fleets will offer you a more varied combination of ships so you may explore more varied combinations of technologies and playstyles than those incentivised by the default options.<br />
** The twenty starting battlestations will let you play and test every of the many turrets brought by The Spire Arise DLC, which are otherwise completely absent from the default starting options. You’ll find multiple combinations for both offensive and defensive playstyles, balanced for your enjoyment and giving you hints as to what synergies you could make with a few turrets or ships.<br />
** This mod is off by default as to avoid paralyzing the player by offering too many choices. <br />
** You can activate this as a new player unsatisfied with the default options, or as a veteran wishing to vary your experience of the game.<br />
<br />
=== Mod: Civilian Industries Updates ===<br />
<br />
* Civilian Industries 0.6.4<br />
** Full update notes may be found on the forums: https://forums.arcengames.com/ai-war-ii-modding/civilian-industries/msg222774/#msg222774<br />
*** A large number of code optimizations, directly mostly at performance and multiplayer readiness.<br />
*** An overall nerf to Mobile Ship counts, but a simplified formula will allow easier future modification.<br />
*** A rework to the Barracks. Now scales with Mark Level, Command Tech, and can even let you get more Protectors at mark 7.<br />
*** Buffs to many Protectors. Balance for them is still being worked on.<br />
*** Resources renamed across the board, and structures now state what technology works for what resource.<br />
*** A notification will now show when a Raid is about to fire against your civilians, thanks to Chris' recent changes on the notifications front.<br />
<br />
== Version 2.130 Redux: Dutch Cities and Softer Eyeballs ==<br />
(Released August 31st, 2020)<br />
<br />
'''We accidentally forgot to increment the version number in game. So this would have been 2.131, but is just called 2.130 in the game. Sorry about that, this is perhaps a first?'''<br />
<br />
* New planet naming style added, with over 4000 names in it: Cities (Dutch)!<br />
** Most Dutch cities, villages, and hamlets shorter than 10 characters; also includes many local spelling variations. Created by GreatYng.<br />
** Thanks to GreatYng for creating!<br />
<br />
* Added a new xml tag, external_invulnerability_unit_required_count, which works with external_invulnerability_unit_type or external_invulnerability_unit_tag.<br />
** This basically lets us say that a unit of whatever sort is still protected by others (such as guard posts), but only if there are more than the number specified.<br />
** The default number is 0, which means the previous behavior of "any guard posts present make this invulnerable."<br />
** For AI Eyes, the number is now 3, which means that if there are not at least 4 guard posts remaining on a planet, you can go kill the eye.<br />
*** This is pretty huge, because you can now kill just part of the planet and then kill the eye before going to kill everything else.<br />
** If we need to make further adjustments to the Eyes based on the relative ratios of strength of them versus enemies, we can do that in the future, but for now this is a solid start.<br />
** Thanks to Lord Of Nothing and CRCGamer for reporting.<br />
<br />
* Further balance adjustment: all AI Eyes are no longer Mark 7 at minimum. They are now Mark 5 at minimum, and if their planet would have a higher mark (6 or 7) then they will instead have those higher marks.<br />
** This should help to make a bit more variance with them, and eyes to be a bit less of a pain in general.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fixed HRF Nucleophilic Defenders as well as other defender types not being loadable into transports. Additionally they now count as Frigates and benefit from their hull/shield/damage settings.<br />
** Thanks to Darkshade for reporting and -NR- SirLimbo for fixing.<br />
<br />
* Fixed a couple of issues relating to getMostCommonPlanetForRegiment() with fire teams, which were likely leading to who knows what other errors.<br />
** The PlanetsForRegiment Dictionary was declared as static, and so all of the regiments were trying to use the same dictionary at once, leading to exceptions as well as probably wrong results. Exactly how much chaos this could have caused is unclear, but with some of the LRP threads stalling out this is certainly not going to help (fingers crossed it was the whole thing).<br />
** Now if getMostCommonPlanetForRegiment() is called again on the same regiment before it finishes, it will throw the error "BUG: called getMostCommonPlanetForRegiment() again for a fireteam regiment before the last call finished. Will break both calls." Hopefully we don't have people getting this, but if we do we need to know about it to fix that. In that case, the workingPlanetsForRegiment dictionary can't work as a member variable at all.<br />
** Additionally, if there's an exception in getMostCommonPlanetForRegiment() it will now throw an exception but then exit more gracefully, letting whatever calling code keep doing its thing.<br />
** Thanks to CRCGamer and TechSY730 for reporting.<br />
<br />
* A few versions back, we made some changes to how the icons are rendered on the galaxy map, including planet icons. We made them keep their orientation better, but one of the things that was an unfortunate side effect of this is that the colliders on the lines between planets were often taking precedence over the actual planet or the ships at the planet. That is now fixed.<br />
** Thanks to TechSY730 and CRCGamer for reporting.<br />
<br />
* Heavily reworked how Journal_TooMuchAIP calculates both how many planets you have paid AIP for, as well as how many planets are neutered. It was triggering the journal entry far too early, previously.<br />
** Please see the code or here for details: https://bugtracker.arcengames.com/view.php?id=23609<br />
** Thanks to Sigma7 for reporting, and Badger for helping figure out what was wrong.<br />
<br />
* Fixed old wording on the AI Eyes that still said "when there are enough fleets present on this planet" to instead read "when it is sufficiently outnumbered on this planet."<br />
<br />
== Version 2.130 Civilian Industries ==<br />
(Released August 29th, 2020)<br />
<br />
* For determining what your performance is like, the game now uses only one second of data instead of ten seconds.<br />
** This makes the sim speed average a lot more responsive and natural-feeling.<br />
<br />
* The "suppress upgrade prompt" setting and keybind now both work on fleet upgrades and not just science tab upgrades.<br />
** There is some extra info in the tooltips and popups to reflect this, as well.<br />
** Thanks to Fritz1776 for suggesting.<br />
<br />
=== Second Off-By-Default Mod: Civilian Industries By StarKelp ===<br />
<br />
* The Civilian Industries mod by StarKelp is now included with the game by default (with permission), but disabled.<br />
** This lets people simply enable the mod by clicking a button in the settings menu, rather than having to find and download the mod from elsewhere.<br />
** StarKelp has been a volunteer contributor to the main codebase off and on for a while, and this mod contains both code and xml.<br />
** Full description of the mod is included in the tooltips in the game, but also here:<br />
*** Every empire is only as strong as the people within.<br />
**** Protect your people, and they will help your empire flourish.<br />
**** From collecting and processing various resource around the galaxy to bolster the economy, to taking up arms on their own to aid your survival, you'll find their help invaluable in the long term.<br />
**** As they flourish, so do you.<br />
*** Adds in the Civilian Industry faction, a potent defensive faction that can be allied to either a player, or a faction team.<br />
**** They will expand alongside their respective ally, and produce a large number of defensive forces to aid their team.<br />
**** They gain a new resource type per planet they expand to, and will work diligently to spread these resources throughout their empire.<br />
*** When allied to the player; you will find your command station and battlestations have access to a few new structures that you can invest in to greatly incresae the power of your civilian economy.<br />
*** Please check Galaxy Settings for many tweaks in regards to how they behave.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fixed a bug in GetIsWithinRangeOf() that could happen in the selection logic (and probably other places) if a background thread marked a unit as deleted as it was doing the range check.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
* It is now possible that your logs will wind up having the message "BUG: overriding speed limit for group X to [a negative number below -1]. Overflow? Setting to -1 instead."<br />
** If this is frequent, it may slow down your game, but the stack traces will let us know where we are going wrong and causing this to happen.<br />
** We fixed one area where MAYBE this could be caused, but probably that was not possible in the place we fixed it. Most likely the problem is in something that is calling GameCommand_CreateSpeedGroup with a command.RelatedIntegers[0] that is greater than the 32767.<br />
*** With that in mind, anything that is larger than that being passed into that method is now automatically corrected down to 32766. This may lead to some turbo speed groups, not sure, but at least they won't be erroring... and that IS what the calling code is asking for, so maybe it's intentional?<br />
** At the same time, in some other places in the code where it was checking to apply the speed only if it was "not -1", it is now checking to apply the speed limit if it is "greater than 0." This seems more like the correct intent, and hopefully won't break anything.<br />
** And beyond that, prior to serialization, any speed groups with an OverrideSpeedLimit less than -1 will automatically just set their value to -1 silently and thus avoid popup errors that could be really annoying in savegames for folks. This has been an issue on and off since July 24th, apparently.<br />
** Thanks to Lord Of Nothing (twice over), TechSY730, GreatYng, and Apthorpe for reporting.<br />
<br />
* Add a new time_must_have_been_on_planet_before_transforming_if_outnumbered_or_outnumbering, for use with transform_when_outnumbered and transform_when_outnumbering.<br />
** This defaults to 0 seconds, which has been the behavior in the past.<br />
** But now for all of the ships (mostly AI Eyes, but also some guardians) that use transform_when_outnumbering, it now has a value of 2.<br />
** For those that use transform_when_outnumbered, it has a much higher value of 30, to keep them from downgrading their alertedness too easily.<br />
** The AI eyes will still switch between alerted and unalerted status every so often in a general battle, since their alerted status increases the balance of battle in their favor so much, but now it won't be a constant thing and ships can continue targeting them in a reasonable fashion.<br />
** Thanks to whakomatic, Ovalcircle, MasterGeese, Gdrk, and GreatYng for reporting.<br />
<br />
* Additionally, previously anything that was transforming via one of those two methods was having its health and shields and cloaking points all reset to full.<br />
** Now, however, when transformed via these two cases ONLY, it keeps the health and shields and cloaking point losses after transformation.<br />
** This makes it so that battles with AI eyes are actually something you can win, even as they cycle back and forth between statuses. And in general this just makes sense, and is important on the dire guardians that use this same sort of mechanic, too.<br />
** Thanks to whakomatic, Ovalcircle, MasterGeese, Gdrk, and GreatYng for reporting.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* GameCommandTypes are now serialized by index rather than name, which chops off the vast bulk of size from most GameCommands, leading to even snappier networking.<br />
** Honestly this is a very small boost in most cases, but this also took like two minutes to add.<br />
<br />
* The network traffic logs have all been updated to be able to actually report how many bytes were read in for each message that the host or clients receives. Before it was saying ?? because we were checking prior to doing the reading.<br />
** Note that depending on the networking platform in use, there is sometimes extra buffer data that was read from the socket, but if it wasn't part of the game, we just ignore all that. This is also ignoring packet header sizes, so we're just talking payloads here (but that's consistent with the send records, too.<br />
<br />
* In the escape menu, on clients and the host, it now has a new Multiplayer Stats section when you are in multiplayer mode only.<br />
** At the moment, this shows how many messages have been sent or received in total, and how many bytes/kb/mb have been sent.<br />
*** These all apply to the current session only. So if you are the host, it is the stats since you loaded up the server and people started connecting. If clients come and go, it's including all of that. If you're the client, it's the amount since the last time you connected; if you disconnect and then come back, it starts over.<br />
** This is pretty important information in terms of figuring out just how much data is actually being sent back and forth, and how it changes during gameplay, so that we can react to any unexpected spikes if there are any.<br />
<br />
== Version 2.129 No Shrooms For Ships==<br />
(Released August 28th, 2020)<br />
<br />
* Nanocaust now prioritize holding planets adjacent to their homeworld<br />
** Thanks to crawlers for reporting<br />
<br />
* The nanocaust units now prefer to spawn a bit further from their centers; it looked kinda weird when a giant Nanocaust ship would spawn right on top of a nanobot center.<br />
<br />
* Added a lot of extra instrumentation to the deserialization and serialization of factions, since there seems to be some sort of error in there with savegames from specific versions.<br />
** Essentially with this sort of thing on, we can now manually look through the deserialization log and see if we notice where field data stops making sense. It was obvious that it was getting something like "I am hostile to 20 thousand factions," which is nonsense data, but it was not clear where the data was going wrong prior to that.<br />
** From this, we could then see that most of the data reads in the player faction seemed reasonable, but the faction right after them was immediately messed up. This is after a lengthy code review turned up nothing wrong, so it's always possible that it's some sort of edge case that has been around for longer than we thought.<br />
** Added in code to make it so that if an exception is thrown while deserializing a faction, we will now repeat that error better and stop doing further deserialization attempts. It turns out that was what was happening, and a more careful reading of the log could have saved about an hour and a half of work (oh well, things in the future will be easier to debug).<br />
** Thanks to Lord Of Nothing for a very challenging save that led to these changes.<br />
<br />
* Fixed an issue with some savegames that had hacked dyson or dark spire ships, where the HackToGrantShipLine_DontDestroyTarget hack had been removed and split into several versions a few versions back.<br />
** We now have added HackToGrantShipLine_DontDestroyTarget back in, in a deprecated fashion, so that old savegames with this data in it can load.<br />
** Thanks to Lord Of Nothing for the save that let us find this.<br />
<br />
* Fixed a bug in the prior build where the "flair" overlays for ships in the main view were either black (some machines) or a rotating color set of insanity (others).<br />
** One line was accidentally omitted in the new build of the shader that we made.<br />
** We also updated some calling code to the shader in a way that is harmless but not actually needed for this fix.<br />
** Thanks to Strategic Sage, Isiel, CRCGamer, and TechSY730 for reporting.<br />
<br />
* The "Icons Disappear When Camera Lower Than" setting in the main camera window has been updated as follows to have this note<br />
** Note: this setting does nothing (icons always draw) if you have 'Skip Drawing Ship Models' turned on in the Performance section.<br />
** (Also, this is how it actually now works).<br />
<br />
* If a player is already on a planet viewing that planet, and a further command was sent to view that planet again (as if they were not already there), then funky stuff happened in various places, including the wormholes getting half-initialized and not drawing properly in scale.<br />
** To solve this, it simply doesn't do anything if you try to re-open your view to the existing planet you are already on.<br />
** Thanks to StarKelp for reporting.<br />
<br />
== Version 2.128 Don't Lie About Distant Future Waves, AI ==<br />
(Released August 27th, 2020)<br />
<br />
* Fix a bug where the scourge would sometimes suicide into multiple layers of defensive planets in the (foolish) hope of hitting the weak target on the other side.<br />
** This is an intelligence improvement for all factions using fireteams (Hunter, Warden, Nanocaust, Scourge, etc etc).<br />
** Thanks to Crawlers for reporting<br />
<br />
* Add some defensive code to the Fallen Spire.<br />
<br />
* Put in extra logging for the SpeedGroup serialization and deserialization, to figure out where there are occasional exceptions being logged.<br />
** Thanks to TechSY730 for reporting.<br />
<br />
* Sniper Energy Wave on the Dark Spire Eidolon has been renamed to just be Energy Wave, since this is not an infinite-range weapon.<br />
** Thanks to crawlers for reporting.<br />
<br />
* DoForKnownWavesAgainstHumanHomeworlds in WaveUtils has been renamed to DoForKnownWavesAgainstHumanWorlds, which is what is accurate.<br />
<br />
* A whole bunch of extra array indexing calls into QueuedWaves have been made more efficient in the AI HandleWavesForAI() method.<br />
<br />
=== Interface Improvements ===<br />
<br />
* The planet's tooltip has been updated to show the owner on the same line as the planet name, but positioned way over to the right.<br />
** This keeps things pretty condensed, but avoids some clashes of words where it seemed to be saying something like "Permanently Watched Owner:" as one phrase.<br />
<br />
* Previously, there was a chat message going out as soon as a wave was queued, but before it would become visible to the player in the actual interface (based on their chosen galaxy map settings for how much warning to get).<br />
** Now it only shows the actual chat message from the AI as the wave is being revealed to players.<br />
** This also fixes an issue where it was for some reason actually giving the wrong planet name that it was going to attack in some cases, since the announcement came before it finished changing its mind about the real target it wanted to hit.<br />
*** This latter one may have been more common in multiplayer, but it's hard to be sure. At any rate, it just tells you real information now.<br />
<br />
* The second chat message that goes out (with the audio taunt) when waves are launched now also happens when they are revealed, and no longer duplicates when in multiplayer mode.<br />
<br />
=== Mod Compatibility Improvements ===<br />
<br />
* There is a new DoPerSecondNonSimNotificationUpdates_OnBackgroundNonSimThread_NonBlocking() method that gets called on each faction each frame, and which takes in a note which says if it is the first faction of its type this frame or not.<br />
** This lets us move notifications for factions into their own files, which makes notifications modding-compatible.<br />
** There are some other supporting methods that have been added to handle this, but understanding them is not required for using this,.<br />
** It is worth noting that ALL of the existing DoPerSecondNonSimNotificationUpdates_OnBackgroundNonSimThread_NonBlocking() calls do happen in a loop prior to the new DoPerSecondNonSimNotificationUpdates_OnBackgroundNonSimThread_NonBlocking() being called.<br />
** As an interesting side effect, this actually makes it so that notifications will now work for people in spectator mode in multiplayer for the first time.<br />
** The nanocaust data has been moved out of the human file as an example of how to do the others.<br />
*** Same for antagonized dyson spheres, and the dark spire. It would be great to get the other factions moved over to their own files for the sake of cleanliness, but functionally there will be no difference for our things in the main game and expansions now.<br />
** Thanks to StarKelp for requesting the ability to add notifications in mods.<br />
<br />
* Added a new method DoPerSecondLogic_Stage0Clearing_OnMainThreadAndPartOfSim_OncePerFactionTypeEvenForFactionsNotInGame().<br />
** This is called on the GetDefaultImplementationForLobbyOrClearingOnly() from the faction TYPES, which means it happens even for the factions not in a game. Great and easy place to clean up, and we know it happens only once per cycle per faction type, and we also know that it happens even if a faction is not in the current campaign.<br />
** This is useful for factions that had some data in a prior campaign, but the player loaded a new savegame and they are not in this one.<br />
** All of the various data from these that was previously in the Human class and in DoPerSecondLogic_Stage1Clearing_OnMainThreadAndPartOfSim() has been moved to the new stage0 for each of the specific class types, which again is more mod-friendly and should prevent the issue of certain mods being unable to clean themselves up between campaign loads.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* When the host is waiting on a client that is behind, it now shows a message saying which clients are behind and being waited on.<br />
<br />
==== Bugfixing ====<br />
<br />
* The galaxy map spacebox background is no longer serialized into savegames. Instead it is deterministically calculated based on the map seed.<br />
** This makes very little difference for single player, although you will notice that reloading the game or going back and forth to the map, or hitting regenerate map on the lobby no longer changes the space background.<br />
** But for multiplayer, this keeps things consistent between all players.<br />
** For existing savegames, you will notice that the spaceboxes become something new and stay that.<br />
<br />
* It turns out that the planet spaceboxes were not being serialized at all in savegames before, but their rotations were.<br />
** This was leading to very different planet background views in multiplayer, to a very distracting degree.<br />
** This has been made deterministic, and we no longer store even the rotations in savegames.<br />
** For single player there is no real change except that the savegames are a tiny bit smaller.<br />
** For existing savegames, you will notice that the spaceboxes become something new and stay that.<br />
<br />
* Fixed inconsistent sorting between runs of the game (and between differnt clients) for rows in the following tables:<br />
** AIGuardPostAndCommandPlacerTable, FleetDesignTemplateTable, AIShipGroupCategoryTable, and SpaceboxDefinitionTable.<br />
** These led to various MP inconsistencies, including the spaceboxes still being divergent on planets despite the math lining up.<br />
<br />
* Fixed an issue where the home planets of other players in multiplayer games just looked like normal planets instead of homeworlds.<br />
<br />
* There were a bunch of cases where human factions were still named wrong during multiplayer (and differently on the host and client), saying the wrong player's name or Unknown Player in various cases. Fixed all of those.<br />
** Additionally, in the case of multiple players owning a faction, if they did not choose an empire name, it now says all of their names together (but no more than three) as the faction name.<br />
** If there are more than three players controlling a single faction, that gets too wordy, so it just says "and X more".<br />
** When loading the single player games of other players, you will now see their chosen account names (from in AI War 2, not Steam or whatever) instead of your personal profile name.<br />
<br />
==== Seeing Where Other Players (Or Spectators) Are Looking ====<br />
<br />
* The way that the gimbal icons decide which diffuse color to use is now more efficient on the GPU (this is minor, but hey).<br />
<br />
* It is now possible to have a secondary diffuse color for the flair (really used for selection circles now), which is multiplied by the main "other diffuse color" of the icon.<br />
** This lets us do things like change the opacity or color of the selection ring around a ship or planet.<br />
<br />
* When you are viewing a planet, the game's way of showing the selection circle around it is the same as it always has been.<br />
** However, when someone else in multiplayer is viewing a planet other than the one you are viewing, it now shows a dimmer and more-transparent selection circle to show you that someone else is looking there.<br />
** If someone else is looking at the same planet you are looking at, then it will show the normal bright selection circle in a faint green rather than white.<br />
** This is something that is deceptively important, because we need to make sure that we know which planets are "tier 1" planets on clients and the host, which lets us verify that ViewedByPlayerAccounts_DuringGame is being set properly on all machines (it is). This keeps the game in the sync, which we can now tell is working properly.<br />
** But also this is just a helpful indicator for players to help with coordination. ("Check out this planet I am looking at in the northeast" is so much easier to say than trying to direct them to a name).<br />
<br />
* As an added help, in the galaxy map view when you hover over a planet, it tells you which other players are viewing a planet. This may be players in exclusive control of a faction, or one of several player players controlling a faction, or just a spectator, so it shows you their name as it would appear in chat.<br />
** For games with more than two players, this is fairly important for purposes of clarity. In a two player game it's easier to just infer what is going on.<br />
<br />
* When a client is disconnected, other clients and the host can still see what planet that client WAS looking at, and that planet still counts as a Tier 1 planet for processing, but hovering over it will show the name of the player with (Disconnected) behind it on the host.<br />
** Presently clients cannot see the status of other clients.<br />
<br />
==== Disconnection And Re-connection Verified ====<br />
<br />
* We can now verify that after a client disconnects in a disorderly way, the host notices a bit later and then continues on without them (they can choose to pause or not).<br />
** We can FURTHER verify that the client can reconnect to that running game with only a few-seconds interruption to other players who are still going. Even if the client had crashed and had to restart the game or their computer, they are able to get right back in there.<br />
** The original AI War did not remotely have any of these capabilities, but this works on all three networking platforms.<br />
<br />
== 2.127 Cranky AI Exceptions ==<br />
(Released August 26th, 2020)<br />
<br />
'''This was originally released as a beta on the 26th, but then changed to a main branch release on the morning of the 27th.'''<br />
<br />
* The Dark Spire now responds properly to being hacked by being cranky<br />
** Thanks to crawlers for the bug report<br />
<br />
* Fix a bug where the AI was incorrectly combining some Hostile To All factions when spawning extragalactic war units.<br />
** This was leading to more extragalactic war units than one would want.<br />
<br />
=== Exception Fixes ===<br />
<br />
* Added new debugging instrumentation into ImportIntoDynamicTable_XMLDirectory, so that we can find errors that may happen in there from time to time on some machines.<br />
** Also put in some code that should make it load faster for mods and expansions that don't have certain folders.<br />
** Thanks to Ovalcircle for the report of something mysterious in this area on his system.<br />
<br />
* Also expanded the debugging instrumentation on ReadXmlFileIntoBatchProcessingLists, same reason.<br />
** Ditto DoForXmlFolders.<br />
** And finally, ditto ActuallyImportAllOfTheBatchedRows.<br />
** Thanks to Ovalcircle for the report of something mysterious in this area on his system.<br />
<br />
* ArcenXMLElement.GetNewFor has had its debugging instrumentation greatly expanded, and also has been split into one version that expects a data table, and a new GetNewForNonTable variant that does not expect a table.<br />
** The idea here is to catch various forms of errors early.<br />
** This in turn caused a cascade of other changes to other methods needing variants of each other along these same lines, and having better instrumentation.<br />
** Thanks to Ovalcircle for the report of something mysterious in this area on his system.<br />
<br />
* Fixed another rare race condition that could happen with the vis code, this time in SetFormationPositionFromSquad.<br />
** Thanks to NRSirLimbo for reporting.<br />
<br />
* If for whatever reason the game was not able to proeprly write your settings data, it was still overwriting your settings file previously. It will no longer do that.<br />
** Additionally, a lot of extra instrumentation has been put into GameSettting.SerializeGraphicsTo and GameSettting.SerializeTo, so that we will know better what is wrong if it is trying to save improperly. These should also be more resistant to saving incorrectly in the first place.<br />
** Thanks to Isiel for reporting.<br />
<br />
* If a savegame has somehow been made that has a blank savegame in it, then it will try to load it with the info of the current version of the game, with a warning in the log that this may fail very badly.<br />
** Thanks to Isiel for reporting, and providing a save that was probably made while the game was in an invalid state.<br />
<br />
* Fixed a case where trying to load certain saves could fail silently as far as the interface was concerned. Now it actually shows you a proper error message.<br />
** And then fixed a whole bunch of cases where certain code paths on almost-certainly-broken saves would return very genric and unhelpful errors when you tried to load them.<br />
** This doesn't really help us actually load the savegames in question, but tells us more about what is wrong with them.<br />
** Thanks to Isiel for reporting, and providing a save that was probably made while the game was in an invalid state.<br />
<br />
* Suppressed a harmless popup that could happen in ReactToShotHittingSquad during cross-thread race conditions. Now it just fixes the data and moves on.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
== Beta 2.126 Dark Spire, Eyes, and Fixes ==<br />
(Released August 22nd, 2020)<br />
<br />
'''To play this version, please be sure to choose the current_beta branch on Steam. The central game loop changes we made in the prior version did not blow up, but a few other things did, so we're glad we went the beta route. If for some reason this beta has problems but the prior one worked for you, we have temporarily made the most_recent_stable_beta active and pointing to 2.124. But this version should actually be more stable (knock on wood). We'll be back out of beta by mid-week the week of the 23rd.'''<br />
<br />
* Fix a bug with DS Conquest VGs and the new hack<br />
** Thanks to gigastar for reporting<br />
<br />
* Fix a bug with the Full Metal notification<br />
** Thanks to a screenshot from Oval for making me aware of this<br />
<br />
* The AI should now attempt to play voice lines for Exogalactic Strikeforces, and when you spot the Nanocaust.<br />
<br />
* The DS is no longer allowed to spawn Loci on planets with Dark Spire Wards<br />
** Thanks to crawlers for reporting<br />
<br />
* Make the Dark Spire more aggressive about spawning Loci<br />
** Thanks to crawlers for suggesting<br />
<br />
* The player can now choose the starting armory for player-allied scourge<br />
** Thanks to crawlers for suggesting<br />
<br />
* Improve the hovertext for some scourge units just a bit.<br />
<br />
* Fix a bug where new games in the beta weren't starting correctly<br />
** Thanks to Keith and Tynendir for reporting<br />
<br />
* Capturing an AI homeworld no longer generates AIP. This only applies to games creates on 2.125 or above.<br />
** Thanks to GreatYng for suggesting<br />
<br />
* AI Eyes now trigger based on whether you have more Strength on a planet, not off the number of fleets<br />
** This is not necessarily the final state for Eyes, but having them trigger off of 'number of fleets' didn't make any sense anymore. This is a functional stopgap until someone has a better idea<br />
** Thanks to a number of people for discussing, including Flypaste, Asteroid, Democracy, GreatYng and others<br />
<br />
* Fixed typo in multiplayer message.<br />
** Thanks to fwiffoforce for reporting.<br />
<br />
== Beta 2.124 HRF Pacekeeping ==<br />
(Released August 18th, 2020)<br />
<br />
'''To play this version, please be sure to choose the current_beta branch on Steam. If this isn't blowing up in major ways, we'll move it back to the main branch within a few days. If it is blowing up a lot, then it may be into next week before we come back from beta. We changed too many fundamental things with the game loop to just release this with no beta, even though we were careful.'''<br />
<br />
* Minor rework to minor faction hacks. Its now more expensive (in line with the previous hacks). The description no longer mentions an AI response. The DS and Dyson units are now upgradable, but not very much. These are intended to be 'cool little tidbits' but nothing to really swing the game<br />
** Thanks to GreatYng and Lord of Nothing for bug reports and comments<br />
<br />
* Add a 'Full Metal' indicator in the metal bar<br />
** Thanks to Nyarlathotep. Iä! Shub-Niggurath!<br />
<br />
* The hovertext prompt that describes when swapping ship lines will scrap your units has been modified to describe the current behaviour correctly ("Your ships are scrapped if they are loaded, or the flagships are on different planets"). <br />
** Thanks to StrategicSage and Ubifan for reporting<br />
<br />
=== HRF Changes ===<br />
<br />
* The HRF ships now have some unique names.<br />
<br />
* The HRF now create a structure at game start time that you can hack for a new ship line (using the backported DLC2 tech) and for 1K science<br />
<br />
* Fix a longstanding bug where the Human Resistance Fighters would only say their 'defeat' voice lines, not their 'victory' voice lines.<br />
** Thanks to Nyarlathotep. Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn.<br />
<br />
* The HRF should now pack a bigger punch when they arrive, but they are a bit less likely to show up.<br />
<br />
=== Bugfixes And Tweaks ===<br />
<br />
* Some minor improvements to the ability of vulnerable Vengeance Generators to be killed<br />
** Hopefully this helps. Thanks to Lord of Nothing for reporting, and Puffin for suggesting the improvements<br />
<br />
* Better enforce the 'can't repair ImmuneToRepairs' unit interactions. Still a bit weird.<br />
** Thanks to MasterGeese for reporting<br />
<br />
* SerializeByInternalName and SerializeByIndex both now accept FieldName as an optional parameter so that we can see what is happening within them from a serialization logging standpoint.<br />
<br />
* A bunch of extra serialization logging has been added into the world and the faction configuration objects, to make finding errors there easier.<br />
** However, it turns out that there were no public errors on this, just an error in a working copy on one developer machine that had a save from between two updates from that same developer.<br />
<br />
=== Milestone: Multiplayer Pacekeeping Functional ===<br />
<br />
* In the event of a campaign switching which player is the host (this probably means one player manually emailing the game to another), the game now tries to do a better job of handling that.<br />
** In the end this should work fine, but we haven't bothered testing this yet as this is probably kind of an edge case compared to most other things we're working on right now.<br />
<br />
* All of the "frame number" information for sim frames is now just serialized on the network and never to disk.<br />
** This information is really only useful within a single run of a campaign (aka after loading it off disk and playing until you exit to the main menu or the OS).<br />
** Even if you go just back to the main menu and load back into the game directly after, there's no reason not to start those numbers off fresh again.<br />
** We've thus switched to a number format for serializing these that will "only" allow for 160 hours of continuous realtime play in a given campaign, without exits to the main menu. This is the definition of excessive, and could always be changed in the future if it was needed.<br />
<br />
* A variety of variables that really are only for the network, and serialized but not to disk, now have the prefix Network_ so that we can tell those apart with ease.<br />
<br />
* In multiplayer, the basics of "host waiting for clients to catch up" is now in place. This prevents the strange lag that clients were seeing, which was happening because they were back in time.<br />
** However, also in multiplayer, unlike the original AI War, it will not definitely wait around for players who are missing. If those players are not connected, then you can unpause and play without them until they arrive. Only once they are present do you have to wait for them to sync up.<br />
*** If this latter choice turns out to be problematic for some reason, we can always add a toggle for that or change it. But it seems friendly. Chris remembers nights where 1 person out of 4 player game couldn't make it, so just keeping on playing without them would have been so nice versus having to go in and change the status of their account before playing.<br />
<br />
* Various of our "simulation profile" variables that were set a loooong time ago in a different way for multiplayer and single player were making multi-player feel sluggish. We've tightened up this some in order to feel better under a pretty general set of networking conditions.<br />
** We may need to revisit this in the future (during alpha or beta) to make these things that people can configure if they are in a situation of, for instance, high packet loss or extremely high or low pings, to get the best possible experience at any given time.<br />
<br />
* Various other changes have been made in order to make the client send over commands to the host as soon as possible, and then to make sure that the host causes those commadns to be executed on the FIRST simulation frame of the next batch, not the last frame of that next batch.<br />
** All in all, the game now stays in time sync, across Valve's server relays and back, and things are snappy and responsive on both the client and the host. There are moments of delay that cause a brief "waiting" message to flash up for maybe a quarter of a second every so often, but it's really a minor thing and is something that we can improve with tuning in the future.<br />
** The overall functionality is there to the point that if background threads and floating point math were not knocking things out of sync, this would be a perfectly playable alpha. As it stands, it's quite playable for a few minutes at a time, at least on Chris's two test machines, without things becoming noticeably off.<br />
** It's also worth noting that the simulation speed on the host shows up as being something like 80% right after starting the game, which is misleading because it had one very long frame where it was waiting on the client to connect and sync up. That will be fixed in the future, but it self-resolves the visual artifact within something like 20 seconds of starting, anyhow.<br />
<br />
== Version 2.122 Empire Names ==<br />
(Released August 17th, 2020)<br />
<br />
* *Makeshift Drones now once again self-destruct when attacking instead of only self-attritioning slowly.<br />
** Thanks to NR SirLimbo for fixing.<br />
<br />
* The lobby now once again allows for you to zoom in and pan around, since some maps can be larger than you can comfortably see on a single screen.<br />
** However, every time you generate a new map, it will default to showing you the entire map completely zoomed out.<br />
** It also no longer EVER allows edge-panning in the lobby, as just general usage of the lobby will wind up with you accidentally panning the lobby around if that is in place.<br />
** Thanks to CRCGamer for confirming our suspicion that we'd need to do this.<br />
<br />
* Fixed ANOTHER bug with the lines being offset from the planets in the galaxy map, this time when you were zoomed in. The more zoomed in you were, the more off they got.<br />
** This bug was caused by our latest fix to the lines being off when you were zoomed out. Now it should work at all zoom levels. This was an annoying one, to be sure, but we're glad to have it finally lining up all the time.<br />
<br />
* Fix a bug where player-allied scourge weren't building properly<br />
<br />
=== Multiplayer Progress ===<br />
<br />
* Added a new Human Empire Name setting on player factions:<br />
** If left blank, will be the name of the first player controlling this faction. If you want your empire to have a different name than your personal name, you can do that here. If multiple players are sharing a faction, then they can give it a name that represents their shared interest in it.<br />
** This can be edited during the game (like player colors can be), or in the lobby.<br />
<br />
* When a new player joins as a client to a game, it now creates a slot for them and puts them in charge of it instead of them defaulting to spectator mode.<br />
** It assigns their colors properly, and all of that sort of thing, too.<br />
<br />
* Player accounts beyond the first are now removable, which lets players go back into spectator mode, or (later) control a single faction via multiple players helping.<br />
** This makes the default case (everybody has their own faction) set itself up by default, but then lets players back things out into the less-usual cases (shared factions, spectator mode, etc).<br />
<br />
* Players beyond the first are now auto-assigned a starting planet somewhat at random, letting them choose something on their own later.<br />
** A whole lot of logic that was very not-MP-safe is now MP-safe.<br />
<br />
* When loading a savegame or quickstart into the lobby, or loading the last settings for the lobby, it strips out all human players beyond the first.<br />
** This is consistent with it then recreating player accounts as those come in, too.<br />
<br />
== Version 2.121 Savegame Hotfix ==<br />
(Released August 17th, 2020)<br />
<br />
* Fixed a deserialization bug in the prior version that made any games saved with a dyson sphere in them not able to be loaded if they were saved in the prior version.<br />
** The nature of the issue was such that those savegames will now load without issue, thankfully.<br />
** Thanks to Lord Of Nothing, CRCGamer, fatcat__25, GreatYng, Djri123, Djri123, mekolab, and goz for reporting.<br />
<br />
== Version 2.120 Improved Lobby Map Experience ==<br />
(Released August 14th, 2020)<br />
<br />
* Fix a bug where sometimes the AI's ships wouldn't be allowed to retreat<br />
** Thanks to Sigma7 for reporting<br />
<br />
* Hopefully fixed a problem where sometimes allied scourge could kill AI Command Stations immediately after a game load<br />
** Thanks to GreatYng and ZeusAlmighty for reporting<br />
<br />
* Fix a typo with the Spire and Marauder Beacons<br />
** Thanks to Apthorpe and Ovalcircle for reporting<br />
<br />
* Fix a bug where hovering the Hacking resource bar entry would give a negative number during the superterminal hack<br />
** Thanks to GreatYng for reporting<br />
<br />
* Improve the Hacking Resource bar hovertext for the case where you have multiple hackers. Note it still doesn't show hacks against planets.<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* The MDC hovertext no longer mentions Exos<br />
** Thanks to Strategic Sage for reporting<br />
<br />
* Exogalactic Strikeforce speed updates:<br />
** Previously, Exos had travelled at 1800 speed (as of a few patches ago. Before that they didn't have a consistent speed).<br />
** Now Exos travel at "Average speed of their units + 20%" or "800", whichever is higher. This should feel less like they are speed-racing to your homeworld. For speed-context, 800 is the speed of a Parasite.<br />
*** Thanks to GreatYng and Lord of Nothing for discussion<br />
<br />
* Fix a typo in the hovertext for larger numbers of planets <br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Remove a mention of Fleet Exp in a tooltip<br />
** Thanks to Lord of Nothing for reporting.<br />
<br />
* Take safest path through galaxy now uses the modifier key alt, while take shortest path now uses the hotkey ctrl.<br />
** The prior hotkeys of X any Y conflicted with other functions and changed your unit stances or sidebar status, etc.<br />
** Thanks to Sigma7 for reporting.<br />
<br />
=== Ability To Reset Camera View To Default ===<br />
<br />
* New hotkey in the camera section: Reset Camera Rotation And Tilt<br />
** Default ctrl+R.<br />
** Press this button combo to reset the camera's rotation and tilt to the default values.<br />
** Thanks to dv, Ovalcircle, Bobtree, and many others for requesting.<br />
<br />
=== DLC2 Backports ===<br />
<br />
* The Dyson Sphere Golem can now be hacked like an ARS for one of a small selection of Dyson ships. You only can use this hack once.<br />
<br />
* The Dark Spire Vengeance Generators can now be hacked like an ARS as well<br />
<br />
* This is a backport of a DLC2 feature that allows for a minor faction to have a structure which can be hacked like an ARS for unique ships. This is usable by modders with only some XML. <br />
<br />
* Approximate usage: in the minor faction GameEntity XML, for the ARS-equivalent, set the following<br />
** Assign it the HackForShipType tag<br />
** Make it eligible for the HackToGrantShipLine_DontDestroyTarget or HackToGrantShipLine hacks<br />
** Then add the following additional fields<br />
*** grants_stuff_to_be_added_to_player_fleets="true" <br />
*** grants_stuff_to_be_added_to_player_fleets_strikecraft_options="X" <br />
*** grants_stuff_to_be_added_to_player_fleets_frigate_options="Y" <br />
<br />
* Then for the ships you want to have available, set one of these<br />
** <fleet_membership name="AddedToFleet_MinorFaction" ship_cap_group="Strike" weight="100" min="30" max="35" faction="factionName"/> <br />
** <fleet_membership name="AddedToFleet_MinorFaction" ship_cap_group="Frigate" weight="100" min="1" max="1" faction="factionName"/><br />
*** Note the FactionName in the fleet_membership must match the name of the faction (I believe it checks the TracingName for the faction, which is set in C#)<br />
<br />
=== Dark Spire Improvements ===<br />
<br />
* There's now a preliminary Journal Entry for the Dark Spire when you first see them.<br />
<br />
* There's now a Journal Entry for when the Dark Spire enter conquest mode (ie from the Fallen Spire campaign).<br />
** This explains what Conquest Mode is, and it's much harder to miss.<br />
<br />
* The tooltip for the Locus now prints different text in Conquest Mode.<br />
<br />
* Thanks to crawlers for the bug report that prompted these enhancements<br />
<br />
=== Galaxy Map And Camera Display Work, Lobby Map Overhaul ===<br />
<br />
* The galaxy object now has a a FindSpatialCenterOfGalaxyInGalaxyCoordinates() method, which lets us find the center point of the galaxy based on however the planets were seeded.<br />
** Also added FindSpatialBoundariesOfGalaxyInGalaxyCoordinates() to let us find the overall bounds easily.<br />
** But actually we're going to not bother using this, turns out.<br />
<br />
* We were also working on a CenterGalaxyOnAllPlanets() method, but we've abandoned that for a different approach. The code is mostly complete and left in for now so that we can revisit it if we find a use for it.<br />
<br />
* The old-style cameras have been disabled for a long time (years) in xml, but we've now removed them from the code as well.<br />
<br />
* Added extensions GetWorldSpaceBottomLeftCorner and GetWorldSpaceTopRightCorner for UI RectTransforms.<br />
** The chat window in the right hand side of the lobby in multiplayer now uses this and a world space to camera transform to calculate its ScreenSpaceLeft, which lets us, regardless of your screen resolution, DPI, aspect ratio, or custom settings in this game itself, figure out where the UI ends and avoid underlappig it.<br />
** Same thing with a ScreenSpaceRight on the map tab left sidebar.<br />
** Same with ScreenSpaceTop on the footer controls, and ScreenSpaceBottom on the header controls.<br />
<br />
* For the galaxy map camera, the zoom now lets you go out farther in the lobby, and even farther in the multi-player lobby, so that it can always fit the map entirely in the main view screen.<br />
** Tested this with the game at 900px wide, 1800px wide, and 2560 pixels wide. In all cases we now come out with a consistent result.<br />
<br />
* Fixed up a bit of logic for the dynamic zoom for resolutions smaller than 1200px x 900px.<br />
<br />
* In the lobby, the galaxy map camera no longer responds to mouse or keyboard input at all. This is an overhaul that has been requested for years and years.<br />
** Now the lobby always has the map as zoomed out as it can.<br />
** It is also centered in whatever the available space is (depending on if the right-hand sidebar is there or not, that may or may not be centered on the actual screen).<br />
** This is extraordinarily useful, in that it lets you cycle through maps with ease, and there is typically not too much detail that you need to see in them like you would during an actual game.<br />
<br />
* The math for how much the galaxy camera should be able to zoom out has been entirely re-coded from scratch, and is now vastly more efficient as well as something we can actually follow.<br />
** Instead of taking something like a thousand loops to get a kinda-bad answer, it now takes typically under 60 loops (often under 20) to get a highly accurate answer.<br />
<br />
* In the galaxy map display calculations, and number of strange magic numbers were removed, now that we have the proper math in here. Wow this was unexpectedly hard.<br />
<br />
* At very long distance zooms, the planets were STILL being visually offset from their lines that they were above, it turns out.<br />
** This had to do with how we were offsetting the icons in order to avoid z-fighting, and how that was getting magnified by us scaling up the planets at further zoom distances.<br />
** The fix for this might introduced some z fighting, but probably will not because of the way that we are rendering these as "cutout" style transparency, and with GPU instancing determining the order of draw.<br />
<br />
* In the lobby, the planet you own is no longer ringed in white selection, as the in-game "planet you are on" is done. Now it just shows the planet color, plain and simple.<br />
<br />
* In the lobby, if you have the setting "always show planet names" on, it still won't do that, because that will make the fixed-size galaxy map potentially impossible to read.<br />
<br />
* The galaxy map in general shows planet names that are un-owned as being far less blinding white in their text.<br />
<br />
* In the lobby, it no longer shows the first owning player name under the name of the planet.<br />
<br />
* The visual scale of the actual planet spheres in the lobby is now about a two thirds what it previously was, but the text is almost as large as it was before. If the text is too small, we can adjust it up.<br />
<br />
* In the lobby, hovering over a galaxy map link no longer highlights the two planets adjacent to it, since that is visually confusing in that context only.<br />
<br />
* Added ShowTooltipNarrow() and ShowTooltipWide() to the IPresentationLayer and IBattlefieldHandler, so that we can trigger tooltips super-directly from deeper-in code.<br />
<br />
* In the lobby, hovering over planets now makes it show a tooltip at the mouse cursor that says the name of the planet (since that might be obscured by being very near the top of the screen, now), but also some other information.<br />
** It says how many wormholes there are, and gives a comment if that will be extra hard to defend.<br />
** It also shows the name of any human players who are going to have that as their starting planet, in their appropriate colors based on their faction color.<br />
** There was some funky stuff in the hover logic for the galaxy map that made this super difficult.<br />
<br />
* Fixed a funky bug relating to tooltips that were showing the same text as before, but had themselves cleared and then wouldn't keep showing the text anymore until it was given different text.<br />
** The first time this ever manifested was in giving tooltips on the lobby galaxy map, but it's an old old bug.<br />
<br />
* Fixed an issue in the lobby where it was not showing the names of planets automatically for planets owned by players other than yourself.<br />
<br />
* The map types list in the lobby has always been kind of randomly organized, which was annoying. More recently, it has been in a different order every time you start the game.<br />
** Now it is in the order Realistic, Simple, and then all the others alphabetically.<br />
<br />
* Fixed a bug when loading directly into the game and not visiting the lobby where it did not set the dynamic zoom properly in the last few internal builds.<br />
<br />
* Also fixed a boneheaded typo in the very most recent internal versions that was making the height of the dynamic zoom calculation slightly off.<br />
** There is still something a bit off with the squares map type and how it displays in the lobby (it is offset upwards and also shown too small), but all the other map types work and so this seems to be some sort of data issue with that map type and not a problem with our central algorithm.<br />
<br />
== Version 2.117 Ion Cannons And Melee Units ==<br />
(Released August 11th, 2020)<br />
<br />
=== Balance Work ===<br />
<br />
* Ion Cannon Shots can now:<br />
** Damage both the personal shields and hull of a target in one shot (including killing it outright).<br />
** Kill multiple ships in the same stack in one shot.<br />
** Thanks to GreatYng for pointing out the oddity of Ion Cannons not being able to do these things.<br />
<br />
* AOE shots can now hit any enemy bubble shield overlapping the explosion, rather than only being able to hit the shield if the generator (or something it's protecting) were physically within the explosion.<br />
** Thanks to NRSirLimbo for reporting and RocketAssistedPuffin for the save.<br />
<br />
* Crippled units (i.e. player flagships) can now pass through enemy bubble shields and traverse wormholes covered by them, to avoid being stranded in hostile territory.<br />
** Thanks to tadrinth for reporting and RocketAssistedPuffin for the save.<br />
<br />
* Melee units in attack-move mode will now go after units within a limited range (equivalent to a weapon with range=Normal1), so you have a middle-ground between "only attack your direct target or things actually touching you" and "pursue anything on the planet".<br />
** Also, even when not in attack-move mode, player melee units without orders (and not in hold-fire mode) now automatically move to attack nearby targets. If all such targets die or move away, the melee unit goes back to where it was.<br />
** Thanks to OzoneGrif, wm46, RocketAssistedPuffin, and Ubifan for the suggestions and saves leading to this change.<br />
<br />
* Fixed a bug where deathgrip tackle drones had a gun that could shoot immobile targets, greatly confusing their logic. That gun now has the only_targets_mobile_units flag.<br />
** Also fixed a bug where tackle-drone-launchers could give their spawned drones a direct attack order to go after an immobile unit.<br />
** Thanks to tadrinth and RocketAssistedPuffin for the reports leading to these discoveries.<br />
<br />
=== Bugfixes ===<br />
<br />
* Scourge: fix a bug where player-allied scourge were building tons of Builders but no Fortresses (they were mistakenly thinking they were minor faction allied)<br />
** A number of people on discord noticed the lack of Fortresses<br />
<br />
* Potentially fix a bug where Regenerator Golems were regenerating things while crippled<br />
** Thanks to crawlers for reporting.<br />
<br />
* AI Reserves now will create anti-player zombies.<br />
<br />
* Take another stab at 'adjacent planets watched'. Sigh.<br />
<br />
* Fixed an issue where on computers without GOG Galaxy installed, they would get a harmless-but-annoying error message at game startup.<br />
** Thanks to Badger for reporting.<br />
<br />
* Minor tweak to target list planning; use a case insensitive comparison for zombification.<br />
<br />
* The 'total units' count should now include stacks.<br />
<br />
* The AI "Great-Turrets" are now simply called "Turrets" again, as at this point balance-wise the player turrets and AI turrets are similar.<br />
** Thanks to GreatYng and RocketAssistedPuffin for bringing this to our attention.<br />
<br />
* Exogalactic War Units now use a better spawn-in message than before<br />
** Thanks to zeusalmighty for reporting<br />
<br />
* Fix a problem with the Custodian description text<br />
** Thanks to GreatYng for reporting<br />
<br />
* The semicolon was previously not supported by our chat log format (our "condensed ascii"), but now is.<br />
** Thanks to Badger and Sigma7 for reporting.<br />
<br />
=== Multiplayer And Lobby Work ===<br />
<br />
* Heartbeat messages from the client to the server and vice-versa are now omitted from all of the networking logs. They were making things far too cluttered for us to be able to see real information when we had network logging of various detail levels turned on.<br />
<br />
* Some excessive logging on GOG and Steam with regard to their send result statuses has been removed, as again this was clogging up our network logs.<br />
<br />
* The clients now have a secondary FromClientToServer_SignalDoneButHasNoCommands that they can send in place of the FromClientToServer_SendMyNextCommandBatch when they don't have any commands to send (which is most of the time, statistically).<br />
<br />
* GameSpecificNetworking now has a DoPerFrameLogic() method, which lets us efficiently set some per-game settings like we do for the arcen debugging stuff.<br />
<br />
* New setting in the Network section of the settings menu: Network Logging Includes Frame Auths.<br />
** In the lobby and during gameplay, there are messages sent by the network every 100ms or so to keep themselves in sync, and if you have them included they will tend to crowd out the rest of the messages that are sent. So by default these are disabled.<br />
<br />
* New setting in the Network section of the settings menu: Network Logging Includes Command Batches.<br />
** In the lobby and during gameplay, there are messages sent by the network as frequently as every 100ms, but more often some sporadic multiple of that. This is how factions tell everyone what they want their ships to do, and how human players say the same. There's very little that we can say about this in a meaninful way in the networking log level, and again this will tend to crowd out the other messages that happen. So by default these are disabled, but bear in mind that most things that players actually cause to happen are being caused through these batch messages.<br />
<br />
* Found and fixed a general issue where the player accounts were not properly being cleared (and fully resetting the player account IDs) during all cases where a game is loaded into the lobby. At a bare minimum, it was affecting the "open a custom game with my last settings."<br />
** That would have eventually led to out of bounds exceptions, over time, and in general was cluttering up some areas important for multiplayer, but it had not had a negative impact on anyone so far.<br />
<br />
* Fixed a bug that was causing all sorts of craziness on clients in multiplayer in the lobby, with them not getting their galaxies full cleared.<br />
** This was leading to things not being properly in sync between the client and host, like planet names or locations, and things like extra planets or planets in old locations, or noninteractive planets at a whole other scale visually from the real planets. It was quite messy! All of that is now corrected, thankfully.<br />
<br />
* In the lobby, when you change the number of human factions, it now regenerates the map immediately. For other factions it does not bother, never has, because there's nothing different to see at this point in the galaxy.<br />
<br />
* The WorldSetup objects now have a readonly SetupTypeName on themselves, so that we can tell what they are.<br />
** ChangedSinceLastMapGenCall on this same object is now a property, which lets us throw out debugging messages when it is being triggered for whatever reason.<br />
** Something has been causing extra calls to be sent through the map generation pipeline in a redundant fashion that makes everything slower than it needs to be.<br />
<br />
* Removed the ability to send a WorldSetup object via GameCommand, as that is actually highly antithetical to the way we edit that data as of the last year and a half or so.<br />
** We specifically try never to adjust the entire thing, because several players at once could be editing different parts of it and we want those bits to all merge at once.<br />
** Got rid of the SetupOnly_ChangeSetup GameCommand, which was set to use this sort of thing.<br />
** Got rid of the LobbyWorking_HasBeenChangedAndShouldTransmitChanges() method on WorldSetup, which was being used by a loop in the footer to keep clients up to date.<br />
*** The problem with this is that this was far older code, back from perhaps 2017, and it was using an older and more sledgehammer-y approach to try to keep clients and the host in sync. When the lobby was redone in 2019, this became obsolete but was still hanging around and so caused some nontrivial chaos.<br />
** LobbyWorking_HasBeenChanged() has also been removed, as it seemed duplicative and was no longer in use perhaps?<br />
*** Oh goodness, this was actually how we were ever updating the long-term stored version of the game (as opposed to the lobby working copy). This was not a good way to do it, but it was not quite as antiquated as we thought.<br />
<br />
* Fixed a rare nullref exception that could happen in the ships sidebar if you were not properly on an actual planet.<br />
<br />
* Fixed an issue from the last few months (probably) where if you had an error during map generation, it would still try to dump you into the world and then give you tons of other errors. It should have been stopping you and making you fix whatever was wrong.<br />
** This is most common when there are not enough planets for all the factions you have chosen, or a few other rare cases. One such case is just discovered internally, and that's you having a planet starting index that is higher than the number of planets currently in the world.<br />
<br />
* Helper_AssignHumanHomeworld() and the AI variant are now Helper_TryAssignHumanHomeworld() and an AI variant.<br />
** It was already quite possible for these to fail if the player had selected something invalid, such as previously having clicked a planet with an index above 40 and then choosing a map size of 40 planets.<br />
<br />
* The game now auto-assigns humans a planet that is valid if they don't have a valid option, and it does so in a multiplayer-compatible fashion.<br />
** Previously this tried to do the assignment, but did not do so in a way that worked, and even if it had worked it would have only worked for one player.<br />
** This also includes a new sub-gamecommand, StartingIndex_FromAutoAssignInMapgen, which efficiently lets the UI know what is happening without triggering an extra map generation cycle or accidentally overriding a distinct change made by the player.<br />
<br />
* The lobby is now substantially more responsive even in single player, although it seems to be having some extra calls that we are still hunting down.<br />
<br />
* Fixed an annoying issue that was causing an extra regeneration of the map to happen when you first went into the lobby in single player or as the host, leading to the lobby load time being half a second or so longer than it should have been.<br />
<br />
* Fixed an issue where if one person in the lobby adjusted the following fields, it would not be reflected for the other players in the GUI (but would in the map itself):<br />
** Planet naming style.<br />
** Map type.<br />
** All of the other map sidebar controls were showing things properly and also able to be controlled from any client or the host.<br />
*** Do bear in mind that if you manually enter a map seed, it won't appear for the other players until you hit "Regenerate Map," but given that does not actually affect the map until that button is pressed, this should not be overly surprising.<br />
** All of the faction controls and their sub-controls have been workign properly from the start, and still seem to be.<br />
** Same thing with the galaxy option controls (all of them), which is pretty exciting.<br />
<br />
* The "Campaign Name" is something that is only for savegame management, and thus is only relevant on the host side. The clients now see "Will be set by host" as the text in that box, and cannot change it.<br />
<br />
* The "Start Game" button is also something that we are limiting to be host-only, for a variety of reasons. The biggest is that they need to set a campaign name, but that's entirely host-side.<br />
** Clients clicking this button now get a message that asks them to wait for the host to do it.<br />
** Actually, for the sake of ease of use, the "Reset To Defaults" button and this one are just hidden on clients in multiplayer. Clicking Reset to Defaults on a client results in an error for a lot of good reasons based on how it is trying to accomplish that.<br />
<br />
* All of the lobby controls now seem to work properly for both the host and client. There are still some things in chat that are messed up, and we're missing controls for making clients not always be spectators, but we can also get into the game.<br />
<br />
* Fixed the harmless but annoying "StartingIndexChanges: factionIndex 1 passed when faction count was 0" error message that would happen on clients after a host gave orders to start.<br />
<br />
* The campaign name and its textbox is now just plain invisible for clients in a multiplayer game, again to avoid confusion.<br />
<br />
* The right-hand sidebar in the lobby in multiplayer is now split into two scrolling parts.<br />
** The top part has information about the connected players and the factions that they are a part of, and never auto-scrolls around.<br />
** The bottom one has the actual chat messages, and auto-scrolls to the bottom when new messages come in.<br />
** The fonts of both are a bit smaller, from size 12 down to 10.<br />
<br />
* From past changes, we can now verify that the proper name shows up for clients on the host, instead of it just saying "Player 2" for them.<br />
** However, text messages from the client in the lobby show up with the color of the client but the name of the host?<br />
<br />
* Hitting enter while in the chat textbox in the lobby now actually sends the chat properly, as already worked in the main game.<br />
<br />
* In the multiplayer lobby, the top panel now shows the status of the various PlayerAccounts that are in a game. Specifically it shows any who are connected or disconnected, or which ones are you, etc.<br />
** It also shows players that have an account in this game at the moment, but who are absent.<br />
<br />
* Fixed a bug where player accounts were being created with the name of the host, not the connecting client, which was confusing all sorts of things.<br />
<br />
* The preferred colors from the player profile on each local machine is now sent over and applied to their player account for later reference. This was also causing endless new player accounts to be created, since there was never a match to the connecting client.<br />
** A variety of pieces of code had to be updated to support this.<br />
** Apart from them selecting a color for their faction, this gives them a chosen color in text chat.<br />
<br />
* Added a new OnEndEdit() event for text input boxes, which lets us trigger things when a player clicks out of a textbox.<br />
** This now happens for the map seed in the galaxy map, same as with hitting enter, as both now trigger an immediate regeneration of the map (without you having to hit regenerate map manually).<br />
<br />
* Faction colors for player factions now come from the network data rather than just the local data, which is important for multiplayer.<br />
<br />
* Fixed the bugs with lobby chat messages not appearing properly on the client and host in various ways.<br />
<br />
== Version 2.116 GOG Networking Done ==<br />
(Released August 6th, 2020)<br />
<br />
* Fix a bug where the 'Watch Extra Hops Worth Of Planets' code was being applied incorrectly<br />
** Thanks to Tynendir for reporting.<br />
<br />
* Fixed a bug where Macrophage Spores don't move to new planets when loading a second save game.<br />
** Thanks to GreatYng for reporting, and StarKelp for fixing.<br />
<br />
=== Milestone: GOG Galaxy Networking Integration Complete! ===<br />
<br />
* The Arcen GOG Wrapper has been majorly updated to get your GOG Galaxy Friends list and the status of them so that you can play multiplayer with them if you want to.<br />
<br />
* When you are in the GOG networking mode, it now shows the list of your friends, just like it does for Steam.<br />
** Basically all of the functionality is identical here, in terms of how it shows those who are online, offline, and in-game, and lets you filter between them, etc.<br />
** The one difference is that in Steam we show the "in this same game" status as a light green (like Steam does), and in the GOG version we show that status in a purple color (to match their color theme).<br />
<br />
* The host computer now is able to open up a lobby for friends when it says "open server."<br />
** This works with all the various NAT punchthrough that GOG Galaxy supports, which we are not entirely clear on the details of. This may be as robust as Steam, or slightly less so, but we honestly have no idea. We'll be interested to hear from you! But either way, it's out of our hands at that point, so it's just information gathering.<br />
** The host is also now properly destroying the lobby when it shuts down, so that others won't try to connect to it and not see it.<br />
<br />
* When clicking the Join menu in GOG, the client now sees lists of their friends with four categories instead of just three.<br />
** Friends who are in-game but not in a lobby right now are showed in a dull light purple. Friends who are in game and have an open lobby show up with a bright purple status.<br />
** You can also cycle through all friends, open lobbies, friends in this game, and online friends.<br />
<br />
* In the listing of connections, for GOG it now shows a button that says "closed" instead of "connect" next to each friend who does not have an open lobby.<br />
** With Steam, someone could be in offline status but still let you connect to them. With GOG, we have to have a lobby ID to connect to, so there's no way to hide that and still even attempt a connection to someone.<br />
<br />
* GOG clients are now able to search for lobbies and correlate those to their friends list, which under the hood is a several-step process.<br />
** We are filtering out any potential rogue lobbies created by bad actors, and correlating them specifically to those owned by your friends.<br />
** It's possible that a friend might jump from the status of being offline (prior to opening the lobby) to showing up as someone you can connect to (when they open the lobby), actually, so potentially this actually does allow for the same sort of quasi-stealth game connections that people can do using Steam.<br />
** That said, since lobbies have to be advertised (to your friends) and we can't have a client just blindly try connecting by userID like in Steam, if you open a lobby and your other friends are actively in GOG looking to join a game of AI War 2, they would see that. Not a big thing, probably, but it's something we've noticed about the nature of these two differing systems.<br />
** You may find yourself having to hit refresh a few times on the client side in GOG, as there is a few seconds of lag before the lobby that the host creates shows up. It seems to be under 4 seconds at the most in current tests.<br />
<br />
* GOG clients can now actually initiate connections to a host lobby. And it works!<br />
** The client is aware of getting into the lobby, although it takes a few seconds.<br />
** The client also does gracefully tell them that they are leaving the lobby, and the GOG servers and the host are both finding out about that properly.<br />
<br />
* The GOG Galaxy networking client is absolutely fully implemented, now!<br />
** A huge amount of the actual send/read logic was able to be pretty much identical to Steam, which was not super far off from what we did with LiteNetLib.<br />
** Pro tip: if any other developer is ever wondering about SendP2P messages on the GOG network, those can take any size, not just stuff under 1200 bytes. It handles all of the fragmentation and recombination extremely well, and just as fast as Steam or other services.<br />
** The initial connection process to a lobby with GOG is a bit slower from North Carolina in the US than what we are seeing to Steam, ranging from 4-6 seconds on the first creation of a lobby on the run of a game to 2 seconds for ones after that. But once the connection is established and brokered, it's easily as responsive for us as Steam.<br />
** For us, this is routing through the internet and some firewalls, so the NAT punchthrough or relay servers or whatever it is in this case seem to be doing their job. We certainly did not mess with any ports.<br />
** Because of the nature of how data is read in from the buffers in GOG, we actually were able to get slightly more efficiency and speed with how we manage the heap compared to Steam or LiteNetLib. It's probably not usually a huge advantage, but it is something that we appreciate the efficiency of.<br />
** Essentially all three of the networking options have their own pros and cons a bit, but are all extremely good. That's a real relief to see, and to see them all working.<br />
** At this point it is now down to making the game networking actually work properly to have the game run, and that's a networking-framework-agnostic process.<br />
*** In a lot of respects it feels like after a large move of house, where all our stuff is now out of the old house and into the new house, but we still have a lot of unpacking and arranging to do. It still feels excellent to be done with the movers and have everything in one location now.<br />
<br />
=== More Multiplayer Work ===<br />
<br />
* Removed some old and unused code that is from the Valley Without Wind versions of multiplayer, checking for disconnections due to inactivity. We are handling that at a lower level, now.<br />
<br />
* Got rid of some old code that was mainly in the older version of our engine pre-Raptor, which was checking for "pthread exceptions" that was never something that could happen in the newer engine that we've replaced it with.<br />
<br />
* The game now has some self-checking code in there for giving us some actual feedback when it decides that it can't run the simulation or show visuals for more than 3 seconds at a time.<br />
** This is a pretty rare case, but it was the "too many changes and the client machine goes to black screen and unresponsive" issue.<br />
** This may have fixed the issue, although there also seemed to be another issue that was related to this.<br />
<br />
* Took out some other unused and old data.<br />
<br />
* The "UseSeed" command in the lobby no longer triggers the gamesettings to be saved. That was not useful, and slowed it down for no good reason.<br />
** It turns out that this was blanking out the settings data in a strange way a lot of the time, and causing the black and white view of the game after you reloaded. It also was apparently directly the cause (somehow) of the infinite black screen on the client after this was triggered.<br />
<br />
* Put in a lot of extra error handling for the steamworks networking in particular in case it has internal exceptions while trying to send something.<br />
<br />
* The cumulative effect of a lot of these changes has basically fixed a ton of issues in the lobby, including:<br />
** Clients not being able to use certain buttons or dropdowns.<br />
** Certain dropdowns not showing the right values to clients.<br />
** The client and the host getting a different view of things after certain buttons or dropdowns were used.<br />
** For a while there I was thinking that I was maybe going to need to make some of the controls for the lobby host-only, but now that's definitely not the case!<br />
<br />
== Version 2.115 Imperial Summons ==<br />
(Released August 4th, 2020)<br />
<br />
* You can now have multiple copies of the Devourer and Zenith Trader in a game<br />
** There's no technical reason for this limitation, and we're encouraging Zenith stuff because of the coming Onslaught<br />
<br />
* Quickstarts are sorted alphabetically again, instead of when the quickstart was created<br />
** Thanks to ArnaudB for the bug report<br />
<br />
* Add some defensive code to the Dyson Sphere<br />
** Thanks to GreatYng for reporting.<br />
<br />
* Fixed a cross-threading nullref exception that could happen during unit unselection (probably due to it dying).<br />
** Thanks to GreatYng for reporting.<br />
<br />
=== Imperial Fleet Summoning Changes ===<br />
<br />
* The AI now generates some weaker bonus exos against miscellaneous player targets (energy producers, MDCs, GCAs, etc), just to keep things exciting.<br />
* Fix a bug where Exos were trickling into their targets instead of moving as groups.<br />
* Start the Exos the moment you finish the hack, instead of some random time < 30 seconds from when the transceiver finishes.<br />
** Blame MasterGeese for these changes<br />
<br />
=== Multiplayer And General Lobby Work ===<br />
<br />
* The "partial map generation" code for giving a preview in the lobby now does even less work, bringing our mapgen times down to 200ms or so on average.<br />
** Because of this, we've also moved the mapgen code during partial-map-generation onto the main thread, to keep things as fast as possible. The full map generation still happens on a dedicated background thread.<br />
<br />
* During the lobby, the way that we handle the execution frame loops is now entirely new, and basically skips over a lot of things that were artificially introducing lag.<br />
** This makes the lobby perform far better in general, and also makes the map generation times absolutely flyyyy compared to what they were before, on single or multiple player maps.<br />
<br />
* This is leading to a number of substantial bugs in the lobby, temporarily, but will make the lobby performance far superior in both singleplayer and multiplayer as we get those resolved.<br />
<br />
* The silent "generate partial map" or "generate full map" complete messages now tells you how long it took.<br />
<br />
* The way that mapgen works, it now has a couple of different contexts that it passes in, so that each one has its own random number generator that is not dependent on the others.<br />
** This lets us ensure that there is consistency between runs of the same code on different machines, and on the detailed version (for play) and the non-detailed version (for viewing in the lobby).<br />
** This is largely solving the issue that we just have started having in this latest round of internal builds with a difference in the final map and the original map.<br />
<br />
* Renamed the Generate() method on map generators to GenerateMapStructureOnly() to be more clear, and also make our code more eaily searchable.<br />
<br />
* Adding a planet to a galaxy no longer requires passing in a context object at all. It now generates its own internal random number generator for its initial variables based on the galaxy map seed, its index, and its original position.<br />
** One of the side effects of this is that now when you change which planet you want to be your starting planet, it will keep the name the same instead of shuffling them around.<br />
** This sort of name-stability has actually never been in this game before, and always was mildly annoying. But in multiplayer lobbies it was going to be even more annoying. "I'll take Adam." "Okay, sure." "Well, I clicked it and now it is called Brian, but that's the one I meant." "Wait, what?"<br />
<br />
* When you are loading a savegame or a quick start as a template into the lobby, it now immediately regenerates the map rather than using the old map, because it's highly likely that the new structure will be different in some fashion.<br />
** This then also solves the problem of clients being different from the host on first connect, probably; that was kind of a compound problem in general.<br />
<br />
* Fixed an order of operations issue that could lead to the occasional "No human players found to seed homeworlds for!" error in the lobby in general, but more recently in multiplayer more frequently.<br />
<br />
* Possibly fixed the issue with later player accounts in multiplayer being renamed incorrectly to "player 2" and such.<br />
** There is still a fair bit of duplicate data happening between data structures, and some lobby/startup code that is blatantly single-player-specific that we need to get sorted out.<br />
<br />
* Dramatically cut down the time it takes to generate planet random seeds, but still with keeping them consistent as you click around the galaxy, by pre-generating the random seeds as the first 300 calls to the "broad random" for the galaxy. Any seeds needed after that will be generated the slow-but-unique way. This means mainly things like nomad planets or other things that are late additions. When just adding a planet or two, it's not so slow as to be a problem.<br />
<br />
* Until now, if you loaded an existing savegame it would automatically put you in control of the first player account, even if your profile name did not match.<br />
** It now continues to do that when you are loading as a single player game, which is enormously helpful for testing and just in general, really. But in multiplayer, it now tells you a list of what the available profiles are, <br />
** In general, if you are loading something as a template, it now clears all the old player account data and loads in your own current name as the new first player account (and further players are already added properly as they connect).<br />
<br />
* Fixed up the way that planets are shown as colored in the lobby galaxy map, so that it will work well with multiplayer and also with the new faster single-player-generated stuff.<br />
<br />
* Improved the logic for it properly setting you to be viewing the new planet you've selected after you make a selection in the lobby. Another thing that did work, but with the revised logic had to be made to work all over again.<br />
** This concludes the fixes to all the known bugs that we are aware of that we've introduced into the lobby today.<br />
<br />
* Fixed another nullref that was happening only on the multiplayer custom games after today's changes.<br />
<br />
== Version 2.113 Dyson Growth ==<br />
(Released August 3rd, 2020)<br />
<br />
* Fix a null reference exception if the game wants to spawn a Relic but you own basically every explored planet<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fix a bug with Dyson Sphere units not marking up<br />
** Thanks to GreatYng for reporting<br />
<br />
* Fix a typo in a Battlestation description<br />
** Thanks to ovalcircle for reporting<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed one oversight that was causing the factions tab chat to not show its chat text properly, unlike map and options in the lobby.<br />
<br />
* As text messages come in inside the lobby, it now scrolls to the bottom of the chat window, as you would expect.<br />
<br />
* The maximum length of chat messages in the lobby is now 1000 characters.<br />
<br />
* GetLocalPlayerFaction() is now GetLocalPlayerFactionOrNull(), to support spectator players.<br />
** Additionally GetFirstPlayerFactionOrNull() has been added, and GetIsFriendlyToLocalFaction() and GetIsHostileToLocalFaction() have been updated to work based on that in order to extend support for spectators even further.<br />
<br />
* Planet visibility is no longer determined from your local faction (since for spectators that might be null, and for all humans it is identical anyhow). It now just uses GetFirstPlayerFactionOrNull(), since that's slightly more effient and supports spectators.<br />
<br />
* Huge areas of the AI have been updated to allow for spectators, generally giving them information that mirrors that of what the first player is seeing (objectives-wise and so on).<br />
** In other areas, it simply updates things to not erorr out when you hit hotkeys, etc.<br />
** Spectators also can't run "cmd" messages from chat; it will just show the text as if it were not a command.<br />
<br />
* GetLocalPlayerFaction() on the planet object has been removed, as that did some risky caching for multiplayer in general, and also was not really compatible with spectators.<br />
<br />
* Fixed a couple of errors where non-sim-but-background-fation-AI code was referring to the local player faction. It now refers to the first player faction.<br />
** Probably this would not have made much difference, unless the game switched hosts partway through or something like that.<br />
<br />
* The chat controls in the lobby now work, though there are some bugs in them still.<br />
<br />
* The correct name for each player faction now shows up for even for players who are in spectator mode.<br />
<br />
* Player factions in spectator mode now see in the lobby chat area that they are in spectator mode.<br />
<br />
* Both the lobby chat and main game chat now support more characters in their text -- basically anything that our "condensed" ascii format is allowed to display.<br />
<br />
== Version 2.112 Steam Networking Complete ==<br />
(Released July 31st, 2020)<br />
<br />
* The description of the Ensnarer Battlestation now explicitly mentions that it can use AI Great-Turrets<br />
** A number of people have reported this as a bug over the years, so hopefully that won't happen anymore<br />
<br />
* All of the Fallen Spire ships, including those in the Spire Railgun Shop optional mod, have had their health and shields doubled, but their firepower halved.<br />
** This should make battles with other mega-units last longer, which feels more appropriate, but keep their "damage over time" the same. <br />
** When these were going toe to toe with the AI Exogalactic War Front units, they seemed to disappear too quickly, making them feel weak. This should keep their effectiveness the same as before, but make the battles take about twice as long with those large ships, so that it doesn't feel like instant evaporation at least.<br />
** The one unit not adjusted is the Spire SuperDreadnought from the Spire Railgun Shop mod. That was already maxed out as a "kills everything and is basically invincible" sort of ship.<br />
** Thanks to a variety of players for weighing in on the feel of these units, and Badger for suggesting this adjustment.<br />
<br />
* Rather than having a slider for the number of planets in the galaxy map view, there is now a dropdown.<br />
** This prevents the intense "regenerate map spam" and lag that was inherent in using a slider, along with making it easier to choose a certain number of planets.<br />
** We have made it so that it only gives you multiples of 2 below 60, multiples of 5 below 100, and multiples of 10 above that. This makes it easier to quickly peruse the range.<br />
** Each entry has some commentary on what it will mean to the feel of the map if you are hovering over it in the dropdown with the number of planets expanded.<br />
** Actually, it wasn't even regenerating the map after you changed the number of planets, which was really confusing! You had to hit regenerate map. Now there is no confusion.<br />
** All of this is easier to use as a player in general, on top of being something that is easier to deal with in multiplayer for sync purposes, too.<br />
<br />
* Fixed a longstanding bug where dropdown selections that were open could persist when leaving the lobby or changing tabs within the lobby.<br />
** Thanks to MaverickPenkenn for reporting.<br />
<br />
=== Milestone: Steam Networking Integration Complete ===<br />
<br />
* Fixed an issue where multiplayer clients disconnecting from a host would try and fail to save the last settings from the lobby. Now it does not save the lobby settings from a session you are just a client of.<br />
<br />
* All of the networking frameworks have had their "send to anyone here and myself" code consolidated into the network authority, so when an interface is partially implemented it won't wind up stalling out waiting on the host.<br />
** Less code duplication is also always good, but it wasn't clear that this was a complete commonality until we got partway into the Steam framework implementation.<br />
<br />
* A new ArcenSteamClientConnection wrapper has been created to keep track of the Steam connection on servers.<br />
** This now properly is registered while the steam connection is alive, and all of the "waiting for player to connect" and "player disconnection" events now happen properly.<br />
** For some reason, we are not getting the "host has accepted you" callbacks on the client end, but that doesn't really matter. As we start actually having our challenge-response data sent via the higher-level networking code, that bit will become irrelevant as it establishes itself within part of one second anyway. It's just a curiosity, or potentially something that is only meant to trigger host-side. Frankly the documentation is sparse in points, both from the Facepunch C# wrapper and the Valve C++ baseline, so this might be working as intended.<br />
<br />
* Substantial progress on the Steam network transmission of data. Still not quite seeing it register yet, but we're getting close.<br />
<br />
* The full suite of network logging has been integrated into our steam networking wrapper, now.<br />
<br />
* When a Steam host shuts down the connection, the steam client computers now definitely notice and react to that. The inverse was already working from the start.<br />
<br />
* Figured out the missing information on how to get data from the facepunch steamworks wrapper (call Recieve() to trigger the other events), and are sticking with the derived classes methods rather than the interface method, since for relay connections it seems like the interface method is not fully implemented.<br />
** With this in place, we're now getting messages on the client machine, and they are properly decoded! The host for some reason still doesn't get messages back, but this is progress.<br />
<br />
* Fixed a bug in our connection status window code that was causing it to stop showing a timer on connection stages after the earliest ones.<br />
** With LiteNetLib, that all flashes past so fast we could not tell that was even happening. With Steam currently stalling out with the host not getting messages, it became apparent.<br />
<br />
* Previously it was possible for our socket mode to be off, and silently ignoring messages we were sending.<br />
** This was initially done to make it so that any lingering messages that would try to be sent after a disconnect would not cause visible errors, but in this case we've wound up with the socket state being off on the steam networking, despite it being active, and this thus resulting in client messages being composed but not actually sent. That was not obvious because of the lack of error messages.<br />
<br />
* Figured out a stupid mistake in our own code, indeed a single line of code, which was preventing the client from sending data properly back to the host.<br />
** Steam networking is now fully functional in terms of sending data back and forth. There is some sort of issue with the world data not getting across properly, but we have to now verify whether that's limited to Steam or also happens on LiteNetLib.<br />
<br />
* Added in a substantial amount of extra error tracking in our univeral and game-specific network message handlers.<br />
** This helps us to find out where errors actually are.<br />
** In the case of steam, right now we are getting some exceptions when the host tries to tell the client what their player profile number is.<br />
<br />
* Fixed a simple typo that was having us send a junk message via both frameworks to the client when they first connected.<br />
** In both cases, this led to the galaxy map not showing up properly on the very first world connect. But in the case of Steam networking, it also led to an exception because the byte array was too small.<br />
** This extra smallness is actually more accurate, and basically it was only not erroring with LiteNetLib because the buffer array was larger than needed because they are pooled.<br />
** This is an interesting difference between these two networking frameworks, but neither one is particularly "wrong. But it does make Steam slightly more sensitive to certain errors in a way that is useful, because it's an error in both cases that manifests in other places.<br />
** Anyhow, this seems to argue for us to internally use Steam as our main testing framework, additionally because that means we are round-tripping out through the internet and Valve's servers and back rather than having the speed of a LAN.<br />
** This also means that the Steam networking library is fully completely integrated, which is a very major milestone! Now it's all game logic, regardless of what is going on with the two networks.<br />
** Also worth noting that it's under 3 seconds to connect a client to the lobby in our test case, using the Steam relay servers, etc. On the LAN it is under one second, so that's pretty killer.<br />
<br />
=== More Multiplayer Work For All Frameworks ===<br />
<br />
* "Planet GalaxyMapVisuals in CenterGalaxyViewOnPlanet null!" will no longer happen. It was a thing relating to trying to center on a planet slightly too early, and the population of the galaxy map still having failed.<br />
** We are now bypassing that and using the raw internal transform offsets to calculate the correct camera position.<br />
<br />
* In response to the initial challenge from the host, the client no longer just sends their profile name. They now also send their list of installed and enabled expansions and mods.<br />
** The host then compares that list to its own installed and enabled expansions and mods. If there are differences, then it rejects the client connection and does a popup on the client and a chat message on the host side explaining why.<br />
** It also notes in there that both parties can enable or disable expansions or mods in the Game tab of the Settings menu to get things to match.<br />
** Please note that, yes, in some cases there will be mods that are enabled but which "wouldn't do any harm" because their functionality won't be triggered in the campaign in question. We don't have any way of knowing that, so we have to err on the side of caution.<br />
** When it comes to expansions, there are none that "wouldn't do any harm," because all of them add some ships and features to the game in general that all players need to have. For instance, the first expansion adds a bunch of new turret options that are available to choose from in any game you play with that expansion on.<br />
** At any rate, we've gone out of our way to make it easy for people to disable expansions and mods so that they can play with friends who don't have those same expansions or mods. The last thing we want is for the only solution to this sort of thing to be someone reaching for their wallet or having to faff about in the filesystem.<br />
<br />
* Low-level chat messages that are sent to everyone from the host are also now sent to the host themselves. Previously, they could not see messages of this sort, turns out.<br />
<br />
== Version 2.111 Initial Steam Connection ==<br />
(Released July 30th, 2020)<br />
<br />
* Fix a null reference exception in my new spire relic code<br />
** Thanks to Chuito12 for reporting<br />
<br />
* Nanocaust: Make the AI wait a bit longer before unleashing Exogalactic units on it. Remove some deprecated code<br />
** Also the exogalactic units won't hang around to kill the entire nanocaust, so there's a chance it can recover.<br />
<br />
=== Milestone: Initial Steam Networking Connection Between Client and Host ===<br />
<br />
* The Steam versions of the game now initialize relay access on startup, to make it so that the first connection using Valve's relay network will be extra fast.<br />
** If you wind up not playing any multiplayer, this is absolutely harmless. If suddenly it is flagging your firewall on game start on the Steam versions of the game, though, that might be why.<br />
<br />
* The basic connection through Steam's newer networking sockets connection is now in place, using their relay servers as recommended. This is the approach that absolutely bypasses NAT traversal and anything else of that sort, and in fact hides your IP address from anyone you are playing with. The claim is that their backbone is faster in most cases than the general internet one.<br />
** If need be, we can make a "Steam over IP" version that allows for their networking sockets stuff to run more directly over UDP, and only fall back to their relay servers if there is a problem. This would be a lot like LiteNetLib, except with much better NAT punchthrough making use of ICE and STUN and all those things.<br />
** For now we are sticking with Valve's recommended practices.<br />
** Beyond just getting the initial connection up, we don't have anything there yet, but on the server we can see the Steam username of the client who requested to connect and who forged the connection.<br />
<br />
== Version 2.110 AI Exogalactic War Front ==<br />
(Released July 29th, 2020)<br />
<br />
* Spire Relics now have additional text in their descriptions explaining either A. whether the relic is on route to a particular planet , or B. that this relic must build on this planet<br />
** Thanks to Lord of Nothing for suggesting<br />
<br />
* All of the units that were previously named "Galactic War [name]" are now just named "[name]"<br />
** However, in the tooltips for them, their faction should now say "AI Exogalactic War Front" in whatever the hunter fleet's color is, rather than saying the AI Hunter Fleet.<br />
** This lets us keep the shorter name, while making their sub-group and source a lot more clear.<br />
** This does need testing, so please let us know if it doesn't show up correctly somewhere. This is using a new xml feature called "override_faction_name", which lets us use a different faction name for some units in a faction, but without actually creating a new faction.<br />
** Thanks to Ovalcircle for leading the discussion that led to this.<br />
<br />
* Spending a ton of science will now increase a player faction's Overall Power Level very slightly.<br />
<br />
* Remove some inaccurate description text for the Rorqual Hejira<br />
** Thanks to GreatYng for reporting<br />
<br />
=== UI for Steam Networking ===<br />
<br />
* Added the new ArcenNetworkConnectionOption class, which we are using as a basis for things like lists of your Steam friends that you can connect to.<br />
** On the network authority, there is a new PotentialServerOptions, which is used to list out such things. This can be used for anything that we need to list a variety of to connect to, not just friends in Steam and GOG. This is in contrast to the "type in an IP" method that we use with LiteNetLib.<br />
<br />
* Started building out the Steam networking framework layer, currently based on the ISteamNetworking implementation that most games use.<br />
** We MAY opt to also start supporting the newer ISteamNetworkingSockets framework that Valve has rolled out more recently, but that would be an alternative networking framework in AI War 2 that you could choose between.<br />
** The fundamental premise of those two Steam networking setups is really different, and while the newer one would in some ways be easier for us to implement, it seems a lot less familiar to the average Steam player, involves IP addresses potentially, and is maybe less battle-tested, but who are we to say.<br />
<br />
* Previously it was still possible to have some exceptions happen silently in the Engine_Universal main loop, and they would log to disk but not show up in your face. Fixed.<br />
** It was also possible to get some silent errors when clicking buttons and other UI elements, turns out. This made the application just seem not to respond to the click, but now it properly shows the error if there was one.<br />
** Also it was possible for certain errors in the UI call stack to prevent the display of the error window.<br />
<br />
* When you try to connect to an IP address, or you change your active networking framework, the game settings now get saved immediately so that that is remembered even if you shut down the program right away.<br />
<br />
* There is now a screen that will be used for Steam and GOG connections, from the client side, and in Steam it now:<br />
** Shows a list of all your Steam friends, with ones that are in AI War 2 at the top, then ones that are online, and then the rest below that.<br />
** Lets you sort to just ones that are in AI War 2 or online.<br />
** Lets you refresh the list to check for updated statuses.<br />
** There is a connect button for each friend, but that is not functional yet. Just haven't gotten to that part yet.<br />
<br />
== Version 2.108 Galactic War Units And The Exostrike ==<br />
(Released July 28th, 2020)<br />
<br />
* Completely rework the way Exogalactic strikeforce leaders work, to allow per-AI-Type customization. No functional change right now, but intended to support some new AI types for DLC2<br />
<br />
* HandleHelperJournals() has been split out into a bunch of sub-methods, since they can error in rare cases and it would be nice to know where the error generally is.<br />
<br />
* Fixed an issue where we were not letting negative risk analyzer data be saved properly. Turns out that has a good reason to be negative at times.<br />
** Thanks to Badger for reporting.<br />
<br />
* Added a new UI feature that is a throwback to some of the functionality we had in various past games: the "center screen message"<br />
** This is basically a message that can show up near the top center of the screen, and stay there for a bit or for as long as needed.<br />
** It won't block the mouse, and it is over everything except modal popups and tooltips.<br />
** This isn't something we would want to use all THAT often, but for cases of things like "hey the server isn't responding, why is MP stalled," this is exactly the sort of UI functionality we need.<br />
<br />
* Fixed a harmless bug where, for the last few months since we've been doing multithreaded loading of camera xml files, the "PrivateVisExtensions" assembly would sometimes have annoying but unimportant errors appear on startup.<br />
** Essentially, it turns out that loading classes from a custom dll is not entirely threadsafe. Go figure. The fix for that is simple, and it doesn't slow things down, but now we know.<br />
** Thanks to GreatYng for the first report of this we'd had outside of ourselves running into it.<br />
<br />
* Fix a bug where macrophage achievements weren't triggering if you killed all the Telia<br />
** Thanks to GreatYng for reporting and StarKelp for the fix.<br />
<br />
* The in-game credits have been updated to include two more individuals who are key DLC2 testers.<br />
<br />
* Added new GetWasWorldStartedOnGameVersionOlderThan() and GetWasWorldStartedOnGameVersionAtLeastThisVersionOrNewer() to world, which let's people find out in a really efficient way if a world was started before some certain point.<br />
** We can't be accurate past a month or so ago, because we were not tracking the original savegame version back then. But it's useful for looking at saves older than the more recent ones and altering them if need be.<br />
** This is now used specifically to fix this macrophage disabled stuff only on older savegames than 2.108.<br />
<br />
* Fix a mispelling in the Mesopotamian planet names<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fix a typo, "reciever" to "receiver"<br />
** Thanks to Apthorpe for reporting<br />
<br />
=== UI Changes ===<br />
<br />
* In the Load Menu, campaigns are now sorted by 'most recent save game in that campaign' rather than alphabetically<br />
** Thanks to Puppet Master for the suggestion.<br />
<br />
* The default sort for the load menu is now by date.<br />
<br />
* Rename 'Exogalactic Strikeforce' to 'Exostrike' and 'Extragalactic War Units' to 'Galactic War Units' in UI. Having "ExoGalactic" and "ExtraGalactic" was a perennial source of confusion<br />
** Note that internally the code uses the old names for the moment<br />
** Thanks to a discord conversation involving relmz32, Oryutzen and NRSirLimbo<br />
<br />
=== Dyson Sphere Buffs ===<br />
<br />
* The Dyson Sphere's ships should now really level up after the hack<br />
** Thanks to GreatYng and zeusalmighty for the bug reports<br />
<br />
* Dyson Sphere hack descriptions now say "This hack will make the Dyson Sphere very unhappy with you for a while" to clarify the behaviour.<br />
** Thanks to Apthorpe for suggesting<br />
<br />
* The Dyson Sphere now gets additional income (ie it can build ships faster) that scales with AIP. As AIP goes up the Dyson and Antagonized Dyson get stronger<br />
<br />
=== Multiplayer Work ===<br />
<br />
* SendMessageToAllClients() has been split into two methods: SendMessageToAllClientsWhoAreFullyConnected() and SendMessageToAllClientsRegardlessOfConnectionStatus().<br />
** We really don't need heartbeats and frame auths and so on going to clients who are still connecting in.<br />
<br />
* Also added a GetCountOfClientsWhoAreFullyConnected() that lets us know if there are any clients who actually have gotten all the way in (and thus we should send world data)/<br />
** And added GetCountOfClientsNeedingWorldData() that lets us know we should make everybody wait for a bit until those people connect in. Otherwise everyone won't be on the same page.<br />
<br />
* Added a OnServer_IsAtPausedSpotWhereGameWorldCanBeSent() that lets us wait for a break in things happening (usually only 400ms or so at most) to then have a clean slate to send a world state to a connecting client without that state changing between them being sent the state and them getting it.<br />
** Along with this, if GetCountOfClientsNeedingWorldData() is more than zero, then it now pauses authorizing more simulation frames until the world is fully taken in by the new clients who are joining.<br />
<br />
* When a multiplayer game is stalled out for some reason, it now uses that central screen message to let you know what is happening, and if possible, why it is happening.<br />
** The game itself will have stopped having any action at this point, though you can still scroll around and look at things and give orders. But nothing is proceeding on the enemy side, so you don't have to worry about it being in your way.<br />
** When a client is first connecting into the lobby, it also uses this, to basically get the host and any other existing players to wait a moment before making more changes, etc.<br />
** On the host, this is already set up to give some context about the exchange under the hood that is happening with the new client.<br />
<br />
=== Multiplayer Transition To LiteNetLib ===<br />
<br />
* Okay then... we are switching network libraries when it comes to our non-Steam/non-GOG transport layer. Instead of FORGE Remastered, we'll be using LiteNetLib.<br />
** FORGE has grown a lot over the years, but the version we were using was from 2018...ish. We looked into updating our version of the code, but were not thrilled with how complicated it was going to be. Since we had working AI War 2 multiplayer on FORGE at least as recently as 2017 (in an alpha state), staying with the existing code made a certain amount of sense.<br />
** However, we started running into really long delays with something as simple as sending 10 bytes to say what our profile name was. This was taking upwards of 14-18 seconds between two machines sitting three inches apart and both within five feet of a powerful wifi router. We verified that the polling was happening hundreds of times per second, and that massive amounts of data was being sent via sockets. But in the internals of the old version of FORGE we have, it was taking it quite a very long time to assemble that into a full message, despite all the churn of hundreds and hundreds of data reads that were apparently all just empty headers and then noise. <br />
** Time for a new approach. It's worth noting that the current version of FORGE still lists all the most internal classes as "in development and lots of dire warnings," so that was another reason for switching up frameworks.<br />
** We chose LiteNetLib at this point, and within 40 minutes of dropping that in, we had the first successful connection between the machines on using this framework for the game. It was just a simple "hello client" message in basic unicode, but it arrived extremely instantly, as expected.<br />
** Next steps are going to be doing some cybernetic implants on LiteNetLib, rather like what we did on FORGE, to make sure that it integrates with AI War 2 properly and our network authority, and that it communicates as directly as possible with our own pre-formatted bitstreams. Most of that should be part of one day of work, at this point. We shall see. Then it's back to the actual larger "build out the multiplayer part of the game" work, but minus the lag that was tripping us up the last day or two.<br />
** It's also worth noting that, with this switch, we had to unfortunately also lose the awesome NAT punchthrough work that Doug Fields did for us with the FORGE interface back in 2018, but LiteNetLib has some of that of its own. And hopefully most people use Steam or GOG if they are behind firewalls of any complexity (since relay servers then become required, and that's where the free relay servers are).<br />
<br />
* NetPeer in LiteNet now inherits from ArcenNetworkClientConnection.<br />
** For now, we are using our own methods to generate the ConnectionIndex, rather than using the existing peer.Id. There may be some numeric conflicts, otherwise, but we can also change this later.<br />
** We also are initializing everything on the Arcen-integration side, keeping our own clientsOfServer list for quick access, and then calling the game-layer RespondToNewConnectionAcceptedByTransportLayer() that will kick things off.<br />
<br />
* PrepareMessageForSending() has become WriteLogOfSend().<br />
<br />
* Added a new SendToSpecificPeer() method onto LiteNet's NetManager. Not sure why that variant didn't seem to exist.<br />
<br />
* Wiring back up our LitNetSocket wrapper class:<br />
** SendMessageToHost_Inner() done.<br />
** SendMessageToAllClientsRegardlessOfConnectionStatus_Inner() done.<br />
** SendMessageToAllClientsWhoAreFullyConnected_Inner() done, using the new SendToSpecificPeer() method.<br />
** SendMessageToSpecificClient_Inner() done, using our own ConnectionIndices for now.<br />
<br />
* Booyah! Exclamatory phrases are not the norm in our patch notes, but this is an exciting moment. LitNetLib is sending messages, and doing so with speed and accuracy and a minimum of fuss. The username travels three inches in well under a second, as should be expected.<br />
** At first, I was getting some very strange data sent across, and I figured that this was going to be an endianness problem, but actually all of the .NET/Mono data is the same endianness from the look of things. Which makes sense, given that otherwise savegames would not work from computer to computer.<br />
** After spending the night with that rattling around in my brain, this morning I decided to definitely do some profiling of the data before I started messing with the #ifdefs.<br />
** First thing I noticed was that I'd chosen to use the RawData byte array, and immediately next thought was "I better check there's not a network header in there." Turns out, yes, there's a UserDataOffset. The first four bytes are not my data, and so of course it would give gibberish as if the endianness was wrong. Just starting my reads from the proper offset makes everything work instantly.<br />
** All of this is from a Mac to a Windows machine at the moment, but my I'll be testing three-way with my linux machine as well. Right now laptop is sitting closed under the Mac.<br />
<br />
* LiteNet logging now gets funneled to our own main logging pipeline.<br />
<br />
=== Continued Multiplayer Work ===<br />
<br />
* A fair bit of work has been done to make intentional disconnections from the client or server tell the other side more quickly.<br />
** This should help to avoid some disconnect-and-reconnect issues that are otherwise inevitable, and it just makes things feel more responsive.<br />
<br />
* Additionally, when you use the in-game controls to exit the program as a while, it now takes one extra half second to lets Steamworks and GOG actually do their exit logic properly, rather than rushing out the door.<br />
** This should hopefully help with any cases of the game still being thought to be running on Steam in particular after it closed.<br />
<br />
* When you exit the game, while it is doing its brief exiting stuff it now throws up a center-screen "exiting.." message.<br />
<br />
* Got rid of OnServer_WaitingOnConnectionIndices, as this was basically a duplicate of something we are doing better and more cleanly a new way, now.<br />
<br />
* UpdateDebugText() and all of its related variables have been removed.<br />
** This was the sort of thing that, in all of our prior games before Raptor and moving to 3D, you could hit F3 and get output information from. But it has never really been used in AI War 2 properly.<br />
<br />
* Got rid of WorldTransmissionMessageType, as it was needlessly complicated.<br />
** This was essentially us breaking the world transmission data into multiple parts and then sending those in parts. Historically there were two reasons for this:<br />
*** Back in AI War 1, we were using the Lidgren network library, and even though it was trying to work around the MTU (typicaly 1200 bytes) of various networks players might be on (or passing data through indirectly), it was often having bottlenecks and slowdowns with how it sent fragmented messages through the network card. Our theory at the time was that it was flooding the buffers of the NIC, rather than giving it data at a more reasonable pace. Network cards have grown enormously in the last 11 years, as have the OSes that control them, so that's not really a concern now. All of the newer network libraries that we would be using to send data should be able to handle 1MB of data without incident.<br />
*** Secondarily, for AI War 1 and for the A Valley Without Wind games, we were sending enough world data that you could see a noticeable wait time, and by handling this above the network transmission layer we could give you visual feedback on transmission progress (even though the whole act of that actually slowed it down). Eleven years later, we have networks that are vastly faster basically everywhere in the world, and the world savegames for AI War 2 are much more efficiently packed than AI War 1 was. So sending a file like this really is like a midsize image on any website you visit, now. Not really a progress bar sort of situation, especially if the progress bar itself causes slowdown.<br />
<br />
* ConnectionStage has moved from being just a UI-only element to being ClientConnectionStage as part of the ArcenNetworkAuthority, so that clients can better keep track of their connection status. Usually this is less than a second or so, anyhow, but we still need to keep track of it in case something goes wrong in particular.<br />
<br />
* The host now properly sends the world data to the client, for the first time in three years or so.<br />
** The client is having some trouble understanding it thus far, so now is a good time to build in error handling (it was just silently failing, until now).<br />
<br />
* Added a new SendLowLevelChatMessage() method on the network authority, which is used mainly for sending back and forth arbitrary messages from clients and the host to explain about the status of things. These can be echoed to all other clients or not, as the case warrants.<br />
<br />
* If the client fails to load a world sent by the host, then the host and any other clients all get sent a low-level chat message about that, the client gets kicked out (since they never made it fully in), and the client gets a nice error message on their screen and in the log.<br />
** This way we can solve whatever the problem is, and nobody is left sitting wondering why things are slow (when in fact they errored).<br />
<br />
* When you are loading a quick start, or loading a savegame as a template into the lobby, it now clears the chat log. This was definitely not information that needed to persist from a prior game to the new lobby!<br />
** These sorts of chat log messages, which are kept over the long term for the game (up to a limit), are no longer shown in the lobby at all.<br />
** Instead, we now are using LocalMomentaryDisplayLog, which is something that doesn't get sent with savegames, and which normally is just "stuff showing on your sidebar during the game for a little while."<br />
*** This is perfect for the lobby, and in the lobby we are just showing the last 100 of these, and not clearing them until you reach the game itself.<br />
*** These things are actually shown by timestamp, not by gamesecond (which isn't ticking yet), so that's just extra perfect for a lot of reasons.<br />
*** This also leads to privacy for people who were talking before someone new joined -- you only see messages that were sent after you were connecting -- although that's not hugely important in most cases.<br />
<br />
* Got rid of ArcenUI.Instance.CurrentNowUTC, since that was putting all of our lobby chat messages in the British time zone. We didn't use this anywhere else, and it was puzzling that we used it at all.<br />
<br />
* NatPunchEnabled is now true on the server and client for LiteNetLib. We'll see how well that works.<br />
<br />
* Added a new debug setting to the network section of the settings menu: Write Network World Serialization Logs<br />
** When sending a game world across the network to a client, write NetworkWorldSerialization.txt, and when getting one from a host write NetworkWorldDeserialization.txt -- both in the PlayerData folder (but on two different computers). The only real reason to turn this on is if a client is unable to join a host and gets an exception; this lets us do a diff of the two files and figure out what is different about what the host is trying to send and the client is trying to read.<br />
** Note these logs are often huge, sometimes hudreads of MB each. Compressing them into a zip or tarball and then uploading them somewhere we can download them to find out what is happening is a good idea. Hopefully as a player you will never need this, but this is basically a way for us to test the network world sync process, which otherwise can be incredibly opaque and take a lot of time to hunt down.<br />
<br />
* Used our new network world logging capabilities to fix an error in network world transfer where it needed to send the game version in a different format.<br />
** The client now looks at the game version very early on, and if it does not match it sends a message back to the host telling the host what the problem was.<br />
** Basically: If the client can't join because of a version mismatch, that gets shown and things happen properly.<br />
<br />
=== Milestone: World Sync Between Host And Client ===<br />
<br />
* Milestone! Initial transmission of the world data from the client to the host now works properly.<br />
<br />
* When a local player account is missing the following methods no longer throw errors:<br />
** SwitchViewToPlanet<br />
** OnClient_SendClientBatchToServer (actually still errors, because it's useful to have it do so).<br />
<br />
* PlayerAccount is now more strongly linked to the new ArcenNetworkClientConnection, and its connected status is now a method called OnServer_GetIsConnected().<br />
** There is some duplication of concepts here, but when you factor in the way that things like viewing of planets are synced in multiplayer, this is a worthwhile separation of concepts.<br />
<br />
* If two players with the same profile name try to connect to a game at the same time, it will now prevent the second one from joining and tell everyone why.<br />
** Bear in mind that these are AI War 2 profile names, not Steam or GOG or what have you. Everyone needs to have a unique AI War 2 profile name in the current game, but they can change up their names however they want and global uniqueness doesn't matter beyond the current game you are in.<br />
<br />
* In situations where a player 3 joins after player 2, and it's the first time player 3 has been in this particular world, player 2 now gets told by the host about player 3.<br />
** And of course all the more complicated permutations of this. It's the new FromServerToClient_SendNewPlayerProfile.<br />
** This is needed specifically so that all clients can know which planets are being viewed by other players, so that which planets are "tier 1" processing is honored and identical everywhere. Among other later needs.<br />
<br />
* Clients connecting to a host are now properly told what playeraccount they have been put in charge of.<br />
** This makes PlayerAccount.Local not null on their local machine, and lets them give orders and whatnot from their spot there.<br />
<br />
* Errors that happen during the main sim step will now be more visible in multiplayer contexts.<br />
<br />
=== Milestone: Initial Sharing Of Lobby Between Host And Client ===<br />
<br />
* Milestone: Clients are now able to load into the lobby, and they and the host both see most (but not all) changes that are made.<br />
** Clients are not yet assigned to any faction (making them just spectator-mode for now), and there are some specific bugs with certain data that isn't synced correctly just yet.<br />
<br />
* Map generation can no longer happen in the lobby except on the host.<br />
** We have no real way to be sure that map generation is deterministic between machines, so we need to do a world sync each time anyway.<br />
<br />
* When the map is regenerated on the host during a multiplayer lobby, it recreates all of the playeraccounts needed for each of the player connections that exist.<br />
<br />
* And when the map is regenerated on the host during a multiplayer lobby, it now re-syncs the entire world data to all of the clients so everyone is up to date.<br />
** This also solves the "authorized through frame number" issue, which was really just a smaller symptom of this larger issue.<br />
<br />
* Both the client and host are now verified able to add, remove, and edit factions and have that properly affect the world.<br />
<br />
* Window_ServerMultiplayerConnectionStatus has been removed, as we no longer use that. We've been using the new center-screen messages instead, or the chat sidebar, as needed.<br />
<br />
* In multiplayer games, the save button is now disabled and says: Cannot Save Game As Client<br />
** If you click it, it gives you this message: Unfortunately, only the host can save games in multiplayer. To save on bandwidth as well as on processing power between your machines, there is a LOT that is calculated only on the host machine. If you were to save a copy of the game on your client's end, loading it would lead to a lot of wrong and missing data.<br />
<br />
* Additionally, autosave is now something that does not happen on multiplayer clients. Just the host.<br />
<br />
* The header of the load quickstart and load saved game menus now make it clear if you are loading for multiplayer or single-player.<br />
** Also on these screens is a new "[Multiplayer Questions?]" bit of text up at the top that appears only on the multiplayer version, and which has some helpful mouseover text.<br />
<br />
* Rather than having an annoying explanatory popup to click through every time you open the various ways of hosting or joining a multiplayer game, it now puts that extra information under the "[Multiplayer Questions?]" section up at the top of those screens.<br />
<br />
* At the top of the lobby screen, it now says if you are joining as a client or a host to a multiplayer lobby, as well as having that same "[Multiplayer Questions?]" bit.<br />
** This includes the following new text in its mouseover text: Except for the host, all players are spectators by default. There is only one human player faction by default. Any number of players can share control of a single faction, or each player can have their own faction that they control on their own. You can mix and match as you like.<br />
<br />
* The connect by IP window has been completely reworked visually so that it matches the rest of the game and doesn't look like the old temporary style that we were using in 2017 (because that's what it was).<br />
** This also lets us put extra information on that screen to help anyone who might be confused.<br />
<br />
* The client connections status window is now patterned as a continuation of the connect by IP window, and it's nice and graceful and in the new style.<br />
<br />
== Version 2.106 Immortals and Unresponsiveness ==<br />
(Released July 23rd, 2020)<br />
<br />
=== Bugfixes ===<br />
<br />
* Put in field names for the risk analyzers saving, so if they have trouble serializing we can see which field it was.<br />
** Also then made it so that the total increase and net increase both are automatically clamped to 0 instead of a negative number so that they won't throw an exception when trying to save.<br />
** Thanks to GreatYng for reporting.<br />
<br />
* When stacks are split, they now have their "time on planet" and "time alive" set to be whatever the original stack was. Same with the amount of cloaking points they have lost, and the number of cloaking points they have left.<br />
** This prevents a variety of abilities from triggering, including the "invincible if only on this planet for x seconds."<br />
** We also made it so that dying to remains does not reset the "time have been alive or on this planet" counter, for similar reasons.<br />
** This keeps the vanguard hydra heads from being insanely impossible to kill, among other issues that are probably pretty much all in the player's favor to have resolved.<br />
** Thanks to crawlers for reporting.<br />
<br />
* Added some extra debugging information for the status of gamecommands that are queued, to see if there are clogs happening. At this point, we can't replicate any evidence of that, though we have some reports from multiple players of it. So maybe the problem either takes a bit to manifest, or is in a different area of the code than we expected.<br />
<br />
* AIP should no longer increase when things die to remains if you have the "ships of X type die to remains instead of dying entirely" galaxy map option on.<br />
** This is untested, but should work.<br />
** Thanks to crawlers for suggesting.<br />
<br />
* Found and fixed the core typo from a few builds back where remains that were being rebuilt were being set to have the cost of the rebuilder, not themselves. This was previously massively overcharging players for building most things, but then once we put on a band-aid to fix that, it started giving it to them for basically free.<br />
** Thanks to Lord Of Nothing for the report and save.<br />
<br />
* Fixed a bug from the last few versions that nobody seemed to notice, where the galaxy map was not centering on planets properly when you first went into the game after loading a savegame. This had to do with when we were calculating the position of the planet, and that not always being calculated before we tried to center on it.<br />
<br />
* Fixed a bug where it was possible that a client would send more commands to the host than it would tell the host about, and thus the host would not know to read the extra ones (or vice-versa). In single-player you are both the host and client, so it still applies.<br />
** This was happening because of multiple threads adding to the queues of commands at the same time that the queue was being drawn down.<br />
** This was actually something that probably could have happened since more or less forever, but it was substantially more likely in the last few versions because of some efficiency improvements we made.<br />
** Additionally, we have now switched to using a ConcurrentQueue for each of those collections, rather than a regular Queue. This should also help with potential contention.<br />
** There was also the possibility that we might not be able to get enough commands out of the list for some reason to then send more, and we are also now guarding against that.<br />
** Previously, this problem was manifesting as orders not being carried out when you gave them, sometimes or all the time. And things like "save my game" and "pause or unpause" not working anymore.<br />
** We were able to duplicate this in one savegame after some time, but no longer can. Given the intermittent nature of this sort of thing, we can't say for sure that it is solved -- but the logic of what was going on makes sense, and the fix we put in should hold that at bay. It's one of those "can't prove a negative" things, at the moment, so fingers crossed it just never shows up again.<br />
** The characteristics that we observed while this happens, if it happens to you and you want to see what you can tell us:<br />
*** In the escape menu, under the memory pooling performance, the number of raw commands were steadily climbing. One or two every few seconds. This should never happen in that way. Increases happen, but not a steady drain flow like that.<br />
*** In the escape menu, further down under the Commands Queued By Type, you may see some null warnings up at the top of that list, now. That wasn't there when we observed it, but it would be if it ever happened now.<br />
** Thanks to zeusalmighty, Puppet Master, Gdrk, and GreatYng for reporting and giving advice on how to reproduce it.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* In our copy of FORGE networking, we've removed some useless extra code that was for the UniversalWindowsPlatform framework, which we won't be ever using.<br />
<br />
* In our copy of FORGE networking, we also got rid of a very useless set of "pending" messages on the UDPClient and UDPServer, which were ostensibly to help with reliable messaging, but in reality was just doing some useless event handling and invocation, and some useless cross-threading locks. It just put the things in the basket and took them back out, never checking the basket or doing anything with it. Thankfully, there is a second basket for reliable UDP inside the UDPPacketComposer, so this was just extra redundancy.<br />
<br />
* Added a new ArcenNetworkClientConnection abstract class, which we now store on ArcenNetworkAuthority in a ClientConnections list.<br />
** These are connections, not yet correlated to specific players. But it lets the network pipe connect up a specific connection with a specific player (or reject that connection if it's not okay).<br />
** Each individual networking framework (ArcenSocket descendent class) is actually responsible for keeping track of these connections and populating them.<br />
** But the actual network authority does the job of authenticating them into a given game and handling the challenge/response work, figuring out a match to a player slot in the game, etc.<br />
** With this in place, we can now get rid of GetNumberOfConnections(), because that's now moved out of the socket and into the network authority.<br />
** This is a substantial refactor, in that it will really make Steamworks and GOG a lot easier for us to work with as networking frameworks, faster.<br />
<br />
* NetworkingPlayer in FORGE now inherits from ArcenNetworkClientConnection, and is the first version of a networking framework using this new pattern.<br />
** On NetworkingPlayer, rather than having a public { get; private set; } for some of the immutable connection things, we now use them as public readonly. This is both more efficient in performance (slightly), but also prevents sync issues between this class and its new underlying abstract class.<br />
** This class gives the information it needs to the base class, and doesn't bother registering the host NetworkingPlayer as an underlying client connection at all, keeping things simple.<br />
<br />
* A bunch of stuff with the FORGE networking logging has been replaced with wrappers around our own logs, so that if there are internal exceptions those don't just go nowhere invisibly anymore.<br />
<br />
* Trimmed out a bunch more old FORGE code that has been commented out for years from the look of things.<br />
<br />
* RespondToNewConnectionAcceptedByTransportLayer() is definitively game code, not part of the actual networking transport layer, and it has been moved into the central codebase and away from any specific networking framework.<br />
** "Hello friend, you've connected: what's your profile name you want to play under?" Etc.<br />
<br />
* A fair bit of the "initial chatter" of clients connecting to a host and the host responding are now logged to the debug log no matter what.<br />
** There really is not that much that is said, and this will certainly help someone at some point who is having some sort of connection issue.<br />
<br />
* When clients are connected to the host, now the host not only shows the number of clients, but also sees their profile names that they have chosen to connect with.<br />
<br />
* A bunch of event-driven stuff on the FORGE networking has been made a bit more inline, improving performance a bit and also reducing certain areas of complexity.<br />
<br />
* The initial challenge-response work, and "what's your name" work, is all functional again. This is stuff that will be identical regardless of the network framework.<br />
** The host can now properly see the profile name of the client, and is poised to send the client back all the world information.<br />
<br />
== Version 2.105 Selection Hotfix ==<br />
(Released July 22nd, 2020)<br />
<br />
* The game still loads various xml files asynchronously, and loads icons and music and sound in that fashion, but it no longer tries to load the ships, shots, or wormholes in that way.<br />
** This was just too unreliable, because of some issues in the unity engine. It didn't affect all players, and not all the time -- but enough that it majorly affected the stability of the game for some folks, and that's too much.<br />
** This also removes the potential for the really long (15-30 second) lag time when you are first opening a new game or the lobby if things didn't load during the loading period.<br />
** Thanks to Ovalcircle for the most recent set of reports.<br />
<br />
* Previously, the game was using a standard List<> object for keeping track of selected ships, and that sometimes ran into inefficiencies and cross-threading issues.<br />
** In the prior build, we tried to fix some of those cross-threading issues, but wound up making things not actually deselect properly.<br />
** To fix all of the above, we've now switched to the much more flexible and robust ArcenLessLinkedList<> object, and adjust the code to handle this. This is both more efficient (not that efficiency is a major problem here), and does not fall victim to the various cross-threading woes that the old style could. <br />
** And, naturally, as part of that, this also resolves the frankly infuriating selection issues in the most recent build of the game. Sorry about that one!<br />
** Thanks to ctl0ve, CRCGamer, Chuito12, and Burner for reporting.<br />
<br />
* Previously, the tech menu only showed techs that would actually benefit a ship you have at present, or which you could capture.<br />
** This was very confusing to a lot of players, as they would not see the entire tech tree and thus think that something was missing or broken.<br />
** In some other cases, possibly due to changes in the recent past, you CAN build something (like a command station), but since you have not done so yet, it would not show up.<br />
** All of the techs now always show up, but the ones that are for ships that would not benefit you right now still show up as red and not researchable.<br />
** Additionally, the tech color shows up as white when it benefits ships you have, gray when it benefits ships that you don't have right now, and lighter gray when it benefits ships that you could capture.<br />
** Please note that since citadel upgrades don't benefit battlestations anymore, the citadel tech not showing from the start was working properly.<br />
** Thanks to Strategic Sage and CRCGamer for reporting the confusion.<br />
<br />
== Version 2.104 Negative Build Percentage Hotfix ==<br />
(Released July 21st, 2020)<br />
<br />
* Somehow or other, it became possible for some self-building ships to go very negative in their build percentage (instead of counting up to 100%, they would be way in the negative percentages of building process). <br />
** This seems to be a new bug in the last day or so, based likely around some changes that we made to improve the cross-thread reliability of the game. The problem is, upon manual code review of the areas that would be relevant, we just can't see anything that looks like a bug.<br />
** Ultimately what is happening is that the SelfBuildMetalRemaining is getting absolutely giant in value, far larger than the original metal cost of the ship that is constructing. This was probably an integer overflow from it going really negative first, and then wrapping back around, but it's hard to be sure.<br />
** We've put in some extra defensive code to make sure that if it goes negative at all, it marks itself as complete. We've also put in protections so that if you "owe more than it is worth" in general, that it will assume that there was an overflow and just go ahead and finish it now. These two changes should help to keep the problem from happening again, and fix the cases where it was already in progress.<br />
** While we were already at it, we put in a small general improvement that prevents you from being overcharged for the last tiny percentage of constructing a ship. If you had a bunch of engineers building, and each frame cycle they normally would do 1.1% of the construction of a ship, and charge you accordingly, then you might wind up in a case where you had only 0.2% remaining work to do, and yet got charged the full 1.1% rate. It is now careful to only charge you for what you would owe, so the 0.2% rate in this example.<br />
** Hopefully there are no other errors in any of the metal flows, with things like drones building, anything engineers would claim or repair, etc. The code looks clean, but then again the code for the self construction also looks clean. In the next couple of days, please let us know if you see anything else that seems amiss with how metal is being charged against you. So far we can't duplicate anything like that anymore, now.<br />
** Thanks to CRCGamer, deso, and Puppet Master for reporting.<br />
<br />
* Some code from yesterday dealing with cross-threading protections let us unfortunately sometimes wind up with runaway DoForSelected loops. This is now fixed, and it has several kinds of self-repair in place to prevent this from happening now.<br />
** Thanks to Gunner for reporting.<br />
<br />
=== Multiplayer Connection Work ===<br />
<br />
* Reworked the NetworkTrafficLog.txt multiplayer output to actually be a lot more informative.<br />
<br />
* GetNumberOfConnectsCurrentlyActive has been replaced with GetNumberOfConnections, which lets the network framework tell us a lot more about the general status of things happening.<br />
** Instead of just a generic number of players that exist, we can see how many are disconnected, how many if any are the host, how many are clients, etc, etc.<br />
<br />
* In the lobby, the host now sees how many connected clients there are, and if there are any disconnected ones, how many disconnected ones there are.<br />
** Previously it just showed one number that included the host and also disconnected clients all wrapped up into one.<br />
** It still isn't detecting disconnects properly in FORGE, but we'll get to that.<br />
<br />
* The host now only bothers sending heartbeat messages if it has at least one non-host client machine connected.<br />
<br />
* Removed some old "desync detected" code that was not fitting with the new plans for multiplayer.<br />
<br />
* Figured out some of why the client was not detecting itself as properly connected, and so was not getting messages from the host at all in the last few builds after the connection.<br />
<br />
* The way that gamecommands are queued and then given out to player simulations for both single-player and multiplayer is now more efficient.<br />
** We're using queues now instead of lists, and this gives us a lower chance of accidentally losing a command, as well (not that we know of that ever happening before).<br />
** This has several performance benefits even for single-player when there are a lot of commands going around.<br />
<br />
* Added a new FromServerToClient_AuthorizeThroughFrameNoCommands in addition to the FromServerToClient_SendNextBatchOfCommandsToExecute, to slightly save on space (1 byte per message) and make the logs clearer.<br />
<br />
* The network log no longer has a time delay built in where it logs only 100 items at a time. It just immediately dumps items to disk.<br />
** Realistically there is only substantial traffic every 100ms or so anyhow, and the delay in logging was incredibly confusing as a programmer working with it.<br />
<br />
* The network polling interval has been updated from 20 times per second to 100 times per second. In practice it will actually be variable, but the polling is extremely lightweight (the part that is on the main thread), and having absolutely minimal delays in getting and sending messages is what will keep things moving smoothly.<br />
<br />
* To make network logging even more efficient and clear, the old ArcenNetworkLogEntry is now ArcenNetworkSendLogEntry, and is now a struct instead of a class. This runs lightning fast and doesn't affect RAM usage.<br />
** We also now are then logging data that is gotten in (which we call TAKE) along with data that is sent (which we call SEND).<br />
** This way we can see the conversation between several machines all interleaved on a single machine's log, and thus figure out why they are saying what they do, and if messages are getting there, etc.<br />
** Surprisingly, the way we were logging things previously really didn't lend itself to that, so it was easy to go down rabbit holes of wrong information (thinking data did not get to a machine when in fact it did).<br />
<br />
* Furthering clarity on the networking side, we're now ignoring loopback messages-to-self on the host in our logs, which previously we were not doing.<br />
** This way we don't get drowned in a sea of stuff that "I'm telling myself in order to be the same as everyone else," and we can just see what is actually passing between machines.<br />
** The loopback stuff has been demonstrably working fine since more or less forever, unless we broke it today, since single-player relies on that.<br />
<br />
* Fun fact, after all these logging changes, we can now actually see how well parts of the networking are already doing.<br />
** As one client connects, the host is able keep talking to itself and/or others without breaking stride, letting the potential connection wait for the challenge and acceptance (not yet reimplemented) before it loops in the new client to the rest.<br />
*** This is a great example of how we can keep people from accidentally messing with the sessions of friends by trying to join during a game, etc. It's the sort of thing that only matters among friends, but it keeps it clean.<br />
** On top of that, we can see now that the reason for the host not noticing when a client disconnects is because it's ignoring the client that has not fully gone through the challenge-response process yet, and so the mystery of how it was "sending messages that failed but didn't flag the client as disconnected" is easily solved (answer: it wasn't sending messages to that particular client yet, because it is smart).<br />
** In general, by improving our logging quite a lot we can see what is actually happening and make sure all of this works properly. The vast majority of this is network-agnostic, which is doubly great. These particular logs will look substantially the same between FORGE and Steam and GOG.<br />
<br />
== Version 2.103 Hotfix ==<br />
(Released July 21st, 2020)<br />
<br />
* Fixed a bug from the prior version where the dark spire serialization fix was making any savegames with dark spire in them -- new or old -- not able to load.<br />
** Thanks to valinor000 and stanazolol69 for reporting.<br />
<br />
== Version 2.102 Digression For Quality ==<br />
(Released July 20th, 2020)<br />
<br />
* Using the "Increase Max Dyson Strength" hack will now also increase the Dyson's general mark level<br />
* Some minor buffs to the Dyson's income, mostly at higher levels<br />
** Thanks to a discussion started by zeusalmighty<br />
<br />
* When picking music (through the debug menu), the hovertext will now give you information on most of the tracks saying the original source<br />
<br />
* Improved the speed of some dictionary lookups by precalculating the ArcenAssetBundlePath CombinedPath.<br />
** This also required us to change their member variables into properties, and in return that meant that the general string fill methods needed to be adjusted to new FillBundle and FillPath methods for xml reading.<br />
** This doesn't affect as much code as it sounds like.<br />
** We also adjusted the various debug logging points to use the combinedpath, which is cleaner and easier to read, but not much faster since that almost never happens.<br />
<br />
* Fixed a bug that could happen with entity order serialization in rare circumstances if threads were fighting over putting items back in or taking them back out.<br />
** Since multiple threads do in fact often use orders, at once, this is one of the few collections prone to that.<br />
<br />
* Fixed a variety of exceptions that could happen based on cross-threading bad luck during the exit of the game either to the OS or to the main menu, all in the metal expenditures code.<br />
<br />
=== Ship Behavior Improvements ===<br />
<br />
* Fix two problems related to shields recovering from being bumped by Astro Trains <br />
** Human Home Forcefield Generators can now recover from being bumped.<br />
*** Thanks to Lord Of Nothing for the bug report<br />
** If a forcefield generator is bumped twice in short order, it will now do a better job of returning to its original location. This isn't perfect, but it's a pretty intense corner case<br />
*** Thanks to Puppet Master for the bug report<br />
<br />
* If there are only non-combatant enemies on a planet, ignore any requirement in the targeting code that particular targets need to be combatants. This prevents ships in FRD from discarding reasonable targets incorrectly. <br />
** Thanks to ParadoxSong for the bug report<br />
<br />
* Actually support Targeting tracing now; you need to set Targeting tracing and the Debug setting that lets you set the PrimaryKey for the unit you want to follow, and you'll get some actual logging. <br />
** Not for the faint of heart; intended only for developers who want to get their hands very dirty.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fix a bug where the 'delete campaign' button wasn't giving the campaign name<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a rare and harmless (but annoying) cross threading exception that could pop up with argument out of range exceptions in RenderShip.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
* Fixed a rare nullref exception that could happen in DoRemovalChecks() on shots, mainly a cross-threading thing.<br />
** Thanks to Lord Of Nothing for reporting.<br />
<br />
* Fixed two possible spots in DoForSelected() where cross-threading issues could sneak in and cause an exception in rare cases.<br />
** Thanks to Lord Of Nothing for reporting.<br />
<br />
* Fixed an issue when loading savegames that have a missing planet naming scheme. It will now default to the default naming scheme if it can't find the one that the world was started with.<br />
** Thanks to Oryutzen for a save that demonstrated this.<br />
<br />
* Fix a bug where the imperial spire wasn't Watching previously explored planets for you.<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fixed an error in TextMeshPro where it would still give us "Unable to use Ellipsis character since it wasn't found in the current Font Asset" invisible errors that would fill up the debug log even if warnings were disabled.<br />
** This was, in very long play, a memory leak as well as a performance drain, and it was generally invisible.<br />
** The ellipsis character was typically something it was trying to find specifically for purposes of showing cut-off text, and some fonts just don't have that in them. So no wonder we couldn't actually find the ellipsis character used in our own text files.<br />
** Thanks to Puppet Master for providing the log file demonstrating all this.<br />
<br />
* Fixed an issue where the stationsRemainingBeforeDepot on astro trains could go arbitrarily negative, thus causing an error on save. It now stops at 0, and thus seems not to cause the issue anymore. But on the change that an astro train does have a data exception during save anymore, it will now log what field is having the problem and we can fix it.<br />
** Thanks to Lord Of Nothing for the report and save.<br />
<br />
* The game has been updated so that the debug logging that is DoNotShow now ONLY goes to the ArcenDebugLog.txt, and not to the unity Player.log. The unity Player.log is kept in memory in a very unfortunate fashion, and in long gameplay this will be extra RAM used that should not be. Probably also extra slowness.<br />
** We added a new DoNotShowButSendToUnityLogEvenOutsideEditor Verbosity option that lets us have the old behavior of going to both of those logs, but we are not using that anywhere at the present time.<br />
** All of this is going to make it even more important that we have both kinds of logs from players if they have an outright game crash, now. But generally speaking, if it's an exception popup but not an outright crash, the ArcenDebugLog.txt has always been enough and will continue to be. It's only when the game crashes all the way to the desktop that we need the Player.log, typically, and now we'll just still need the ArcenDebugLog.txt in addition to that. However, any ShowAsInfo or ShowAsError logs to the main ArcenDebugLog will still appear in the Player.log, so potentially even that won't be true.<br />
** For a developer using the unity editor, it still logs everything to the actual unity log because that's for short testing cases and super useful to see output in realtime.<br />
** At any rate, we are trying to strike a balance between getting the logs we need, easily on the part of players, but without having any accidental extra usage of memory on very long play sessions.<br />
<br />
* All of the dark spire per-unit data is now saved in a format where we can tell which field is having trouble if one does.<br />
** The dark spire data "lastTimeAttemptedLocus" was trying to save as an int16 and would overflow any time a game saved that was more than about 32000 seconds in. Fixed.<br />
** Thanks to RockyBst for reporting.<br />
<br />
==== Memory Leak Fix From 2.099 ====<br />
<br />
* New setting on the debug menu: Show Pool Counts In Escape Menu<br />
** Used for searching for memory leaks, particularly between loads of a savegame. If pool counts keep rising after each load, then something isn't getting put back in the pool properly and is instead persisting lost in memory.<br />
<br />
* ArcenGameObjectResourcePools must all now have a unique name, and they register themselves in a central place that identifies how many of them there are.<br />
** These pools also now keep track of how many objects they have ever produced from themselves, so that if we are leaking objects from them we can tell. And we can tell if we are leaking pools themselves.<br />
** After seeing all of these in the new debug menu option above, we can clearly see that none of these are leaking and they are all behaving just wonderfully. Hmm. But we have a leak somewhere, so let's expand this...<br />
<br />
* Created a new CountedPoolBase abstract class that sits under the ArcenGameObjectResourcePool, and takes its counting capabilities and puts them there so that we can also use them for some other pool types.<br />
** This is also now used on a new "Shot Instance Renderer Pool Of Pools" so that we can tell if we are leaking there. And now ships and squads, too.<br />
** Also this is now used on LoosePool, which is the underlying basis for ship, shot, and squad visualizers (different from instanced renderers) now.<br />
** Despite all this, no memory leak was found in any of these pools. They are all working wonderfully efficiently.<br />
<br />
* ExternalizedPool now inherits from CountedPoolBase.<br />
** Same for TimeBasedPoolBase (and thus TimeBasedPool itself).<br />
** And same for BasicPool.<br />
** And holy cow, there's some sort of memory leak with the time-based pools, looks like, based on this. That makes sense, as we recently reworked some of their functionality to fix a bug with them. Apparently we introduced a new bug at the same time.<br />
<br />
* Added a new setting to the debug menu: Show Details Of Time-Based Pools In Escape Menu<br />
** Used for searching for memory leaks or other bad behavior on a certain very high-turnover series of pooled objects. If pool counts keep rising, or other numbers seem off, then we know we have a memory leak or a performance problem.<br />
** Thanks to Puppet Master, RockyBst, Lord Of Nothing, and NRSirLimbo for reports that led to us finding this.<br />
<br />
* Fixed a MAJOR bug from version 2.099 that was leading to a memory leak in general, and performance problems as well (the longer you played the slower it would get).<br />
** Our entire "time based pool" logic was not actually properly processing because we forgot a single line of code, go figure.<br />
<br />
==== Slow Load Or CTD Fix ====<br />
<br />
* Since we started using the asynchronous loading of asset bundle items using unity (the last few weeks), there have been some intermittent problems with certain random items not loading in properly. This is some sort of funky bug in Unity, we're pretty positive.<br />
** We solved that problem a week or so ago by checking the async request's asset property, and if it was not invalid, forcing it to finish loading even though it was stuck.<br />
** On most machines, this was causing a really annoying lag of 10-25 seconds while Unity did whatever it was doing to finish that load. That was really annoying, but only happened the first time you loaded a savegame or quickstart or custom lobby after starting the program, and not every run of the program, and not on all machines.<br />
** More recently, we discovered that the very act of checking the async request's asset property would cause an unrecoverable error deep in unity and an immediate crash to the desktop.<br />
** Killing two birds with one stone, we're no longer checking the async request asset property at all -- thus avoiding the crash -- and instead just do a normal synchronous load when we detect a failed load. This leaves the one async request in limbo kind of forever, but that shouldn't be a problem; if it ever decides to complete, it will see that it was already completed and just do nothing.<br />
** In the meantime, not only should this avoid the crash, but it should also avoid that awful lag spike that happened for those for whom it didn't crash.<br />
** The downside is that on our dev computers we haven't been able to replicate the error at all today, so we can't verify that this 100% works. It should work, and you should see in the arcen debugging log slightly differently that says "PrototypeObject failed async load and so loaded synchronously for [some stuff] (this is not a problem, but is odd)"<br />
*** If you're one of the people who were frequently seeing either the crash, or seeing the older "PrototypeObject fixed and loaded late for [some stuff] (this is not a problem, but is odd)" message, then we'd love to have a confirmation of you seeing the new message and all being well.<br />
** Thanks to Sol and RocketAssistedPuffin for reporting.<br />
<br />
== Version 2.101 Connection Status: Confirmed ==<br />
(Released July 17th, 2020)<br />
<br />
* Carriage returns and newlines are now supported by the "condensed" string format. This will prevent tutorial messages from turning those characters into question marks when they are dumped to the chat log. Note that this will only affect chat log messages logged in this version and on, not past versions.<br />
** Thanks to ParadoxSong for reporting.<br />
<br />
* The left and right click functions of the metal display have been switched to be more natural.<br />
** Thanks to Waladil and Galian Gadris for suggesting.<br />
<br />
* The "Spire Railgun Shop" mod that comes packaged with the game has been updated to use the icons from their new locations, and will no longer error.<br />
<br />
* We've reworked our "Window_PopupScrollingColumnButtonList" a bit to add some new handy features for us.<br />
** In the factions selection window, when you are adding new factions, it now still lets you see factions that you can't add because there is only one per galaxy, but now it shows them in red, doesn't allow you to select them, and explains why in the tooltip.<br />
** In the debug menu in the escape menu in the main game, the change music submenu now shows the current selection in red (with the note that you can't change to it because it is already playing), and it shows all of the options sorted alphabetically except for the current track, which it shows as the first item.<br />
*** Also fixed a bug where the music you selected to play would not actually be the track that played; it was choosing a random other track.<br />
<br />
=== Scourge Updates ===<br />
<br />
* The hovertext for the Scourge "Strength" in the game lobby now tells you what the strength does (more scourge ships/structures, and faster).<br />
<br />
* Add a "Sandbox: Extra Strong Mode" for the scourge<br />
** This is not balanced for regular play, but is intended as a sandbox thing.<br />
** Thanks to Avenger1649 for suggesting<br />
<br />
* Fix a bug where the scourge were periodically suiciding Defensive Fireteams into player positions.<br />
** Thanks to ParadoxSong for the save.<br />
<br />
* On intensities >= 5, the scourge can create cloaked "blockade running builders" if the player has tried to blockade the scourge into a small region of the galaxy<br />
** Thanks to ParadoxSong for the suggestion<br />
<br />
* On intensities >= 6, the scourge is intended to sneak a builder off to another part of the galaxy at the beginning of the game, to make it much harder for the player to blockade them in. This was not working on some map types, including the X type.<br />
** Thanks to ParadoxSong for the save that exposed this problem.<br />
<br />
* These changes should make the scourge much harder to deal with in general, and on the X map type in particular.<br />
<br />
=== Initial Multiplayer Connection ===<br />
<br />
* AllowOtherPlayersToConnect was a setting on the World object in the past, and thus something that was getting saved into savegames and that dictated how a lot of things worked for player connections.<br />
** We've removed this concept, and instead are making it based on the menu choices you make on the main menu.<br />
** We now have a DesiredMultiplayerStatus on ArcenNetworkAuthority, which lets us recall if you wanted to be the client, a host, or just left alone in single player.<br />
<br />
* The basic shells of SteamSocket and GOGSocket have been added to the game. The in no way function yet, but this will allow for them to be built out in the future.<br />
<br />
* The SpecialNetworkType has been moved into ArcenUniversal, and is now copied onto ArcenSocket along with the InternalName of the row that created the socket.<br />
** There is now a list of AllPossibleSockets on the ArcenNetworkAuthority to allow it to swap between sockets as needed, and particularly by type.<br />
<br />
* When you open the multiplayer menu, if you have that enabled, it will now set a default network framework for you based on the status of your game at that time.<br />
** If you are logged into Steamworks, it will set steam as the default network.<br />
** If that didn't work or wasn't true, and you are logged into GOG Galaxy, it will use that as the default network.<br />
** If none of those worked, then it will pick the first "other" network type, which in this case would be Forged.<br />
<br />
* All of the options in the multiplayer menu for hosting a savegame, quickstart, or custom game now properly do those things identically to as if it was the single-player menu, but put you into host mode first.<br />
** The single-player menu puts you into single-player mode, and makes sure that your ArcenSocket is set to NullSocket.<br />
<br />
* When you try to go into one of the client or host multiplayer areas from the multiplayer menu, it now properly activates your most recent chosen network framework, or switches to the first available one that actually can function right now on your system and gives you explanations for why it did that.<br />
** Essentially there is a fair bit of under the hood plumbing now for the frameworks to register themselves with the network authority class and explain about their availability.<br />
<br />
* If you are looking to connect to another machine, then the "connect as client" tooltip now gives you information about what to expect based on your currently-selected framework.<br />
** Are we connecting by IP? How much of a hassle will that be? Is it going to be by selecting a friend on Steam or GOG? Etc.<br />
<br />
* For IP-address-based networking frameworks, either starting a host mode or client mode event now pops up with a message explaining what information you need to give to the client players or get from the host.<br />
** This is not really the preferred networking method unless you're having a LAN party, and the game makes that clear, but it also goes out of its way to address the most likely areas of potential confusion for people who are using these frameworks.<br />
<br />
* Fixed a few bugs, and added a bit more debug logging clarity, so that the host can once again properly open a socket and wait for connection.<br />
** This was working up until a week or so ago, and was simply messed up a bit when we reworked things to support multiple networking frameworks. There were lots of lonely hosts never getting any client requests ever since the game has been in public beta.<br />
<br />
* When you quit out of the multiplayer lobby back to the main menu, it now immediately disconnects you as a host or client, to avoid confusion of lingering connections.<br />
<br />
* When you are in the lobby in multiplayer, the chat sidebar/log now appears again. At the top it says if you are hosting multiplayer or a multiplayer client.<br />
<br />
==== Choosing A Networking Framework ====<br />
<br />
* The main menu has been updated so that the "network" button at the top of the multiplayer menu now updates its text to show the current network.<br />
<br />
* The network button at the top of the multiplayer menu on the main menu is now fully functional. It shows available network frameworks, and gives you explanations for each one, as well as showing unavailable ones in red with an explanation for why they are not available right now. It lets you select from available ones, which then get set as your current socket when you try to host or join a multiplayer game.<br />
<br />
==== What Is My IP Address If I Need It? ====<br />
<br />
* In the networking section of the settings menu, it now has helpful informational displays of your local IP addresses and your public IP address.<br />
** To get your public IP address, we have to make a public call to the url http://checkip.dyndns.org, so this may flag your software firewall to ask permission when you go to the networking tab now.<br />
** Our goal is of course for you to not have to use your direct IP addresses at all in this game, but if you're playing on a LAN then that would be one great example of when you'd want to use this.<br />
** At any rate, each IP address is stored in a textbox that you can copy-paste from, which is very handy when sharing with friends.<br />
** There are also lengthy explanations about what the public IP address is for, and under what circumstances to use it, as well as the local IP addresses, plus special notes for any IPV6 addresses that it detects.<br />
** Getting this data is time-consuming for your computer, so you will notice micro-lags every few seconds while you are on the networking tab, now. This is normal and should not impair your use of the functionality.<br />
<br />
==== Milestone: Successfully Connecting A Client To Host ====<br />
<br />
* The old interface for network connections by IP address is restored and works again. We'll have a different one for connecting via friends list on Steam and GOG, later, but this is the one that gets used for Forge and any other IP-based network frameworks.<br />
<br />
* Connections are now able to be established from one computer to another, for the first time since 2018!<br />
** We added the ability to see how many clients there are connected to a host in the lobby (including the host), so you can see the connection tick up.<br />
** Next up is them actually exchanging enough information to get the client into the lobby and have them see shared world info and be able to chat and all that. But this is milestone one!<br />
<br />
== Version 2.099 Last Rabbit Holes ==<br />
(Released July 15th, 2020)<br />
<br />
* There is now a galaxy setting to grant players Watch vision for 1, 2 or 3 hops from all command stations.<br />
** Thanks to uhamster9 for inspiring this addition.<br />
<br />
=== Fixes And Tweaks ===<br />
<br />
* Improved the way that time-based pools are incremented in time, so that we're never having accidental cases where we miss one.<br />
** Also made it so that they actually work as intended when the world is being cleared (running 16 seconds' worth of time at once). This then keeps the pools smaller if you repeatedly load savegames.<br />
<br />
* On the escape menu, under where it shows you the various numbers of objects in memory, it now shows you the number of galaxy planets and planet links activated and in existence.<br />
** This lets us tell when these have a memory leak, if there ever is one with them.<br />
<br />
* Additionally, galaxy map links are now pooled for the first time ever, as the discarding of them was previously a definite memory leak. Normally this just happened between saves and loads, but it was also possible to happen when nomad planets moved.<br />
<br />
* In addition to the existing time based pools, we now have a new ExternalizedPool.<br />
** This is now used for the galaxy map links, and actually we have stopped the galaxy map planets themselves from using the super-old IArcenGameObjectResourcePoolable and they also now use this.<br />
<br />
* The way that planets for the galaxy map are initialized, and the way that their positions are set, is completely overhauled.<br />
** This is more efficient and properly uses pooling (which never was working properly before, it turns out).<br />
** It also makes the position of planets automatically react to them having moved in the game sim, without having to do anything special.<br />
<br />
* The arcencolors asset bundle has been removed, with its contents simply rolled into arcenui. Ultimately this is a bit faster to load, and saves a bit of disk space and RAM also.<br />
** Also removed the aiw2squads bundle, and the examples bundle.<br />
*** The examples bundle simply has its example content still there, but not in a bundle (it's to help aspiring models modders).<br />
*** The squads bundle is old data that we've not used in forever, and so has just been cleared out. It wasn't huge, but wasn't worth being there.<br />
<br />
* Starting to load a savegame (including for a quickstart or the last settings for a lobby) now writes to the log when you start the process, and at the end of the process writes how long it took.<br />
<br />
* Added a new debug setting: "Write Detailed Savegame Timings"<br />
** When loading a savegame, including the 'last settings' for the lobby or the basis for a quick start, keep track of detailed timing data and write that into the normal debug log so that it's clear what is taking longer and shorter amounts of time.<br />
<br />
* It turns out that chasing "why savegames now take 16 seconds to load sometimes" was a snipe hunt. The serialization sizes logging, when enabled, actually was causing that amount of slowness. With that off, it loads in about 2 seconds.<br />
** The extra instrumentation that we added for the savegame timings is still nice, but ultimately was not a useful bit of time spent at the current moment.<br />
<br />
* Fixed an issue that could happen in the lobby in particular where it could not properly save your prior settings because the fleet ID or speed group ID was lass than zero.<br />
** This pretty much could only happen if you already had another error first.<br />
<br />
* Fixed an exception in SeedNormalEntities that could happen if you rapidly tried to regenerate maps in the lobby in just the wrong way.<br />
<br />
=== Under The Hood Improvements For Icon Modding And RAM Usage ===<br />
<br />
* The last of the icons from the ExternalIcons folder have been moved into the unity project that generates the asset bundles, simply to dispel any potential confusion about the fact that they can be edited directly and that have some change on the game without recompiling asset bundles. This was a frequent modder confusion.<br />
** That said, the ones that were in the Official_1 folder are now in a CentralIconBits, and can now be used in the UI for the first time if we ever want to. That means things like health bars and whatnot could in theory be used in the ui if someone wanted to, whereas before they could only be used on gamespace-level icons.<br />
<br />
* Cleaned out a variety of unused icons from the arcenui asset bundle, and in general tidied up some of our organization of working files versus final files.<br />
** Also standardized the naming of certain things.<br />
<br />
* Broke the "official icon dictionary" out into six dictionaries:<br />
** One is for the "central bits" like health bars and so on, and would be the same for all ships.<br />
** Two are for the overlays, like for saying what kind of starship or guard post something is. There can be more than one of these, and the fact that these are split out like this demonstrate the modding capabilities and how things can combine.<br />
** Three are for ship icons and their borders, and there can be more of these modded in as well. As with the overlays, not only does this demonstrate how such mods would work, but it also has the side benefit of slightly less VRAM usage in a few cases.<br />
<br />
* The way that GUI icons are discovered from the xml based on their gamespace-icon counterparts is completely revised, and is now based on extra information in the ExternalIconDictionary entries.<br />
** This is a lot more flexible, and allows us to load icons from multiple asset bundles and/or multiple files within the same bundle.<br />
<br />
* The naming for finding icons is now much more complicated, in the sense that they don't all come from a single dictionary called "Official."<br />
** So there were over 1100 places in the base game and expansions where we've had to modify to point to the new dictionaries. Any mods would also need to be updated to point to the new places, unless they want to start using their own icons (once we put together a tutorial for that).<br />
<br />
* The external sprite dictionaries have been updated to be able to properly load in in multiple threads.<br />
<br />
* The game is now able to load the xml files for external icons from any mod or expansion, in:<br />
** Expansions/[ExpansionName]/GameData/ExternalIcons/[thefile].xml<br />
** XMLMods/[ModName]/ExternalIcons/[thefile].xml<br />
** XMLMods_NonDistributed/[ModName]/ExternalIcons/[thefile].xml<br />
** It's worth noting that these are xml files that are generated by Texture Packer, not xml that we create.<br />
** These files are referred to in the "ExternalIconDictionaries" xml as something along the lines of xml_path="Official_CentralIconBits.xml"<br />
*** It will then search the main game's folder (/GameData/ExternalIcons/[thefile].xml), then all the expansion folders, then any activated mod folders for a file with that name that was specified.<br />
** This allows for mods to be self-contained when it comes to their icons, and it allows expansions to have their own icons that are not packaged with the main game (not that we have imminent plans to do that).<br />
<br />
* On the icons used in the game, we previously were not using any compression, which made them absolutely massive in size (80mb for the main dictionary).<br />
** This was done in order to preserve quality, but we're also using GIANT icons in order to allow for really super-high-res displays of the future, as well as square ones to allow for ideal mipmaps, etc. So the lack of compression was hugely overkill.<br />
** We're now using compressed textures, which turns what was 80mb into more like 8mb. This has a very direct impact on performance and VRAM usage, so particularly on low-spec machines they will likely run far better.<br />
<br />
* The game now automatically constructs custom "gimbal materials" for the in-gamespace icons, in as many combinations as are needed for the things that it has drawn for you so far.<br />
** The total number of materials always in the past was "one," but it was using a single large dictionary and a lot more VRAM -- and it had a finite amount of space for things. There was a solid chance we were going to run out of space in that one dictionary as part of implementing DLC2. But either way, mods were not possible. The new number right now is 8, looks like.<br />
** Now it may make a handful of materials, depending on how many mods you have installed that have custom icons, and several for the core game and expansions itself. But these are vastly smaller, and while this does increase the number of "draw calls," each material is still mostly instanced together (there are a few mesh differences depending on if there are health bars shown or whatever), but the overall load on the GPU pipeline is lower.<br />
** All of this is automatically handled by the game in as efficient a pattern as possible, and if you're curious how many combination materials it has created, you can see that in the escape menu at the bottom of the list of memory pooling info.<br />
<br />
* A new debug setting, "Log Gimbal Icon Material Creation", has been added:<br />
** When this is on, any 'gimbal icon' material creation events will be logged as to what was created and how long it took to do so.<br />
** Turns out that this uses an immeasurably small amount of time for each material (less than 1ms each), so that's awesome.<br />
<br />
=== Under The Hood Improvements For Mods With Code ===<br />
<br />
* The game is now able to load dlls from mods or expansions, rather than just from the central game folder.<br />
** This works just like the external icon files, and basically looks for the dll in the central game folder first (/GameData/ModdableLogicDLLs/[thefile].dll), and then looks at expansions and then installed mods if it can't find them.<br />
** The paths are:<br />
*** Expansions/[ExpansionName]/GameData/ModdableLogicDLLs/[thefile].dll<br />
** XMLMods/[ModName]/ModdableLogicDLLs/[thefile].dll<br />
** XMLMods_NonDistributed/[ModName]/ModdableLogicDLLs/[thefile].dll<br />
** We really don't have a need to do this with expansions, but the flexibility is nice.<br />
** With mods that are more than just xml, however, this finally lets a modder distribute just a single folder that has everything in it, and not have to worry about putting some things in central game folders.<br />
** This is only partially tested, but should work.<br />
<br />
* It's worth pointing out that expansions and mods already did (and still do) have the capability to load asset bundles (icons, music, sound effects, models, textures, shaders, etc) from their folders.<br />
** The structure for those is /GlobalBundles/ in the main folder for anything not platform-specific, /AssetBundles_Linux/, /AssetBundles_OSX/, or /AssetBundles_Win/ for the things that are.<br />
** Inside the folders for expansions it is: Expansions/[ExpansionName]/[OneOfTheAboveFolders]/<br />
** Inside the folders for mods it is: XMLMods/[ModName]/[OneOfTheAboveFolders]/ or XMLMods_NonDistributed/[ModName]/[OneOfTheAboveFolders]/<br />
** None of this is new, but it's worth mentioning for now.<br />
** This is only partially tested, but should work.<br />
<br />
=== Larger Gamespace Icons And Fixed Galaxy Map Line Offsets ===<br />
<br />
* We also now have a non-billboarding version of our shader for purposes of our icons on the galaxy map.<br />
** Our core shader does on-GPU (read: hyper efficient) billboarding to always fully face the camera. This is very useful in the main view where you are moving around the camera a lot but always want the icons to face you.<br />
** The downside, however, is that with a largely-straight-overhead camera like the galaxy map uses, this billboarding would cause there to be a perspective shift where the icons for planets would get offset from the lines leading between planets no matter what we did. It also caused them to move relative to the text that was next to them.<br />
*** This offsetting of the lines to the planets was one of the largest "visual papercut" issues that we've had for a really long time, and it is finally fixed!<br />
<br />
* The ship icon scale has been adjusted from a default of 1.5 to 2.2, and will affect all prior settings files.<br />
** It's description has also been updated for the personal settings tooltip: For the icons in the main display area (not the sidebar), how large should they draw? Default is 2.2. If you go too large, it can be hard to see things because they overlap too much. If you go too small, they can get extremely blurry because of flipping to a lower mipmap. The larger your screen DPI, the smaller you can go without losing clarity.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Building Multiplayer]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Paradigm_Shift&diff=39873AI War 2:The Paradigm Shift2020-08-11T15:31:28Z<p>Keith.lamothe: /* Version 2.117 */</p>
<hr />
<div>== Known Issues ==<br />
<br />
* Any bugs or requests should go to mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* '''Multiplayer is disabled but coming very soon.''' We first focused on tightening up the single-player loop ([https://forums.arcengames.com/ai-war-ii/from-the-dev-notes-on-where-i'm-at-regarding-multiplayer-right-now-(729)/ more info here]), so thanks for your patience!<br />
<br />
=== Multiplayer Remaining Todo List ===<br />
<br />
==== Short-Term Work ====<br />
<br />
* Client bugs in lobby:<br />
** Chat sent from client shows up twice on host and not at all on client.<br />
** Chat from client shows up on host as "Player 2" rather than the proper name.<br />
** Why are we able to spam randomize messages and have that get away from us?<br />
<br />
* Automatically create a new faction for joining human players, maybe?<br />
<br />
* Properly auto-assign colors from players across the network, instead of overriding from local like we do right now.<br />
<br />
* Show when clients are in spectator mode, or what faction they control.<br />
** New section above chat textbox that shows all of the player accounts for all clients and the host, with the proper names in place.<br />
<br />
* Allow clients to assign themselves (or be assigned) to player factions.<br />
** As many clients can share a faction as want to, no problem.<br />
<br />
* Add ability to name factions, separate from the name of the player controlling them (since it can be controlled by several players).<br />
<br />
* Issues after getting into a game with client as spectator:<br />
** The background on the starting planet is not set properly for the host, it seems like? At least it is inconsistent for the host and client.<br />
** The host's homeworld shows up as a regular planet for the spectator, not as a homeworld.<br />
** There is a notable difference in the timing of command execution between the client and the host, which is strange and makes it seem like the client is a bit behind. This is a multi-second delay, which is extremely strange.<br />
*** It's also already desynced on primary key IDs for all except the starting units, which is a problem we knew we would have and were planning on dealing with. In some ways it's nice to see it happening so immediately, since that makes it easier to chase down.<br />
<br />
==== Before Alpha ====<br />
<br />
* Re-code GameCommands to be more efficient and special-purpose. This is probably a job that is a couple of days long, and will potentially lead to widespread bugs for a week or so after it.<br />
<br />
* V1 of the desync detection and correction code, which should probably only take a few days.<br />
<br />
==== Before Beta ====<br />
<br />
* The other features on multiplayer, mainly regarding things like donating fleets between one another, and/or whatever else we come up with that is desirable.<br />
<br />
* Make the desync detection and correction able to correct factions, not just ships.<br />
<br />
* The really big one that remains is making sure that the cross-machine identifiers (PrimaryKeyIDs) are consistent between machines. I don't fully have this figured out yet, but I think that the interim state of it will essentially be that there are occasionally too many messages being passed around because of rolling sync errors. I will probably punt this issue into something I look at during the alpha, so that I can gauge what sort of impact it really has on performance, and where the problems are coming from.<br />
<br />
* Make sure that the lobby fully works as we expect, and various other small UI systems to get multiplayer basically playable. A lot of work went into the lobby in particular in the last few months to make that as close to as ready to go as possible.<br />
<br />
==== Before Full Launch ====<br />
<br />
* Whatever changes we need to make to balance in order to make things "feel right," which will be a matter of working with the multiplayer alpha and beta testers. A lot of things we already did in the past, like making science collection a humanity-wide thing that each player gets a copy of, rather than something people have to do individually (what a pain that was in AIWC). We will have to scale waves like we did in AIWC multiplayer, or in some other fashion. But a lot of the difficulty scaling is inherently handled by AIP being higher when you have to take more planets in multiplayer.<br />
<br />
* If we're seeing network degradation or other issues due to the constant need to sync errors, then that will be to be investigated and improved. But those things are most of what the focus of the alpha/beta will be on.<br />
<br />
* Host and client are still exchanging a bunch of no-op commands in the lobby for some unknown reason. I guess that really doesn't matter, as they are next to no data. This probably does not matter, but we'll keep an eye on it. <br />
<br />
== What's this phase all about? ==<br />
<br />
We've been preparing for this for months, tightening up the codebase and getting everything ready as much as possible. Now it's time to start having machines actually talk to one another, and then refine from there. At this point, LiteNetLib, Steam, and GOG Galaxy are all fully working as communication frameworks, but now the game itself needs to fully handle all its logic properly on top of those. You can see at the top of this page what the current todo list is. We expect to be into beta of multiplayer in August. Hopefully the alpha and beta periods are both short due to all the work of the last phase, but we shall see how it shakes out.<br />
<br />
Once we get into a stable beta period for multiplayer, then we'll let the clock run a bit and Chris will work on adding interplanetary weapons to the base game as a free update (that's the last of the kickstarter stretch goals). This phase should wrap up all our kickstarter promises (including a laundry list of other smaller items).<br />
<br />
Badger has already done the bulk of his work for the second expansion, Zenith Onslaught. Chris has done none of his work for that, as yet. Once multiplayer is in the "let it exist in beta and have people bang on it" phase, then Chris can circle in and get his work done for DLC2 along with those base game bits for interplanetary weapons, etc. The full version of multiplayer should launch alongside of DLC2, but we're not sure exactly when. October?<br />
<br />
Either way, multiplayer will be in a solid state that is "beta but just because we want more time with more people testing it" for a month or so while the DLC2 work from Chris's end happens. None of the actual multiplayer stuff is delayed in any fashion for DLC2, it's been the other way around.<br />
<br />
== Version 2.117 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Scourge: fix a bug where player-allied scourge were building tons of Builders but no Fortresses (they were mistakenly thinking they were minor faction allied)<br />
** A number of people on discord noticed the lack of Fortresses<br />
<br />
* Potentially fix a bug where Regenerator Golems were regenerating things while crippled<br />
** Thanks to crawlers for reporting.<br />
<br />
* AI Reserves now will create anti-player zombies.<br />
<br />
* Take another stab at 'adjacent planets watched'. Sigh.<br />
<br />
* Fixed an issue where on computers without GOG Galaxy installed, they would get a harmless-but-annoying error message at game startup.<br />
** Thanks to Badger for reporting.<br />
<br />
* Minor tweak to target list planning; use a case insensitive comparison for zombification.<br />
<br />
* The 'total units' count should now include stacks.<br />
<br />
* Fixed a bug where deathgrip tackle drones had a gun that could shoot immobile targets, greatly confusing their logic. That gun now has the only_targets_mobile_units flag.<br />
** Also fixed a bug where tackle-drone-launchers could give their spawned drones a direct attack order to go after an immobile unit.<br />
** Thanks to tadrinth and RocketAssistedPuffin for the reports leading to these discoveries.<br />
<br />
* Ion Cannon Shots can now:<br />
** Damage both the personal shields and hull of a target in one shot (including killing it outright).<br />
** Kill multiple ships in the same stack in one shot.<br />
** Thanks to GreatYng for pointing out the oddity of Ion Cannons not being able to do these things.<br />
<br />
* AOE shots can now hit any enemy bubble shield overlapping the explosion, rather than only being able to hit the shield if the generator (or something it's protecting) were physically within the explosion.<br />
** Thanks to NRSirLimbo for reporting and RocketAssistedPuffin for the save.<br />
<br />
* Crippled units (i.e. player flagships) can now pass through enemy bubble shields and traverse wormholes covered by them, to avoid being stranded in hostile territory.<br />
** Thanks to tadrinth for reporting and RocketAssistedPuffin for the save.<br />
<br />
* Melee units in attack-move mode will now go after units within a limited range (equivalent to a weapon with range=Normal1), so you have a middle-ground between "only attack your direct target or things actually touching you" and "pursue anything on the planet".<br />
** Also, even when not in attack-move mode, player melee units without orders (and not in hold-fire mode) now automatically move to attack nearby targets. If all such targets die or move away, the melee unit goes back to where it was.<br />
** Thanks to OzoneGrif, wm46, RocketAssistedPuffin, and Ubifan for the suggestions and saves leading to this change.<br />
<br />
* The AI "Great-Turrets" are now simply called "Turrets" again, as at this point balance-wise the player turrets and AI turrets are similar.<br />
** Thanks to GreatYng and RocketAssistedPuffin for bringing this to our attention.<br />
<br />
=== Multiplayer And Lobby Work ===<br />
<br />
* Heartbeat messages from the client to the server and vice-versa are now omitted from all of the networking logs. They were making things far too cluttered for us to be able to see real information when we had network logging of various detail levels turned on.<br />
<br />
* Some excessive logging on GOG and Steam with regard to their send result statuses has been removed, as again this was clogging up our network logs.<br />
<br />
* The clients now have a secondary FromClientToServer_SignalDoneButHasNoCommands that they can send in place of the FromClientToServer_SendMyNextCommandBatch when they don't have any commands to send (which is most of the time, statistically).<br />
<br />
* GameSpecificNetworking now has a DoPerFrameLogic() method, which lets us efficiently set some per-game settings like we do for the arcen debugging stuff.<br />
<br />
* New setting in the Network section of the settings menu: Network Logging Includes Frame Auths.<br />
** In the lobby and during gameplay, there are messages sent by the network every 100ms or so to keep themselves in sync, and if you have them included they will tend to crowd out the rest of the messages that are sent. So by default these are disabled.<br />
<br />
* New setting in the Network section of the settings menu: Network Logging Includes Command Batches.<br />
** In the lobby and during gameplay, there are messages sent by the network as frequently as every 100ms, but more often some sporadic multiple of that. This is how factions tell everyone what they want their ships to do, and how human players say the same. There's very little that we can say about this in a meaninful way in the networking log level, and again this will tend to crowd out the other messages that happen. So by default these are disabled, but bear in mind that most things that players actually cause to happen are being caused through these batch messages.<br />
<br />
* Found and fixed a general issue where the player accounts were not properly being cleared (and fully resetting the player account IDs) during all cases where a game is loaded into the lobby. At a bare minimum, it was affecting the "open a custom game with my last settings."<br />
** That would have eventually led to out of bounds exceptions, over time, and in general was cluttering up some areas important for multiplayer, but it had not had a negative impact on anyone so far.<br />
<br />
* Fixed a bug that was causing all sorts of craziness on clients in multiplayer in the lobby, with them not getting their galaxies full cleared.<br />
** This was leading to things not being properly in sync between the client and host, like planet names or locations, and things like extra planets or planets in old locations, or noninteractive planets at a whole other scale visually from the real planets. It was quite messy! All of that is now corrected, thankfully.<br />
<br />
* In the lobby, when you change the number of human factions, it now regenerates the map immediately. For other factions it does not bother, never has, because there's nothing different to see at this point in the galaxy.<br />
<br />
* The WorldSetup objects now have a readonly SetupTypeName on themselves, so that we can tell what they are.<br />
** ChangedSinceLastMapGenCall on this same object is now a property, which lets us throw out debugging messages when it is being triggered for whatever reason.<br />
** Something has been causing extra calls to be sent through the map generation pipeline in a redundant fashion that makes everything slower than it needs to be.<br />
<br />
* Removed the ability to send a WorldSetup object via GameCommand, as that is actually highly antithetical to the way we edit that data as of the last year and a half or so.<br />
** We specifically try never to adjust the entire thing, because several players at once could be editing different parts of it and we want those bits to all merge at once.<br />
** Got rid of the SetupOnly_ChangeSetup GameCommand, which was set to use this sort of thing.<br />
** Got rid of the LobbyWorking_HasBeenChangedAndShouldTransmitChanges() method on WorldSetup, which was being used by a loop in the footer to keep clients up to date.<br />
*** The problem with this is that this was far older code, back from perhaps 2017, and it was using an older and more sledgehammer-y approach to try to keep clients and the host in sync. When the lobby was redone in 2019, this became obsolete but was still hanging around and so caused some nontrivial chaos.<br />
** LobbyWorking_HasBeenChanged() has also been removed, as it seemed duplicative and was no longer in use perhaps?<br />
*** Oh goodness, this was actually how we were ever updating the long-term stored version of the game (as opposed to the lobby working copy). This was not a good way to do it, but it was not quite as antiquated as we thought.<br />
<br />
* Fixed a rare nullref exception that could happen in the ships sidebar if you were not properly on an actual planet.<br />
<br />
* Fixed an issue from the last few months (probably) where if you had an error during map generation, it would still try to dump you into the world and then give you tons of other errors. It should have been stopping you and making you fix whatever was wrong.<br />
** This is most common when there are not enough planets for all the factions you have chosen, or a few other rare cases. One such case is just discovered internally, and that's you having a planet starting index that is higher than the number of planets currently in the world.<br />
<br />
* Helper_AssignHumanHomeworld() and the AI variant are now Helper_TryAssignHumanHomeworld() and an AI variant.<br />
** It was already quite possible for these to fail if the player had selected something invalid, such as previously having clicked a planet with an index above 40 and then choosing a map size of 40 planets.<br />
<br />
* The game now auto-assigns humans a planet that is valid if they don't have a valid option, and it does so in a multiplayer-compatible fashion.<br />
** Previously this tried to do the assignment, but did not do so in a way that worked, and even if it had worked it would have only worked for one player.<br />
** This also includes a new sub-gamecommand, StartingIndex_FromAutoAssignInMapgen, which efficiently lets the UI know what is happening without triggering an extra map generation cycle or accidentally overriding a distinct change made by the player.<br />
<br />
* The lobby is now substantially more responsive even in single player, although it seems to be having some extra calls that we are still hunting down.<br />
<br />
* Fixed an annoying issue that was causing an extra regeneration of the map to happen when you first went into the lobby in single player or as the host, leading to the lobby load time being half a second or so longer than it should have been.<br />
<br />
* Fixed an issue where if one person in the lobby adjusted the following fields, it would not be reflected for the other players in the GUI (but would in the map itself):<br />
** Planet naming style.<br />
** Map type.<br />
** All of the other map sidebar controls were showing things properly and also able to be controlled from any client or the host.<br />
*** Do bear in mind that if you manually enter a map seed, it won't appear for the other players until you hit "Regenerate Map," but given that does not actually affect the map until that button is pressed, this should not be overly surprising.<br />
** All of the faction controls and their sub-controls have been workign properly from the start, and still seem to be.<br />
** Same thing with the galaxy option controls (all of them), which is pretty exciting.<br />
<br />
* The "Campaign Name" is something that is only for savegame management, and thus is only relevant on the host side. The clients now see "Will be set by host" as the text in that box, and cannot change it.<br />
<br />
* The "Start Game" button is also something that we are limiting to be host-only, for a variety of reasons. The biggest is that they need to set a campaign name, but that's entirely host-side.<br />
** Clients clicking this button now get a message that asks them to wait for the host to do it.<br />
** Actually, for the sake of ease of use, the "Reset To Defaults" button and this one are just hidden on clients in multiplayer. Clicking Reset to Defaults on a client results in an error for a lot of good reasons based on how it is trying to accomplish that.<br />
<br />
* All of the lobby controls now seem to work properly for both the host and client. There are still some things in chat that are messed up, and we're missing controls for making clients not always be spectators, but we can also get into the game.<br />
<br />
* Fixed the harmless but annoying "StartingIndexChanges: factionIndex 1 passed when faction count was 0" error message that would happen on clients after a host gave orders to start.<br />
<br />
== Version 2.116 GOG Networking Done ==<br />
(Released August 6th, 2020)<br />
<br />
* Fix a bug where the 'Watch Extra Hops Worth Of Planets' code was being applied incorrectly<br />
** Thanks to Tynendir for reporting.<br />
<br />
* Fixed a bug where Macrophage Spores don't move to new planets when loading a second save game.<br />
** Thanks to GreatYng for reporting, and StarKelp for fixing.<br />
<br />
=== Milestone: GOG Galaxy Networking Integration Complete! ===<br />
<br />
* The Arcen GOG Wrapper has been majorly updated to get your GOG Galaxy Friends list and the status of them so that you can play multiplayer with them if you want to.<br />
<br />
* When you are in the GOG networking mode, it now shows the list of your friends, just like it does for Steam.<br />
** Basically all of the functionality is identical here, in terms of how it shows those who are online, offline, and in-game, and lets you filter between them, etc.<br />
** The one difference is that in Steam we show the "in this same game" status as a light green (like Steam does), and in the GOG version we show that status in a purple color (to match their color theme).<br />
<br />
* The host computer now is able to open up a lobby for friends when it says "open server."<br />
** This works with all the various NAT punchthrough that GOG Galaxy supports, which we are not entirely clear on the details of. This may be as robust as Steam, or slightly less so, but we honestly have no idea. We'll be interested to hear from you! But either way, it's out of our hands at that point, so it's just information gathering.<br />
** The host is also now properly destroying the lobby when it shuts down, so that others won't try to connect to it and not see it.<br />
<br />
* When clicking the Join menu in GOG, the client now sees lists of their friends with four categories instead of just three.<br />
** Friends who are in-game but not in a lobby right now are showed in a dull light purple. Friends who are in game and have an open lobby show up with a bright purple status.<br />
** You can also cycle through all friends, open lobbies, friends in this game, and online friends.<br />
<br />
* In the listing of connections, for GOG it now shows a button that says "closed" instead of "connect" next to each friend who does not have an open lobby.<br />
** With Steam, someone could be in offline status but still let you connect to them. With GOG, we have to have a lobby ID to connect to, so there's no way to hide that and still even attempt a connection to someone.<br />
<br />
* GOG clients are now able to search for lobbies and correlate those to their friends list, which under the hood is a several-step process.<br />
** We are filtering out any potential rogue lobbies created by bad actors, and correlating them specifically to those owned by your friends.<br />
** It's possible that a friend might jump from the status of being offline (prior to opening the lobby) to showing up as someone you can connect to (when they open the lobby), actually, so potentially this actually does allow for the same sort of quasi-stealth game connections that people can do using Steam.<br />
** That said, since lobbies have to be advertised (to your friends) and we can't have a client just blindly try connecting by userID like in Steam, if you open a lobby and your other friends are actively in GOG looking to join a game of AI War 2, they would see that. Not a big thing, probably, but it's something we've noticed about the nature of these two differing systems.<br />
** You may find yourself having to hit refresh a few times on the client side in GOG, as there is a few seconds of lag before the lobby that the host creates shows up. It seems to be under 4 seconds at the most in current tests.<br />
<br />
* GOG clients can now actually initiate connections to a host lobby. And it works!<br />
** The client is aware of getting into the lobby, although it takes a few seconds.<br />
** The client also does gracefully tell them that they are leaving the lobby, and the GOG servers and the host are both finding out about that properly.<br />
<br />
* The GOG Galaxy networking client is absolutely fully implemented, now!<br />
** A huge amount of the actual send/read logic was able to be pretty much identical to Steam, which was not super far off from what we did with LiteNetLib.<br />
** Pro tip: if any other developer is ever wondering about SendP2P messages on the GOG network, those can take any size, not just stuff under 1200 bytes. It handles all of the fragmentation and recombination extremely well, and just as fast as Steam or other services.<br />
** The initial connection process to a lobby with GOG is a bit slower from North Carolina in the US than what we are seeing to Steam, ranging from 4-6 seconds on the first creation of a lobby on the run of a game to 2 seconds for ones after that. But once the connection is established and brokered, it's easily as responsive for us as Steam.<br />
** For us, this is routing through the internet and some firewalls, so the NAT punchthrough or relay servers or whatever it is in this case seem to be doing their job. We certainly did not mess with any ports.<br />
** Because of the nature of how data is read in from the buffers in GOG, we actually were able to get slightly more efficiency and speed with how we manage the heap compared to Steam or LiteNetLib. It's probably not usually a huge advantage, but it is something that we appreciate the efficiency of.<br />
** Essentially all three of the networking options have their own pros and cons a bit, but are all extremely good. That's a real relief to see, and to see them all working.<br />
** At this point it is now down to making the game networking actually work properly to have the game run, and that's a networking-framework-agnostic process.<br />
*** In a lot of respects it feels like after a large move of house, where all our stuff is now out of the old house and into the new house, but we still have a lot of unpacking and arranging to do. It still feels excellent to be done with the movers and have everything in one location now.<br />
<br />
=== More Multiplayer Work ===<br />
<br />
* Removed some old and unused code that is from the Valley Without Wind versions of multiplayer, checking for disconnections due to inactivity. We are handling that at a lower level, now.<br />
<br />
* Got rid of some old code that was mainly in the older version of our engine pre-Raptor, which was checking for "pthread exceptions" that was never something that could happen in the newer engine that we've replaced it with.<br />
<br />
* The game now has some self-checking code in there for giving us some actual feedback when it decides that it can't run the simulation or show visuals for more than 3 seconds at a time.<br />
** This is a pretty rare case, but it was the "too many changes and the client machine goes to black screen and unresponsive" issue.<br />
** This may have fixed the issue, although there also seemed to be another issue that was related to this.<br />
<br />
* Took out some other unused and old data.<br />
<br />
* The "UseSeed" command in the lobby no longer triggers the gamesettings to be saved. That was not useful, and slowed it down for no good reason.<br />
** It turns out that this was blanking out the settings data in a strange way a lot of the time, and causing the black and white view of the game after you reloaded. It also was apparently directly the cause (somehow) of the infinite black screen on the client after this was triggered.<br />
<br />
* Put in a lot of extra error handling for the steamworks networking in particular in case it has internal exceptions while trying to send something.<br />
<br />
* The cumulative effect of a lot of these changes has basically fixed a ton of issues in the lobby, including:<br />
** Clients not being able to use certain buttons or dropdowns.<br />
** Certain dropdowns not showing the right values to clients.<br />
** The client and the host getting a different view of things after certain buttons or dropdowns were used.<br />
** For a while there I was thinking that I was maybe going to need to make some of the controls for the lobby host-only, but now that's definitely not the case!<br />
<br />
== Version 2.115 Imperial Summons ==<br />
(Released August 4th, 2020)<br />
<br />
* You can now have multiple copies of the Devourer and Zenith Trader in a game<br />
** There's no technical reason for this limitation, and we're encouraging Zenith stuff because of the coming Onslaught<br />
<br />
* Quickstarts are sorted alphabetically again, instead of when the quickstart was created<br />
** Thanks to ArnaudB for the bug report<br />
<br />
* Add some defensive code to the Dyson Sphere<br />
** Thanks to GreatYng for reporting.<br />
<br />
* Fixed a cross-threading nullref exception that could happen during unit unselection (probably due to it dying).<br />
** Thanks to GreatYng for reporting.<br />
<br />
=== Imperial Fleet Summoning Changes ===<br />
<br />
* The AI now generates some weaker bonus exos against miscellaneous player targets (energy producers, MDCs, GCAs, etc), just to keep things exciting.<br />
* Fix a bug where Exos were trickling into their targets instead of moving as groups.<br />
* Start the Exos the moment you finish the hack, instead of some random time < 30 seconds from when the transceiver finishes.<br />
** Blame MasterGeese for these changes<br />
<br />
=== Multiplayer And General Lobby Work ===<br />
<br />
* The "partial map generation" code for giving a preview in the lobby now does even less work, bringing our mapgen times down to 200ms or so on average.<br />
** Because of this, we've also moved the mapgen code during partial-map-generation onto the main thread, to keep things as fast as possible. The full map generation still happens on a dedicated background thread.<br />
<br />
* During the lobby, the way that we handle the execution frame loops is now entirely new, and basically skips over a lot of things that were artificially introducing lag.<br />
** This makes the lobby perform far better in general, and also makes the map generation times absolutely flyyyy compared to what they were before, on single or multiple player maps.<br />
<br />
* This is leading to a number of substantial bugs in the lobby, temporarily, but will make the lobby performance far superior in both singleplayer and multiplayer as we get those resolved.<br />
<br />
* The silent "generate partial map" or "generate full map" complete messages now tells you how long it took.<br />
<br />
* The way that mapgen works, it now has a couple of different contexts that it passes in, so that each one has its own random number generator that is not dependent on the others.<br />
** This lets us ensure that there is consistency between runs of the same code on different machines, and on the detailed version (for play) and the non-detailed version (for viewing in the lobby).<br />
** This is largely solving the issue that we just have started having in this latest round of internal builds with a difference in the final map and the original map.<br />
<br />
* Renamed the Generate() method on map generators to GenerateMapStructureOnly() to be more clear, and also make our code more eaily searchable.<br />
<br />
* Adding a planet to a galaxy no longer requires passing in a context object at all. It now generates its own internal random number generator for its initial variables based on the galaxy map seed, its index, and its original position.<br />
** One of the side effects of this is that now when you change which planet you want to be your starting planet, it will keep the name the same instead of shuffling them around.<br />
** This sort of name-stability has actually never been in this game before, and always was mildly annoying. But in multiplayer lobbies it was going to be even more annoying. "I'll take Adam." "Okay, sure." "Well, I clicked it and now it is called Brian, but that's the one I meant." "Wait, what?"<br />
<br />
* When you are loading a savegame or a quick start as a template into the lobby, it now immediately regenerates the map rather than using the old map, because it's highly likely that the new structure will be different in some fashion.<br />
** This then also solves the problem of clients being different from the host on first connect, probably; that was kind of a compound problem in general.<br />
<br />
* Fixed an order of operations issue that could lead to the occasional "No human players found to seed homeworlds for!" error in the lobby in general, but more recently in multiplayer more frequently.<br />
<br />
* Possibly fixed the issue with later player accounts in multiplayer being renamed incorrectly to "player 2" and such.<br />
** There is still a fair bit of duplicate data happening between data structures, and some lobby/startup code that is blatantly single-player-specific that we need to get sorted out.<br />
<br />
* Dramatically cut down the time it takes to generate planet random seeds, but still with keeping them consistent as you click around the galaxy, by pre-generating the random seeds as the first 300 calls to the "broad random" for the galaxy. Any seeds needed after that will be generated the slow-but-unique way. This means mainly things like nomad planets or other things that are late additions. When just adding a planet or two, it's not so slow as to be a problem.<br />
<br />
* Until now, if you loaded an existing savegame it would automatically put you in control of the first player account, even if your profile name did not match.<br />
** It now continues to do that when you are loading as a single player game, which is enormously helpful for testing and just in general, really. But in multiplayer, it now tells you a list of what the available profiles are, <br />
** In general, if you are loading something as a template, it now clears all the old player account data and loads in your own current name as the new first player account (and further players are already added properly as they connect).<br />
<br />
* Fixed up the way that planets are shown as colored in the lobby galaxy map, so that it will work well with multiplayer and also with the new faster single-player-generated stuff.<br />
<br />
* Improved the logic for it properly setting you to be viewing the new planet you've selected after you make a selection in the lobby. Another thing that did work, but with the revised logic had to be made to work all over again.<br />
** This concludes the fixes to all the known bugs that we are aware of that we've introduced into the lobby today.<br />
<br />
* Fixed another nullref that was happening only on the multiplayer custom games after today's changes.<br />
<br />
== Version 2.113 Dyson Growth ==<br />
(Released August 3rd, 2020)<br />
<br />
* Fix a null reference exception if the game wants to spawn a Relic but you own basically every explored planet<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fix a bug with Dyson Sphere units not marking up<br />
** Thanks to GreatYng for reporting<br />
<br />
* Fix a typo in a Battlestation description<br />
** Thanks to ovalcircle for reporting<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed one oversight that was causing the factions tab chat to not show its chat text properly, unlike map and options in the lobby.<br />
<br />
* As text messages come in inside the lobby, it now scrolls to the bottom of the chat window, as you would expect.<br />
<br />
* The maximum length of chat messages in the lobby is now 1000 characters.<br />
<br />
* GetLocalPlayerFaction() is now GetLocalPlayerFactionOrNull(), to support spectator players.<br />
** Additionally GetFirstPlayerFactionOrNull() has been added, and GetIsFriendlyToLocalFaction() and GetIsHostileToLocalFaction() have been updated to work based on that in order to extend support for spectators even further.<br />
<br />
* Planet visibility is no longer determined from your local faction (since for spectators that might be null, and for all humans it is identical anyhow). It now just uses GetFirstPlayerFactionOrNull(), since that's slightly more effient and supports spectators.<br />
<br />
* Huge areas of the AI have been updated to allow for spectators, generally giving them information that mirrors that of what the first player is seeing (objectives-wise and so on).<br />
** In other areas, it simply updates things to not erorr out when you hit hotkeys, etc.<br />
** Spectators also can't run "cmd" messages from chat; it will just show the text as if it were not a command.<br />
<br />
* GetLocalPlayerFaction() on the planet object has been removed, as that did some risky caching for multiplayer in general, and also was not really compatible with spectators.<br />
<br />
* Fixed a couple of errors where non-sim-but-background-fation-AI code was referring to the local player faction. It now refers to the first player faction.<br />
** Probably this would not have made much difference, unless the game switched hosts partway through or something like that.<br />
<br />
* The chat controls in the lobby now work, though there are some bugs in them still.<br />
<br />
* The correct name for each player faction now shows up for even for players who are in spectator mode.<br />
<br />
* Player factions in spectator mode now see in the lobby chat area that they are in spectator mode.<br />
<br />
* Both the lobby chat and main game chat now support more characters in their text -- basically anything that our "condensed" ascii format is allowed to display.<br />
<br />
== Version 2.112 Steam Networking Complete ==<br />
(Released July 31st, 2020)<br />
<br />
* The description of the Ensnarer Battlestation now explicitly mentions that it can use AI Great-Turrets<br />
** A number of people have reported this as a bug over the years, so hopefully that won't happen anymore<br />
<br />
* All of the Fallen Spire ships, including those in the Spire Railgun Shop optional mod, have had their health and shields doubled, but their firepower halved.<br />
** This should make battles with other mega-units last longer, which feels more appropriate, but keep their "damage over time" the same. <br />
** When these were going toe to toe with the AI Exogalactic War Front units, they seemed to disappear too quickly, making them feel weak. This should keep their effectiveness the same as before, but make the battles take about twice as long with those large ships, so that it doesn't feel like instant evaporation at least.<br />
** The one unit not adjusted is the Spire SuperDreadnought from the Spire Railgun Shop mod. That was already maxed out as a "kills everything and is basically invincible" sort of ship.<br />
** Thanks to a variety of players for weighing in on the feel of these units, and Badger for suggesting this adjustment.<br />
<br />
* Rather than having a slider for the number of planets in the galaxy map view, there is now a dropdown.<br />
** This prevents the intense "regenerate map spam" and lag that was inherent in using a slider, along with making it easier to choose a certain number of planets.<br />
** We have made it so that it only gives you multiples of 2 below 60, multiples of 5 below 100, and multiples of 10 above that. This makes it easier to quickly peruse the range.<br />
** Each entry has some commentary on what it will mean to the feel of the map if you are hovering over it in the dropdown with the number of planets expanded.<br />
** Actually, it wasn't even regenerating the map after you changed the number of planets, which was really confusing! You had to hit regenerate map. Now there is no confusion.<br />
** All of this is easier to use as a player in general, on top of being something that is easier to deal with in multiplayer for sync purposes, too.<br />
<br />
* Fixed a longstanding bug where dropdown selections that were open could persist when leaving the lobby or changing tabs within the lobby.<br />
** Thanks to MaverickPenkenn for reporting.<br />
<br />
=== Milestone: Steam Networking Integration Complete ===<br />
<br />
* Fixed an issue where multiplayer clients disconnecting from a host would try and fail to save the last settings from the lobby. Now it does not save the lobby settings from a session you are just a client of.<br />
<br />
* All of the networking frameworks have had their "send to anyone here and myself" code consolidated into the network authority, so when an interface is partially implemented it won't wind up stalling out waiting on the host.<br />
** Less code duplication is also always good, but it wasn't clear that this was a complete commonality until we got partway into the Steam framework implementation.<br />
<br />
* A new ArcenSteamClientConnection wrapper has been created to keep track of the Steam connection on servers.<br />
** This now properly is registered while the steam connection is alive, and all of the "waiting for player to connect" and "player disconnection" events now happen properly.<br />
** For some reason, we are not getting the "host has accepted you" callbacks on the client end, but that doesn't really matter. As we start actually having our challenge-response data sent via the higher-level networking code, that bit will become irrelevant as it establishes itself within part of one second anyway. It's just a curiosity, or potentially something that is only meant to trigger host-side. Frankly the documentation is sparse in points, both from the Facepunch C# wrapper and the Valve C++ baseline, so this might be working as intended.<br />
<br />
* Substantial progress on the Steam network transmission of data. Still not quite seeing it register yet, but we're getting close.<br />
<br />
* The full suite of network logging has been integrated into our steam networking wrapper, now.<br />
<br />
* When a Steam host shuts down the connection, the steam client computers now definitely notice and react to that. The inverse was already working from the start.<br />
<br />
* Figured out the missing information on how to get data from the facepunch steamworks wrapper (call Recieve() to trigger the other events), and are sticking with the derived classes methods rather than the interface method, since for relay connections it seems like the interface method is not fully implemented.<br />
** With this in place, we're now getting messages on the client machine, and they are properly decoded! The host for some reason still doesn't get messages back, but this is progress.<br />
<br />
* Fixed a bug in our connection status window code that was causing it to stop showing a timer on connection stages after the earliest ones.<br />
** With LiteNetLib, that all flashes past so fast we could not tell that was even happening. With Steam currently stalling out with the host not getting messages, it became apparent.<br />
<br />
* Previously it was possible for our socket mode to be off, and silently ignoring messages we were sending.<br />
** This was initially done to make it so that any lingering messages that would try to be sent after a disconnect would not cause visible errors, but in this case we've wound up with the socket state being off on the steam networking, despite it being active, and this thus resulting in client messages being composed but not actually sent. That was not obvious because of the lack of error messages.<br />
<br />
* Figured out a stupid mistake in our own code, indeed a single line of code, which was preventing the client from sending data properly back to the host.<br />
** Steam networking is now fully functional in terms of sending data back and forth. There is some sort of issue with the world data not getting across properly, but we have to now verify whether that's limited to Steam or also happens on LiteNetLib.<br />
<br />
* Added in a substantial amount of extra error tracking in our univeral and game-specific network message handlers.<br />
** This helps us to find out where errors actually are.<br />
** In the case of steam, right now we are getting some exceptions when the host tries to tell the client what their player profile number is.<br />
<br />
* Fixed a simple typo that was having us send a junk message via both frameworks to the client when they first connected.<br />
** In both cases, this led to the galaxy map not showing up properly on the very first world connect. But in the case of Steam networking, it also led to an exception because the byte array was too small.<br />
** This extra smallness is actually more accurate, and basically it was only not erroring with LiteNetLib because the buffer array was larger than needed because they are pooled.<br />
** This is an interesting difference between these two networking frameworks, but neither one is particularly "wrong. But it does make Steam slightly more sensitive to certain errors in a way that is useful, because it's an error in both cases that manifests in other places.<br />
** Anyhow, this seems to argue for us to internally use Steam as our main testing framework, additionally because that means we are round-tripping out through the internet and Valve's servers and back rather than having the speed of a LAN.<br />
** This also means that the Steam networking library is fully completely integrated, which is a very major milestone! Now it's all game logic, regardless of what is going on with the two networks.<br />
** Also worth noting that it's under 3 seconds to connect a client to the lobby in our test case, using the Steam relay servers, etc. On the LAN it is under one second, so that's pretty killer.<br />
<br />
=== More Multiplayer Work For All Frameworks ===<br />
<br />
* "Planet GalaxyMapVisuals in CenterGalaxyViewOnPlanet null!" will no longer happen. It was a thing relating to trying to center on a planet slightly too early, and the population of the galaxy map still having failed.<br />
** We are now bypassing that and using the raw internal transform offsets to calculate the correct camera position.<br />
<br />
* In response to the initial challenge from the host, the client no longer just sends their profile name. They now also send their list of installed and enabled expansions and mods.<br />
** The host then compares that list to its own installed and enabled expansions and mods. If there are differences, then it rejects the client connection and does a popup on the client and a chat message on the host side explaining why.<br />
** It also notes in there that both parties can enable or disable expansions or mods in the Game tab of the Settings menu to get things to match.<br />
** Please note that, yes, in some cases there will be mods that are enabled but which "wouldn't do any harm" because their functionality won't be triggered in the campaign in question. We don't have any way of knowing that, so we have to err on the side of caution.<br />
** When it comes to expansions, there are none that "wouldn't do any harm," because all of them add some ships and features to the game in general that all players need to have. For instance, the first expansion adds a bunch of new turret options that are available to choose from in any game you play with that expansion on.<br />
** At any rate, we've gone out of our way to make it easy for people to disable expansions and mods so that they can play with friends who don't have those same expansions or mods. The last thing we want is for the only solution to this sort of thing to be someone reaching for their wallet or having to faff about in the filesystem.<br />
<br />
* Low-level chat messages that are sent to everyone from the host are also now sent to the host themselves. Previously, they could not see messages of this sort, turns out.<br />
<br />
== Version 2.111 Initial Steam Connection ==<br />
(Released July 30th, 2020)<br />
<br />
* Fix a null reference exception in my new spire relic code<br />
** Thanks to Chuito12 for reporting<br />
<br />
* Nanocaust: Make the AI wait a bit longer before unleashing Exogalactic units on it. Remove some deprecated code<br />
** Also the exogalactic units won't hang around to kill the entire nanocaust, so there's a chance it can recover.<br />
<br />
=== Milestone: Initial Steam Networking Connection Between Client and Host ===<br />
<br />
* The Steam versions of the game now initialize relay access on startup, to make it so that the first connection using Valve's relay network will be extra fast.<br />
** If you wind up not playing any multiplayer, this is absolutely harmless. If suddenly it is flagging your firewall on game start on the Steam versions of the game, though, that might be why.<br />
<br />
* The basic connection through Steam's newer networking sockets connection is now in place, using their relay servers as recommended. This is the approach that absolutely bypasses NAT traversal and anything else of that sort, and in fact hides your IP address from anyone you are playing with. The claim is that their backbone is faster in most cases than the general internet one.<br />
** If need be, we can make a "Steam over IP" version that allows for their networking sockets stuff to run more directly over UDP, and only fall back to their relay servers if there is a problem. This would be a lot like LiteNetLib, except with much better NAT punchthrough making use of ICE and STUN and all those things.<br />
** For now we are sticking with Valve's recommended practices.<br />
** Beyond just getting the initial connection up, we don't have anything there yet, but on the server we can see the Steam username of the client who requested to connect and who forged the connection.<br />
<br />
== Version 2.110 AI Exogalactic War Front ==<br />
(Released July 29th, 2020)<br />
<br />
* Spire Relics now have additional text in their descriptions explaining either A. whether the relic is on route to a particular planet , or B. that this relic must build on this planet<br />
** Thanks to Lord of Nothing for suggesting<br />
<br />
* All of the units that were previously named "Galactic War [name]" are now just named "[name]"<br />
** However, in the tooltips for them, their faction should now say "AI Exogalactic War Front" in whatever the hunter fleet's color is, rather than saying the AI Hunter Fleet.<br />
** This lets us keep the shorter name, while making their sub-group and source a lot more clear.<br />
** This does need testing, so please let us know if it doesn't show up correctly somewhere. This is using a new xml feature called "override_faction_name", which lets us use a different faction name for some units in a faction, but without actually creating a new faction.<br />
** Thanks to Ovalcircle for leading the discussion that led to this.<br />
<br />
* Spending a ton of science will now increase a player faction's Overall Power Level very slightly.<br />
<br />
* Remove some inaccurate description text for the Rorqual Hejira<br />
** Thanks to GreatYng for reporting<br />
<br />
=== UI for Steam Networking ===<br />
<br />
* Added the new ArcenNetworkConnectionOption class, which we are using as a basis for things like lists of your Steam friends that you can connect to.<br />
** On the network authority, there is a new PotentialServerOptions, which is used to list out such things. This can be used for anything that we need to list a variety of to connect to, not just friends in Steam and GOG. This is in contrast to the "type in an IP" method that we use with LiteNetLib.<br />
<br />
* Started building out the Steam networking framework layer, currently based on the ISteamNetworking implementation that most games use.<br />
** We MAY opt to also start supporting the newer ISteamNetworkingSockets framework that Valve has rolled out more recently, but that would be an alternative networking framework in AI War 2 that you could choose between.<br />
** The fundamental premise of those two Steam networking setups is really different, and while the newer one would in some ways be easier for us to implement, it seems a lot less familiar to the average Steam player, involves IP addresses potentially, and is maybe less battle-tested, but who are we to say.<br />
<br />
* Previously it was still possible to have some exceptions happen silently in the Engine_Universal main loop, and they would log to disk but not show up in your face. Fixed.<br />
** It was also possible to get some silent errors when clicking buttons and other UI elements, turns out. This made the application just seem not to respond to the click, but now it properly shows the error if there was one.<br />
** Also it was possible for certain errors in the UI call stack to prevent the display of the error window.<br />
<br />
* When you try to connect to an IP address, or you change your active networking framework, the game settings now get saved immediately so that that is remembered even if you shut down the program right away.<br />
<br />
* There is now a screen that will be used for Steam and GOG connections, from the client side, and in Steam it now:<br />
** Shows a list of all your Steam friends, with ones that are in AI War 2 at the top, then ones that are online, and then the rest below that.<br />
** Lets you sort to just ones that are in AI War 2 or online.<br />
** Lets you refresh the list to check for updated statuses.<br />
** There is a connect button for each friend, but that is not functional yet. Just haven't gotten to that part yet.<br />
<br />
== Version 2.108 Galactic War Units And The Exostrike ==<br />
(Released July 28th, 2020)<br />
<br />
* Completely rework the way Exogalatic strikeforce leaders work, to allow per-AI-Type customization. No functional change right now, but intended to support some new AI types for DLC2<br />
<br />
* HandleHelperJournals() has been split out into a bunch of sub-methods, since they can error in rare cases and it would be nice to know where the error generally is.<br />
<br />
* Fixed an issue where we were not letting negative risk analyzer data be saved properly. Turns out that has a good reason to be negative at times.<br />
** Thanks to Badger for reporting.<br />
<br />
* Added a new UI feature that is a throwback to some of the functionality we had in various past games: the "center screen message"<br />
** This is basically a message that can show up near the top center of the screen, and stay there for a bit or for as long as needed.<br />
** It won't block the mouse, and it is over everything except modal popups and tooltips.<br />
** This isn't something we would want to use all THAT often, but for cases of things like "hey the server isn't responding, why is MP stalled," this is exactly the sort of UI functionality we need.<br />
<br />
* Fixed a harmless bug where, for the last few months since we've been doing multithreaded loading of camera xml files, the "PrivateVisExtensions" assembly would sometimes have annoying but unimportant errors appear on startup.<br />
** Essentially, it turns out that loading classes from a custom dll is not entirely threadsafe. Go figure. The fix for that is simple, and it doesn't slow things down, but now we know.<br />
** Thanks to GreatYng for the first report of this we'd had outside of ourselves running into it.<br />
<br />
* Fix a bug where macrophage achievements weren't triggering if you killed all the Telia<br />
** Thanks to GreatYng for reporting and StarKelp for the fix.<br />
<br />
* The in-game credits have been updated to include two more individuals who are key DLC2 testers.<br />
<br />
* Added new GetWasWorldStartedOnGameVersionOlderThan() and GetWasWorldStartedOnGameVersionAtLeastThisVersionOrNewer() to world, which let's people find out in a really efficient way if a world was started before some certain point.<br />
** We can't be accurate past a month or so ago, because we were not tracking the original savegame version back then. But it's useful for looking at saves older than the more recent ones and altering them if need be.<br />
** This is now used specifically to fix this macrophage disabled stuff only on older savegames than 2.108.<br />
<br />
* Fix a mispelling in the Mesopotamian planet names<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fix a typo, "reciever" to "receiver"<br />
** Thanks to Apthorpe for reporting<br />
<br />
=== UI Changes ===<br />
<br />
* In the Load Menu, campaigns are now sorted by 'most recent save game in that campaign' rather than alphabetically<br />
** Thanks to Puppet Master for the suggestion.<br />
<br />
* The default sort for the load menu is now by date.<br />
<br />
* Rename 'Exogalactic Strikeforce' to 'Exostrike' and 'Extragalactic War Units' to 'Galactic War Units' in UI. Having "ExoGalactic" and "ExtraGalactic" was a perennial source of confusion<br />
** Note that internally the code uses the old names for the moment<br />
** Thanks to a discord conversation involving relmz32, Oryutzen and NRSirLimbo<br />
<br />
=== Dyson Sphere Buffs ===<br />
<br />
* The Dyson Sphere's ships should now really level up after the hack<br />
** Thanks to GreatYng and zeusalmighty for the bug reports<br />
<br />
* Dyson Sphere hack descriptions now say "This hack will make the Dyson Sphere very unhappy with you for a while" to clarify the behaviour.<br />
** Thanks to Apthorpe for suggesting<br />
<br />
* The Dyson Sphere now gets additional income (ie it can build ships faster) that scales with AIP. As AIP goes up the Dyson and Antagonized Dyson get stronger<br />
<br />
=== Multiplayer Work ===<br />
<br />
* SendMessageToAllClients() has been split into two methods: SendMessageToAllClientsWhoAreFullyConnected() and SendMessageToAllClientsRegardlessOfConnectionStatus().<br />
** We really don't need heartbeats and frame auths and so on going to clients who are still connecting in.<br />
<br />
* Also added a GetCountOfClientsWhoAreFullyConnected() that lets us know if there are any clients who actually have gotten all the way in (and thus we should send world data)/<br />
** And added GetCountOfClientsNeedingWorldData() that lets us know we should make everybody wait for a bit until those people connect in. Otherwise everyone won't be on the same page.<br />
<br />
* Added a OnServer_IsAtPausedSpotWhereGameWorldCanBeSent() that lets us wait for a break in things happening (usually only 400ms or so at most) to then have a clean slate to send a world state to a connecting client without that state changing between them being sent the state and them getting it.<br />
** Along with this, if GetCountOfClientsNeedingWorldData() is more than zero, then it now pauses authorizing more simulation frames until the world is fully taken in by the new clients who are joining.<br />
<br />
* When a multiplayer game is stalled out for some reason, it now uses that central screen message to let you know what is happening, and if possible, why it is happening.<br />
** The game itself will have stopped having any action at this point, though you can still scroll around and look at things and give orders. But nothing is proceeding on the enemy side, so you don't have to worry about it being in your way.<br />
** When a client is first connecting into the lobby, it also uses this, to basically get the host and any other existing players to wait a moment before making more changes, etc.<br />
** On the host, this is already set up to give some context about the exchange under the hood that is happening with the new client.<br />
<br />
=== Multiplayer Transition To LiteNetLib ===<br />
<br />
* Okay then... we are switching network libraries when it comes to our non-Steam/non-GOG transport layer. Instead of FORGE Remastered, we'll be using LiteNetLib.<br />
** FORGE has grown a lot over the years, but the version we were using was from 2018...ish. We looked into updating our version of the code, but were not thrilled with how complicated it was going to be. Since we had working AI War 2 multiplayer on FORGE at least as recently as 2017 (in an alpha state), staying with the existing code made a certain amount of sense.<br />
** However, we started running into really long delays with something as simple as sending 10 bytes to say what our profile name was. This was taking upwards of 14-18 seconds between two machines sitting three inches apart and both within five feet of a powerful wifi router. We verified that the polling was happening hundreds of times per second, and that massive amounts of data was being sent via sockets. But in the internals of the old version of FORGE we have, it was taking it quite a very long time to assemble that into a full message, despite all the churn of hundreds and hundreds of data reads that were apparently all just empty headers and then noise. <br />
** Time for a new approach. It's worth noting that the current version of FORGE still lists all the most internal classes as "in development and lots of dire warnings," so that was another reason for switching up frameworks.<br />
** We chose LiteNetLib at this point, and within 40 minutes of dropping that in, we had the first successful connection between the machines on using this framework for the game. It was just a simple "hello client" message in basic unicode, but it arrived extremely instantly, as expected.<br />
** Next steps are going to be doing some cybernetic implants on LiteNetLib, rather like what we did on FORGE, to make sure that it integrates with AI War 2 properly and our network authority, and that it communicates as directly as possible with our own pre-formatted bitstreams. Most of that should be part of one day of work, at this point. We shall see. Then it's back to the actual larger "build out the multiplayer part of the game" work, but minus the lag that was tripping us up the last day or two.<br />
** It's also worth noting that, with this switch, we had to unfortunately also lose the awesome NAT punchthrough work that Doug Fields did for us with the FORGE interface back in 2018, but LiteNetLib has some of that of its own. And hopefully most people use Steam or GOG if they are behind firewalls of any complexity (since relay servers then become required, and that's where the free relay servers are).<br />
<br />
* NetPeer in LiteNet now inherits from ArcenNetworkClientConnection.<br />
** For now, we are using our own methods to generate the ConnectionIndex, rather than using the existing peer.Id. There may be some numeric conflicts, otherwise, but we can also change this later.<br />
** We also are initializing everything on the Arcen-integration side, keeping our own clientsOfServer list for quick access, and then calling the game-layer RespondToNewConnectionAcceptedByTransportLayer() that will kick things off.<br />
<br />
* PrepareMessageForSending() has become WriteLogOfSend().<br />
<br />
* Added a new SendToSpecificPeer() method onto LiteNet's NetManager. Not sure why that variant didn't seem to exist.<br />
<br />
* Wiring back up our LitNetSocket wrapper class:<br />
** SendMessageToHost_Inner() done.<br />
** SendMessageToAllClientsRegardlessOfConnectionStatus_Inner() done.<br />
** SendMessageToAllClientsWhoAreFullyConnected_Inner() done, using the new SendToSpecificPeer() method.<br />
** SendMessageToSpecificClient_Inner() done, using our own ConnectionIndices for now.<br />
<br />
* Booyah! Exclamatory phrases are not the norm in our patch notes, but this is an exciting moment. LitNetLib is sending messages, and doing so with speed and accuracy and a minimum of fuss. The username travels three inches in well under a second, as should be expected.<br />
** At first, I was getting some very strange data sent across, and I figured that this was going to be an endianness problem, but actually all of the .NET/Mono data is the same endianness from the look of things. Which makes sense, given that otherwise savegames would not work from computer to computer.<br />
** After spending the night with that rattling around in my brain, this morning I decided to definitely do some profiling of the data before I started messing with the #ifdefs.<br />
** First thing I noticed was that I'd chosen to use the RawData byte array, and immediately next thought was "I better check there's not a network header in there." Turns out, yes, there's a UserDataOffset. The first four bytes are not my data, and so of course it would give gibberish as if the endianness was wrong. Just starting my reads from the proper offset makes everything work instantly.<br />
** All of this is from a Mac to a Windows machine at the moment, but my I'll be testing three-way with my linux machine as well. Right now laptop is sitting closed under the Mac.<br />
<br />
* LiteNet logging now gets funneled to our own main logging pipeline.<br />
<br />
=== Continued Multiplayer Work ===<br />
<br />
* A fair bit of work has been done to make intentional disconnections from the client or server tell the other side more quickly.<br />
** This should help to avoid some disconnect-and-reconnect issues that are otherwise inevitable, and it just makes things feel more responsive.<br />
<br />
* Additionally, when you use the in-game controls to exit the program as a while, it now takes one extra half second to lets Steamworks and GOG actually do their exit logic properly, rather than rushing out the door.<br />
** This should hopefully help with any cases of the game still being thought to be running on Steam in particular after it closed.<br />
<br />
* When you exit the game, while it is doing its brief exiting stuff it now throws up a center-screen "exiting.." message.<br />
<br />
* Got rid of OnServer_WaitingOnConnectionIndices, as this was basically a duplicate of something we are doing better and more cleanly a new way, now.<br />
<br />
* UpdateDebugText() and all of its related variables have been removed.<br />
** This was the sort of thing that, in all of our prior games before Raptor and moving to 3D, you could hit F3 and get output information from. But it has never really been used in AI War 2 properly.<br />
<br />
* Got rid of WorldTransmissionMessageType, as it was needlessly complicated.<br />
** This was essentially us breaking the world transmission data into multiple parts and then sending those in parts. Historically there were two reasons for this:<br />
*** Back in AI War 1, we were using the Lidgren network library, and even though it was trying to work around the MTU (typicaly 1200 bytes) of various networks players might be on (or passing data through indirectly), it was often having bottlenecks and slowdowns with how it sent fragmented messages through the network card. Our theory at the time was that it was flooding the buffers of the NIC, rather than giving it data at a more reasonable pace. Network cards have grown enormously in the last 11 years, as have the OSes that control them, so that's not really a concern now. All of the newer network libraries that we would be using to send data should be able to handle 1MB of data without incident.<br />
*** Secondarily, for AI War 1 and for the A Valley Without Wind games, we were sending enough world data that you could see a noticeable wait time, and by handling this above the network transmission layer we could give you visual feedback on transmission progress (even though the whole act of that actually slowed it down). Eleven years later, we have networks that are vastly faster basically everywhere in the world, and the world savegames for AI War 2 are much more efficiently packed than AI War 1 was. So sending a file like this really is like a midsize image on any website you visit, now. Not really a progress bar sort of situation, especially if the progress bar itself causes slowdown.<br />
<br />
* ConnectionStage has moved from being just a UI-only element to being ClientConnectionStage as part of the ArcenNetworkAuthority, so that clients can better keep track of their connection status. Usually this is less than a second or so, anyhow, but we still need to keep track of it in case something goes wrong in particular.<br />
<br />
* The host now properly sends the world data to the client, for the first time in three years or so.<br />
** The client is having some trouble understanding it thus far, so now is a good time to build in error handling (it was just silently failing, until now).<br />
<br />
* Added a new SendLowLevelChatMessage() method on the network authority, which is used mainly for sending back and forth arbitrary messages from clients and the host to explain about the status of things. These can be echoed to all other clients or not, as the case warrants.<br />
<br />
* If the client fails to load a world sent by the host, then the host and any other clients all get sent a low-level chat message about that, the client gets kicked out (since they never made it fully in), and the client gets a nice error message on their screen and in the log.<br />
** This way we can solve whatever the problem is, and nobody is left sitting wondering why things are slow (when in fact they errored).<br />
<br />
* When you are loading a quick start, or loading a savegame as a template into the lobby, it now clears the chat log. This was definitely not information that needed to persist from a prior game to the new lobby!<br />
** These sorts of chat log messages, which are kept over the long term for the game (up to a limit), are no longer shown in the lobby at all.<br />
** Instead, we now are using LocalMomentaryDisplayLog, which is something that doesn't get sent with savegames, and which normally is just "stuff showing on your sidebar during the game for a little while."<br />
*** This is perfect for the lobby, and in the lobby we are just showing the last 100 of these, and not clearing them until you reach the game itself.<br />
*** These things are actually shown by timestamp, not by gamesecond (which isn't ticking yet), so that's just extra perfect for a lot of reasons.<br />
*** This also leads to privacy for people who were talking before someone new joined -- you only see messages that were sent after you were connecting -- although that's not hugely important in most cases.<br />
<br />
* Got rid of ArcenUI.Instance.CurrentNowUTC, since that was putting all of our lobby chat messages in the British time zone. We didn't use this anywhere else, and it was puzzling that we used it at all.<br />
<br />
* NatPunchEnabled is now true on the server and client for LiteNetLib. We'll see how well that works.<br />
<br />
* Added a new debug setting to the network section of the settings menu: Write Network World Serialization Logs<br />
** When sending a game world across the network to a client, write NetworkWorldSerialization.txt, and when getting one from a host write NetworkWorldDeserialization.txt -- both in the PlayerData folder (but on two different computers). The only real reason to turn this on is if a client is unable to join a host and gets an exception; this lets us do a diff of the two files and figure out what is different about what the host is trying to send and the client is trying to read.<br />
** Note these logs are often huge, sometimes hudreads of MB each. Compressing them into a zip or tarball and then uploading them somewhere we can download them to find out what is happening is a good idea. Hopefully as a player you will never need this, but this is basically a way for us to test the network world sync process, which otherwise can be incredibly opaque and take a lot of time to hunt down.<br />
<br />
* Used our new network world logging capabilities to fix an error in network world transfer where it needed to send the game version in a different format.<br />
** The client now looks at the game version very early on, and if it does not match it sends a message back to the host telling the host what the problem was.<br />
** Basically: If the client can't join because of a version mismatch, that gets shown and things happen properly.<br />
<br />
=== Milestone: World Sync Between Host And Client ===<br />
<br />
* Milestone! Initial transmission of the world data from the client to the host now works properly.<br />
<br />
* When a local player account is missing the following methods no longer throw errors:<br />
** SwitchViewToPlanet<br />
** OnClient_SendClientBatchToServer (actually still errors, because it's useful to have it do so).<br />
<br />
* PlayerAccount is now more strongly linked to the new ArcenNetworkClientConnection, and its connected status is now a method called OnServer_GetIsConnected().<br />
** There is some duplication of concepts here, but when you factor in the way that things like viewing of planets are synced in multiplayer, this is a worthwhile separation of concepts.<br />
<br />
* If two players with the same profile name try to connect to a game at the same time, it will now prevent the second one from joining and tell everyone why.<br />
** Bear in mind that these are AI War 2 profile names, not Steam or GOG or what have you. Everyone needs to have a unique AI War 2 profile name in the current game, but they can change up their names however they want and global uniqueness doesn't matter beyond the current game you are in.<br />
<br />
* In situations where a player 3 joins after player 2, and it's the first time player 3 has been in this particular world, player 2 now gets told by the host about player 3.<br />
** And of course all the more complicated permutations of this. It's the new FromServerToClient_SendNewPlayerProfile.<br />
** This is needed specifically so that all clients can know which planets are being viewed by other players, so that which planets are "tier 1" processing is honored and identical everywhere. Among other later needs.<br />
<br />
* Clients connecting to a host are now properly told what playeraccount they have been put in charge of.<br />
** This makes PlayerAccount.Local not null on their local machine, and lets them give orders and whatnot from their spot there.<br />
<br />
* Errors that happen during the main sim step will now be more visible in multiplayer contexts.<br />
<br />
=== Milestone: Initial Sharing Of Lobby Between Host And Client ===<br />
<br />
* Milestone: Clients are now able to load into the lobby, and they and the host both see most (but not all) changes that are made.<br />
** Clients are not yet assigned to any faction (making them just spectator-mode for now), and there are some specific bugs with certain data that isn't synced correctly just yet.<br />
<br />
* Map generation can no longer happen in the lobby except on the host.<br />
** We have no real way to be sure that map generation is deterministic between machines, so we need to do a world sync each time anyway.<br />
<br />
* When the map is regenerated on the host during a multiplayer lobby, it recreates all of the playeraccounts needed for each of the player connections that exist.<br />
<br />
* And when the map is regenerated on the host during a multiplayer lobby, it now re-syncs the entire world data to all of the clients so everyone is up to date.<br />
** This also solves the "authorized through frame number" issue, which was really just a smaller symptom of this larger issue.<br />
<br />
* Both the client and host are now verified able to add, remove, and edit factions and have that properly affect the world.<br />
<br />
* Window_ServerMultiplayerConnectionStatus has been removed, as we no longer use that. We've been using the new center-screen messages instead, or the chat sidebar, as needed.<br />
<br />
* In multiplayer games, the save button is now disabled and says: Cannot Save Game As Client<br />
** If you click it, it gives you this message: Unfortunately, only the host can save games in multiplayer. To save on bandwidth as well as on processing power between your machines, there is a LOT that is calculated only on the host machine. If you were to save a copy of the game on your client's end, loading it would lead to a lot of wrong and missing data.<br />
<br />
* Additionally, autosave is now something that does not happen on multiplayer clients. Just the host.<br />
<br />
* The header of the load quickstart and load saved game menus now make it clear if you are loading for multiplayer or single-player.<br />
** Also on these screens is a new "[Multiplayer Questions?]" bit of text up at the top that appears only on the multiplayer version, and which has some helpful mouseover text.<br />
<br />
* Rather than having an annoying explanatory popup to click through every time you open the various ways of hosting or joining a multiplayer game, it now puts that extra information under the "[Multiplayer Questions?]" section up at the top of those screens.<br />
<br />
* At the top of the lobby screen, it now says if you are joining as a client or a host to a multiplayer lobby, as well as having that same "[Multiplayer Questions?]" bit.<br />
** This includes the following new text in its mouseover text: Except for the host, all players are spectators by default. There is only one human player faction by default. Any number of players can share control of a single faction, or each player can have their own faction that they control on their own. You can mix and match as you like.<br />
<br />
* The connect by IP window has been completely reworked visually so that it matches the rest of the game and doesn't look like the old temporary style that we were using in 2017 (because that's what it was).<br />
** This also lets us put extra information on that screen to help anyone who might be confused.<br />
<br />
* The client connections status window is now patterned as a continuation of the connect by IP window, and it's nice and graceful and in the new style.<br />
<br />
== Version 2.106 Immortals and Unresponsiveness ==<br />
(Released July 23rd, 2020)<br />
<br />
=== Bugfixes ===<br />
<br />
* Put in field names for the risk analyzers saving, so if they have trouble serializing we can see which field it was.<br />
** Also then made it so that the total increase and net increase both are automatically clamped to 0 instead of a negative number so that they won't throw an exception when trying to save.<br />
** Thanks to GreatYng for reporting.<br />
<br />
* When stacks are split, they now have their "time on planet" and "time alive" set to be whatever the original stack was. Same with the amount of cloaking points they have lost, and the number of cloaking points they have left.<br />
** This prevents a variety of abilities from triggering, including the "invincible if only on this planet for x seconds."<br />
** We also made it so that dying to remains does not reset the "time have been alive or on this planet" counter, for similar reasons.<br />
** This keeps the vanguard hydra heads from being insanely impossible to kill, among other issues that are probably pretty much all in the player's favor to have resolved.<br />
** Thanks to crawlers for reporting.<br />
<br />
* Added some extra debugging information for the status of gamecommands that are queued, to see if there are clogs happening. At this point, we can't replicate any evidence of that, though we have some reports from multiple players of it. So maybe the problem either takes a bit to manifest, or is in a different area of the code than we expected.<br />
<br />
* AIP should no longer increase when things die to remains if you have the "ships of X type die to remains instead of dying entirely" galaxy map option on.<br />
** This is untested, but should work.<br />
** Thanks to crawlers for suggesting.<br />
<br />
* Found and fixed the core typo from a few builds back where remains that were being rebuilt were being set to have the cost of the rebuilder, not themselves. This was previously massively overcharging players for building most things, but then once we put on a band-aid to fix that, it started giving it to them for basically free.<br />
** Thanks to Lord Of Nothing for the report and save.<br />
<br />
* Fixed a bug from the last few versions that nobody seemed to notice, where the galaxy map was not centering on planets properly when you first went into the game after loading a savegame. This had to do with when we were calculating the position of the planet, and that not always being calculated before we tried to center on it.<br />
<br />
* Fixed a bug where it was possible that a client would send more commands to the host than it would tell the host about, and thus the host would not know to read the extra ones (or vice-versa). In single-player you are both the host and client, so it still applies.<br />
** This was happening because of multiple threads adding to the queues of commands at the same time that the queue was being drawn down.<br />
** This was actually something that probably could have happened since more or less forever, but it was substantially more likely in the last few versions because of some efficiency improvements we made.<br />
** Additionally, we have now switched to using a ConcurrentQueue for each of those collections, rather than a regular Queue. This should also help with potential contention.<br />
** There was also the possibility that we might not be able to get enough commands out of the list for some reason to then send more, and we are also now guarding against that.<br />
** Previously, this problem was manifesting as orders not being carried out when you gave them, sometimes or all the time. And things like "save my game" and "pause or unpause" not working anymore.<br />
** We were able to duplicate this in one savegame after some time, but no longer can. Given the intermittent nature of this sort of thing, we can't say for sure that it is solved -- but the logic of what was going on makes sense, and the fix we put in should hold that at bay. It's one of those "can't prove a negative" things, at the moment, so fingers crossed it just never shows up again.<br />
** The characteristics that we observed while this happens, if it happens to you and you want to see what you can tell us:<br />
*** In the escape menu, under the memory pooling performance, the number of raw commands were steadily climbing. One or two every few seconds. This should never happen in that way. Increases happen, but not a steady drain flow like that.<br />
*** In the escape menu, further down under the Commands Queued By Type, you may see some null warnings up at the top of that list, now. That wasn't there when we observed it, but it would be if it ever happened now.<br />
** Thanks to zeusalmighty, Puppet Master, Gdrk, and GreatYng for reporting and giving advice on how to reproduce it.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* In our copy of FORGE networking, we've removed some useless extra code that was for the UniversalWindowsPlatform framework, which we won't be ever using.<br />
<br />
* In our copy of FORGE networking, we also got rid of a very useless set of "pending" messages on the UDPClient and UDPServer, which were ostensibly to help with reliable messaging, but in reality was just doing some useless event handling and invocation, and some useless cross-threading locks. It just put the things in the basket and took them back out, never checking the basket or doing anything with it. Thankfully, there is a second basket for reliable UDP inside the UDPPacketComposer, so this was just extra redundancy.<br />
<br />
* Added a new ArcenNetworkClientConnection abstract class, which we now store on ArcenNetworkAuthority in a ClientConnections list.<br />
** These are connections, not yet correlated to specific players. But it lets the network pipe connect up a specific connection with a specific player (or reject that connection if it's not okay).<br />
** Each individual networking framework (ArcenSocket descendent class) is actually responsible for keeping track of these connections and populating them.<br />
** But the actual network authority does the job of authenticating them into a given game and handling the challenge/response work, figuring out a match to a player slot in the game, etc.<br />
** With this in place, we can now get rid of GetNumberOfConnections(), because that's now moved out of the socket and into the network authority.<br />
** This is a substantial refactor, in that it will really make Steamworks and GOG a lot easier for us to work with as networking frameworks, faster.<br />
<br />
* NetworkingPlayer in FORGE now inherits from ArcenNetworkClientConnection, and is the first version of a networking framework using this new pattern.<br />
** On NetworkingPlayer, rather than having a public { get; private set; } for some of the immutable connection things, we now use them as public readonly. This is both more efficient in performance (slightly), but also prevents sync issues between this class and its new underlying abstract class.<br />
** This class gives the information it needs to the base class, and doesn't bother registering the host NetworkingPlayer as an underlying client connection at all, keeping things simple.<br />
<br />
* A bunch of stuff with the FORGE networking logging has been replaced with wrappers around our own logs, so that if there are internal exceptions those don't just go nowhere invisibly anymore.<br />
<br />
* Trimmed out a bunch more old FORGE code that has been commented out for years from the look of things.<br />
<br />
* RespondToNewConnectionAcceptedByTransportLayer() is definitively game code, not part of the actual networking transport layer, and it has been moved into the central codebase and away from any specific networking framework.<br />
** "Hello friend, you've connected: what's your profile name you want to play under?" Etc.<br />
<br />
* A fair bit of the "initial chatter" of clients connecting to a host and the host responding are now logged to the debug log no matter what.<br />
** There really is not that much that is said, and this will certainly help someone at some point who is having some sort of connection issue.<br />
<br />
* When clients are connected to the host, now the host not only shows the number of clients, but also sees their profile names that they have chosen to connect with.<br />
<br />
* A bunch of event-driven stuff on the FORGE networking has been made a bit more inline, improving performance a bit and also reducing certain areas of complexity.<br />
<br />
* The initial challenge-response work, and "what's your name" work, is all functional again. This is stuff that will be identical regardless of the network framework.<br />
** The host can now properly see the profile name of the client, and is poised to send the client back all the world information.<br />
<br />
== Version 2.105 Selection Hotfix ==<br />
(Released July 22nd, 2020)<br />
<br />
* The game still loads various xml files asynchronously, and loads icons and music and sound in that fashion, but it no longer tries to load the ships, shots, or wormholes in that way.<br />
** This was just too unreliable, because of some issues in the unity engine. It didn't affect all players, and not all the time -- but enough that it majorly affected the stability of the game for some folks, and that's too much.<br />
** This also removes the potential for the really long (15-30 second) lag time when you are first opening a new game or the lobby if things didn't load during the loading period.<br />
** Thanks to Ovalcircle for the most recent set of reports.<br />
<br />
* Previously, the game was using a standard List<> object for keeping track of selected ships, and that sometimes ran into inefficiencies and cross-threading issues.<br />
** In the prior build, we tried to fix some of those cross-threading issues, but wound up making things not actually deselect properly.<br />
** To fix all of the above, we've now switched to the much more flexible and robust ArcenLessLinkedList<> object, and adjust the code to handle this. This is both more efficient (not that efficiency is a major problem here), and does not fall victim to the various cross-threading woes that the old style could. <br />
** And, naturally, as part of that, this also resolves the frankly infuriating selection issues in the most recent build of the game. Sorry about that one!<br />
** Thanks to ctl0ve, CRCGamer, Chuito12, and Burner for reporting.<br />
<br />
* Previously, the tech menu only showed techs that would actually benefit a ship you have at present, or which you could capture.<br />
** This was very confusing to a lot of players, as they would not see the entire tech tree and thus think that something was missing or broken.<br />
** In some other cases, possibly due to changes in the recent past, you CAN build something (like a command station), but since you have not done so yet, it would not show up.<br />
** All of the techs now always show up, but the ones that are for ships that would not benefit you right now still show up as red and not researchable.<br />
** Additionally, the tech color shows up as white when it benefits ships you have, gray when it benefits ships that you don't have right now, and lighter gray when it benefits ships that you could capture.<br />
** Please note that since citadel upgrades don't benefit battlestations anymore, the citadel tech not showing from the start was working properly.<br />
** Thanks to Strategic Sage and CRCGamer for reporting the confusion.<br />
<br />
== Version 2.104 Negative Build Percentage Hotfix ==<br />
(Released July 21st, 2020)<br />
<br />
* Somehow or other, it became possible for some self-building ships to go very negative in their build percentage (instead of counting up to 100%, they would be way in the negative percentages of building process). <br />
** This seems to be a new bug in the last day or so, based likely around some changes that we made to improve the cross-thread reliability of the game. The problem is, upon manual code review of the areas that would be relevant, we just can't see anything that looks like a bug.<br />
** Ultimately what is happening is that the SelfBuildMetalRemaining is getting absolutely giant in value, far larger than the original metal cost of the ship that is constructing. This was probably an integer overflow from it going really negative first, and then wrapping back around, but it's hard to be sure.<br />
** We've put in some extra defensive code to make sure that if it goes negative at all, it marks itself as complete. We've also put in protections so that if you "owe more than it is worth" in general, that it will assume that there was an overflow and just go ahead and finish it now. These two changes should help to keep the problem from happening again, and fix the cases where it was already in progress.<br />
** While we were already at it, we put in a small general improvement that prevents you from being overcharged for the last tiny percentage of constructing a ship. If you had a bunch of engineers building, and each frame cycle they normally would do 1.1% of the construction of a ship, and charge you accordingly, then you might wind up in a case where you had only 0.2% remaining work to do, and yet got charged the full 1.1% rate. It is now careful to only charge you for what you would owe, so the 0.2% rate in this example.<br />
** Hopefully there are no other errors in any of the metal flows, with things like drones building, anything engineers would claim or repair, etc. The code looks clean, but then again the code for the self construction also looks clean. In the next couple of days, please let us know if you see anything else that seems amiss with how metal is being charged against you. So far we can't duplicate anything like that anymore, now.<br />
** Thanks to CRCGamer, deso, and Puppet Master for reporting.<br />
<br />
* Some code from yesterday dealing with cross-threading protections let us unfortunately sometimes wind up with runaway DoForSelected loops. This is now fixed, and it has several kinds of self-repair in place to prevent this from happening now.<br />
** Thanks to Gunner for reporting.<br />
<br />
=== Multiplayer Connection Work ===<br />
<br />
* Reworked the NetworkTrafficLog.txt multiplayer output to actually be a lot more informative.<br />
<br />
* GetNumberOfConnectsCurrentlyActive has been replaced with GetNumberOfConnections, which lets the network framework tell us a lot more about the general status of things happening.<br />
** Instead of just a generic number of players that exist, we can see how many are disconnected, how many if any are the host, how many are clients, etc, etc.<br />
<br />
* In the lobby, the host now sees how many connected clients there are, and if there are any disconnected ones, how many disconnected ones there are.<br />
** Previously it just showed one number that included the host and also disconnected clients all wrapped up into one.<br />
** It still isn't detecting disconnects properly in FORGE, but we'll get to that.<br />
<br />
* The host now only bothers sending heartbeat messages if it has at least one non-host client machine connected.<br />
<br />
* Removed some old "desync detected" code that was not fitting with the new plans for multiplayer.<br />
<br />
* Figured out some of why the client was not detecting itself as properly connected, and so was not getting messages from the host at all in the last few builds after the connection.<br />
<br />
* The way that gamecommands are queued and then given out to player simulations for both single-player and multiplayer is now more efficient.<br />
** We're using queues now instead of lists, and this gives us a lower chance of accidentally losing a command, as well (not that we know of that ever happening before).<br />
** This has several performance benefits even for single-player when there are a lot of commands going around.<br />
<br />
* Added a new FromServerToClient_AuthorizeThroughFrameNoCommands in addition to the FromServerToClient_SendNextBatchOfCommandsToExecute, to slightly save on space (1 byte per message) and make the logs clearer.<br />
<br />
* The network log no longer has a time delay built in where it logs only 100 items at a time. It just immediately dumps items to disk.<br />
** Realistically there is only substantial traffic every 100ms or so anyhow, and the delay in logging was incredibly confusing as a programmer working with it.<br />
<br />
* The network polling interval has been updated from 20 times per second to 100 times per second. In practice it will actually be variable, but the polling is extremely lightweight (the part that is on the main thread), and having absolutely minimal delays in getting and sending messages is what will keep things moving smoothly.<br />
<br />
* To make network logging even more efficient and clear, the old ArcenNetworkLogEntry is now ArcenNetworkSendLogEntry, and is now a struct instead of a class. This runs lightning fast and doesn't affect RAM usage.<br />
** We also now are then logging data that is gotten in (which we call TAKE) along with data that is sent (which we call SEND).<br />
** This way we can see the conversation between several machines all interleaved on a single machine's log, and thus figure out why they are saying what they do, and if messages are getting there, etc.<br />
** Surprisingly, the way we were logging things previously really didn't lend itself to that, so it was easy to go down rabbit holes of wrong information (thinking data did not get to a machine when in fact it did).<br />
<br />
* Furthering clarity on the networking side, we're now ignoring loopback messages-to-self on the host in our logs, which previously we were not doing.<br />
** This way we don't get drowned in a sea of stuff that "I'm telling myself in order to be the same as everyone else," and we can just see what is actually passing between machines.<br />
** The loopback stuff has been demonstrably working fine since more or less forever, unless we broke it today, since single-player relies on that.<br />
<br />
* Fun fact, after all these logging changes, we can now actually see how well parts of the networking are already doing.<br />
** As one client connects, the host is able keep talking to itself and/or others without breaking stride, letting the potential connection wait for the challenge and acceptance (not yet reimplemented) before it loops in the new client to the rest.<br />
*** This is a great example of how we can keep people from accidentally messing with the sessions of friends by trying to join during a game, etc. It's the sort of thing that only matters among friends, but it keeps it clean.<br />
** On top of that, we can see now that the reason for the host not noticing when a client disconnects is because it's ignoring the client that has not fully gone through the challenge-response process yet, and so the mystery of how it was "sending messages that failed but didn't flag the client as disconnected" is easily solved (answer: it wasn't sending messages to that particular client yet, because it is smart).<br />
** In general, by improving our logging quite a lot we can see what is actually happening and make sure all of this works properly. The vast majority of this is network-agnostic, which is doubly great. These particular logs will look substantially the same between FORGE and Steam and GOG.<br />
<br />
== Version 2.103 Hotfix ==<br />
(Released July 21st, 2020)<br />
<br />
* Fixed a bug from the prior version where the dark spire serialization fix was making any savegames with dark spire in them -- new or old -- not able to load.<br />
** Thanks to valinor000 and stanazolol69 for reporting.<br />
<br />
== Version 2.102 Digression For Quality ==<br />
(Released July 20th, 2020)<br />
<br />
* Using the "Increase Max Dyson Strength" hack will now also increase the Dyson's general mark level<br />
* Some minor buffs to the Dyson's income, mostly at higher levels<br />
** Thanks to a discussion started by zeusalmighty<br />
<br />
* When picking music (through the debug menu), the hovertext will now give you information on most of the tracks saying the original source<br />
<br />
* Improved the speed of some dictionary lookups by precalculating the ArcenAssetBundlePath CombinedPath.<br />
** This also required us to change their member variables into properties, and in return that meant that the general string fill methods needed to be adjusted to new FillBundle and FillPath methods for xml reading.<br />
** This doesn't affect as much code as it sounds like.<br />
** We also adjusted the various debug logging points to use the combinedpath, which is cleaner and easier to read, but not much faster since that almost never happens.<br />
<br />
* Fixed a bug that could happen with entity order serialization in rare circumstances if threads were fighting over putting items back in or taking them back out.<br />
** Since multiple threads do in fact often use orders, at once, this is one of the few collections prone to that.<br />
<br />
* Fixed a variety of exceptions that could happen based on cross-threading bad luck during the exit of the game either to the OS or to the main menu, all in the metal expenditures code.<br />
<br />
=== Ship Behavior Improvements ===<br />
<br />
* Fix two problems related to shields recovering from being bumped by Astro Trains <br />
** Human Home Forcefield Generators can now recover from being bumped.<br />
*** Thanks to Lord Of Nothing for the bug report<br />
** If a forcefield generator is bumped twice in short order, it will now do a better job of returning to its original location. This isn't perfect, but it's a pretty intense corner case<br />
*** Thanks to Puppet Master for the bug report<br />
<br />
* If there are only non-combatant enemies on a planet, ignore any requirement in the targeting code that particular targets need to be combatants. This prevents ships in FRD from discarding reasonable targets incorrectly. <br />
** Thanks to ParadoxSong for the bug report<br />
<br />
* Actually support Targeting tracing now; you need to set Targeting tracing and the Debug setting that lets you set the PrimaryKey for the unit you want to follow, and you'll get some actual logging. <br />
** Not for the faint of heart; intended only for developers who want to get their hands very dirty.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fix a bug where the 'delete campaign' button wasn't giving the campaign name<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a rare and harmless (but annoying) cross threading exception that could pop up with argument out of range exceptions in RenderShip.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
* Fixed a rare nullref exception that could happen in DoRemovalChecks() on shots, mainly a cross-threading thing.<br />
** Thanks to Lord Of Nothing for reporting.<br />
<br />
* Fixed two possible spots in DoForSelected() where cross-threading issues could sneak in and cause an exception in rare cases.<br />
** Thanks to Lord Of Nothing for reporting.<br />
<br />
* Fixed an issue when loading savegames that have a missing planet naming scheme. It will now default to the default naming scheme if it can't find the one that the world was started with.<br />
** Thanks to Oryutzen for a save that demonstrated this.<br />
<br />
* Fix a bug where the imperial spire wasn't Watching previously explored planets for you.<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fixed an error in TextMeshPro where it would still give us "Unable to use Ellipsis character since it wasn't found in the current Font Asset" invisible errors that would fill up the debug log even if warnings were disabled.<br />
** This was, in very long play, a memory leak as well as a performance drain, and it was generally invisible.<br />
** The ellipsis character was typically something it was trying to find specifically for purposes of showing cut-off text, and some fonts just don't have that in them. So no wonder we couldn't actually find the ellipsis character used in our own text files.<br />
** Thanks to Puppet Master for providing the log file demonstrating all this.<br />
<br />
* Fixed an issue where the stationsRemainingBeforeDepot on astro trains could go arbitrarily negative, thus causing an error on save. It now stops at 0, and thus seems not to cause the issue anymore. But on the change that an astro train does have a data exception during save anymore, it will now log what field is having the problem and we can fix it.<br />
** Thanks to Lord Of Nothing for the report and save.<br />
<br />
* The game has been updated so that the debug logging that is DoNotShow now ONLY goes to the ArcenDebugLog.txt, and not to the unity Player.log. The unity Player.log is kept in memory in a very unfortunate fashion, and in long gameplay this will be extra RAM used that should not be. Probably also extra slowness.<br />
** We added a new DoNotShowButSendToUnityLogEvenOutsideEditor Verbosity option that lets us have the old behavior of going to both of those logs, but we are not using that anywhere at the present time.<br />
** All of this is going to make it even more important that we have both kinds of logs from players if they have an outright game crash, now. But generally speaking, if it's an exception popup but not an outright crash, the ArcenDebugLog.txt has always been enough and will continue to be. It's only when the game crashes all the way to the desktop that we need the Player.log, typically, and now we'll just still need the ArcenDebugLog.txt in addition to that. However, any ShowAsInfo or ShowAsError logs to the main ArcenDebugLog will still appear in the Player.log, so potentially even that won't be true.<br />
** For a developer using the unity editor, it still logs everything to the actual unity log because that's for short testing cases and super useful to see output in realtime.<br />
** At any rate, we are trying to strike a balance between getting the logs we need, easily on the part of players, but without having any accidental extra usage of memory on very long play sessions.<br />
<br />
* All of the dark spire per-unit data is now saved in a format where we can tell which field is having trouble if one does.<br />
** The dark spire data "lastTimeAttemptedLocus" was trying to save as an int16 and would overflow any time a game saved that was more than about 32000 seconds in. Fixed.<br />
** Thanks to RockyBst for reporting.<br />
<br />
==== Memory Leak Fix From 2.099 ====<br />
<br />
* New setting on the debug menu: Show Pool Counts In Escape Menu<br />
** Used for searching for memory leaks, particularly between loads of a savegame. If pool counts keep rising after each load, then something isn't getting put back in the pool properly and is instead persisting lost in memory.<br />
<br />
* ArcenGameObjectResourcePools must all now have a unique name, and they register themselves in a central place that identifies how many of them there are.<br />
** These pools also now keep track of how many objects they have ever produced from themselves, so that if we are leaking objects from them we can tell. And we can tell if we are leaking pools themselves.<br />
** After seeing all of these in the new debug menu option above, we can clearly see that none of these are leaking and they are all behaving just wonderfully. Hmm. But we have a leak somewhere, so let's expand this...<br />
<br />
* Created a new CountedPoolBase abstract class that sits under the ArcenGameObjectResourcePool, and takes its counting capabilities and puts them there so that we can also use them for some other pool types.<br />
** This is also now used on a new "Shot Instance Renderer Pool Of Pools" so that we can tell if we are leaking there. And now ships and squads, too.<br />
** Also this is now used on LoosePool, which is the underlying basis for ship, shot, and squad visualizers (different from instanced renderers) now.<br />
** Despite all this, no memory leak was found in any of these pools. They are all working wonderfully efficiently.<br />
<br />
* ExternalizedPool now inherits from CountedPoolBase.<br />
** Same for TimeBasedPoolBase (and thus TimeBasedPool itself).<br />
** And same for BasicPool.<br />
** And holy cow, there's some sort of memory leak with the time-based pools, looks like, based on this. That makes sense, as we recently reworked some of their functionality to fix a bug with them. Apparently we introduced a new bug at the same time.<br />
<br />
* Added a new setting to the debug menu: Show Details Of Time-Based Pools In Escape Menu<br />
** Used for searching for memory leaks or other bad behavior on a certain very high-turnover series of pooled objects. If pool counts keep rising, or other numbers seem off, then we know we have a memory leak or a performance problem.<br />
** Thanks to Puppet Master, RockyBst, Lord Of Nothing, and NRSirLimbo for reports that led to us finding this.<br />
<br />
* Fixed a MAJOR bug from version 2.099 that was leading to a memory leak in general, and performance problems as well (the longer you played the slower it would get).<br />
** Our entire "time based pool" logic was not actually properly processing because we forgot a single line of code, go figure.<br />
<br />
==== Slow Load Or CTD Fix ====<br />
<br />
* Since we started using the asynchronous loading of asset bundle items using unity (the last few weeks), there have been some intermittent problems with certain random items not loading in properly. This is some sort of funky bug in Unity, we're pretty positive.<br />
** We solved that problem a week or so ago by checking the async request's asset property, and if it was not invalid, forcing it to finish loading even though it was stuck.<br />
** On most machines, this was causing a really annoying lag of 10-25 seconds while Unity did whatever it was doing to finish that load. That was really annoying, but only happened the first time you loaded a savegame or quickstart or custom lobby after starting the program, and not every run of the program, and not on all machines.<br />
** More recently, we discovered that the very act of checking the async request's asset property would cause an unrecoverable error deep in unity and an immediate crash to the desktop.<br />
** Killing two birds with one stone, we're no longer checking the async request asset property at all -- thus avoiding the crash -- and instead just do a normal synchronous load when we detect a failed load. This leaves the one async request in limbo kind of forever, but that shouldn't be a problem; if it ever decides to complete, it will see that it was already completed and just do nothing.<br />
** In the meantime, not only should this avoid the crash, but it should also avoid that awful lag spike that happened for those for whom it didn't crash.<br />
** The downside is that on our dev computers we haven't been able to replicate the error at all today, so we can't verify that this 100% works. It should work, and you should see in the arcen debugging log slightly differently that says "PrototypeObject failed async load and so loaded synchronously for [some stuff] (this is not a problem, but is odd)"<br />
*** If you're one of the people who were frequently seeing either the crash, or seeing the older "PrototypeObject fixed and loaded late for [some stuff] (this is not a problem, but is odd)" message, then we'd love to have a confirmation of you seeing the new message and all being well.<br />
** Thanks to Sol and RocketAssistedPuffin for reporting.<br />
<br />
== Version 2.101 Connection Status: Confirmed ==<br />
(Released July 17th, 2020)<br />
<br />
* Carriage returns and newlines are now supported by the "condensed" string format. This will prevent tutorial messages from turning those characters into question marks when they are dumped to the chat log. Note that this will only affect chat log messages logged in this version and on, not past versions.<br />
** Thanks to ParadoxSong for reporting.<br />
<br />
* The left and right click functions of the metal display have been switched to be more natural.<br />
** Thanks to Waladil and Galian Gadris for suggesting.<br />
<br />
* The "Spire Railgun Shop" mod that comes packaged with the game has been updated to use the icons from their new locations, and will no longer error.<br />
<br />
* We've reworked our "Window_PopupScrollingColumnButtonList" a bit to add some new handy features for us.<br />
** In the factions selection window, when you are adding new factions, it now still lets you see factions that you can't add because there is only one per galaxy, but now it shows them in red, doesn't allow you to select them, and explains why in the tooltip.<br />
** In the debug menu in the escape menu in the main game, the change music submenu now shows the current selection in red (with the note that you can't change to it because it is already playing), and it shows all of the options sorted alphabetically except for the current track, which it shows as the first item.<br />
*** Also fixed a bug where the music you selected to play would not actually be the track that played; it was choosing a random other track.<br />
<br />
=== Scourge Updates ===<br />
<br />
* The hovertext for the Scourge "Strength" in the game lobby now tells you what the strength does (more scourge ships/structures, and faster).<br />
<br />
* Add a "Sandbox: Extra Strong Mode" for the scourge<br />
** This is not balanced for regular play, but is intended as a sandbox thing.<br />
** Thanks to Avenger1649 for suggesting<br />
<br />
* Fix a bug where the scourge were periodically suiciding Defensive Fireteams into player positions.<br />
** Thanks to ParadoxSong for the save.<br />
<br />
* On intensities >= 5, the scourge can create cloaked "blockade running builders" if the player has tried to blockade the scourge into a small region of the galaxy<br />
** Thanks to ParadoxSong for the suggestion<br />
<br />
* On intensities >= 6, the scourge is intended to sneak a builder off to another part of the galaxy at the beginning of the game, to make it much harder for the player to blockade them in. This was not working on some map types, including the X type.<br />
** Thanks to ParadoxSong for the save that exposed this problem.<br />
<br />
* These changes should make the scourge much harder to deal with in general, and on the X map type in particular.<br />
<br />
=== Initial Multiplayer Connection ===<br />
<br />
* AllowOtherPlayersToConnect was a setting on the World object in the past, and thus something that was getting saved into savegames and that dictated how a lot of things worked for player connections.<br />
** We've removed this concept, and instead are making it based on the menu choices you make on the main menu.<br />
** We now have a DesiredMultiplayerStatus on ArcenNetworkAuthority, which lets us recall if you wanted to be the client, a host, or just left alone in single player.<br />
<br />
* The basic shells of SteamSocket and GOGSocket have been added to the game. The in no way function yet, but this will allow for them to be built out in the future.<br />
<br />
* The SpecialNetworkType has been moved into ArcenUniversal, and is now copied onto ArcenSocket along with the InternalName of the row that created the socket.<br />
** There is now a list of AllPossibleSockets on the ArcenNetworkAuthority to allow it to swap between sockets as needed, and particularly by type.<br />
<br />
* When you open the multiplayer menu, if you have that enabled, it will now set a default network framework for you based on the status of your game at that time.<br />
** If you are logged into Steamworks, it will set steam as the default network.<br />
** If that didn't work or wasn't true, and you are logged into GOG Galaxy, it will use that as the default network.<br />
** If none of those worked, then it will pick the first "other" network type, which in this case would be Forged.<br />
<br />
* All of the options in the multiplayer menu for hosting a savegame, quickstart, or custom game now properly do those things identically to as if it was the single-player menu, but put you into host mode first.<br />
** The single-player menu puts you into single-player mode, and makes sure that your ArcenSocket is set to NullSocket.<br />
<br />
* When you try to go into one of the client or host multiplayer areas from the multiplayer menu, it now properly activates your most recent chosen network framework, or switches to the first available one that actually can function right now on your system and gives you explanations for why it did that.<br />
** Essentially there is a fair bit of under the hood plumbing now for the frameworks to register themselves with the network authority class and explain about their availability.<br />
<br />
* If you are looking to connect to another machine, then the "connect as client" tooltip now gives you information about what to expect based on your currently-selected framework.<br />
** Are we connecting by IP? How much of a hassle will that be? Is it going to be by selecting a friend on Steam or GOG? Etc.<br />
<br />
* For IP-address-based networking frameworks, either starting a host mode or client mode event now pops up with a message explaining what information you need to give to the client players or get from the host.<br />
** This is not really the preferred networking method unless you're having a LAN party, and the game makes that clear, but it also goes out of its way to address the most likely areas of potential confusion for people who are using these frameworks.<br />
<br />
* Fixed a few bugs, and added a bit more debug logging clarity, so that the host can once again properly open a socket and wait for connection.<br />
** This was working up until a week or so ago, and was simply messed up a bit when we reworked things to support multiple networking frameworks. There were lots of lonely hosts never getting any client requests ever since the game has been in public beta.<br />
<br />
* When you quit out of the multiplayer lobby back to the main menu, it now immediately disconnects you as a host or client, to avoid confusion of lingering connections.<br />
<br />
* When you are in the lobby in multiplayer, the chat sidebar/log now appears again. At the top it says if you are hosting multiplayer or a multiplayer client.<br />
<br />
==== Choosing A Networking Framework ====<br />
<br />
* The main menu has been updated so that the "network" button at the top of the multiplayer menu now updates its text to show the current network.<br />
<br />
* The network button at the top of the multiplayer menu on the main menu is now fully functional. It shows available network frameworks, and gives you explanations for each one, as well as showing unavailable ones in red with an explanation for why they are not available right now. It lets you select from available ones, which then get set as your current socket when you try to host or join a multiplayer game.<br />
<br />
==== What Is My IP Address If I Need It? ====<br />
<br />
* In the networking section of the settings menu, it now has helpful informational displays of your local IP addresses and your public IP address.<br />
** To get your public IP address, we have to make a public call to the url http://checkip.dyndns.org, so this may flag your software firewall to ask permission when you go to the networking tab now.<br />
** Our goal is of course for you to not have to use your direct IP addresses at all in this game, but if you're playing on a LAN then that would be one great example of when you'd want to use this.<br />
** At any rate, each IP address is stored in a textbox that you can copy-paste from, which is very handy when sharing with friends.<br />
** There are also lengthy explanations about what the public IP address is for, and under what circumstances to use it, as well as the local IP addresses, plus special notes for any IPV6 addresses that it detects.<br />
** Getting this data is time-consuming for your computer, so you will notice micro-lags every few seconds while you are on the networking tab, now. This is normal and should not impair your use of the functionality.<br />
<br />
==== Milestone: Successfully Connecting A Client To Host ====<br />
<br />
* The old interface for network connections by IP address is restored and works again. We'll have a different one for connecting via friends list on Steam and GOG, later, but this is the one that gets used for Forge and any other IP-based network frameworks.<br />
<br />
* Connections are now able to be established from one computer to another, for the first time since 2018!<br />
** We added the ability to see how many clients there are connected to a host in the lobby (including the host), so you can see the connection tick up.<br />
** Next up is them actually exchanging enough information to get the client into the lobby and have them see shared world info and be able to chat and all that. But this is milestone one!<br />
<br />
== Version 2.099 Last Rabbit Holes ==<br />
(Released July 15th, 2020)<br />
<br />
* There is now a galaxy setting to grant players Watch vision for 1, 2 or 3 hops from all command stations.<br />
** Thanks to uhamster9 for inspiring this addition.<br />
<br />
=== Fixes And Tweaks ===<br />
<br />
* Improved the way that time-based pools are incremented in time, so that we're never having accidental cases where we miss one.<br />
** Also made it so that they actually work as intended when the world is being cleared (running 16 seconds' worth of time at once). This then keeps the pools smaller if you repeatedly load savegames.<br />
<br />
* On the escape menu, under where it shows you the various numbers of objects in memory, it now shows you the number of galaxy planets and planet links activated and in existence.<br />
** This lets us tell when these have a memory leak, if there ever is one with them.<br />
<br />
* Additionally, galaxy map links are now pooled for the first time ever, as the discarding of them was previously a definite memory leak. Normally this just happened between saves and loads, but it was also possible to happen when nomad planets moved.<br />
<br />
* In addition to the existing time based pools, we now have a new ExternalizedPool.<br />
** This is now used for the galaxy map links, and actually we have stopped the galaxy map planets themselves from using the super-old IArcenGameObjectResourcePoolable and they also now use this.<br />
<br />
* The way that planets for the galaxy map are initialized, and the way that their positions are set, is completely overhauled.<br />
** This is more efficient and properly uses pooling (which never was working properly before, it turns out).<br />
** It also makes the position of planets automatically react to them having moved in the game sim, without having to do anything special.<br />
<br />
* The arcencolors asset bundle has been removed, with its contents simply rolled into arcenui. Ultimately this is a bit faster to load, and saves a bit of disk space and RAM also.<br />
** Also removed the aiw2squads bundle, and the examples bundle.<br />
*** The examples bundle simply has its example content still there, but not in a bundle (it's to help aspiring models modders).<br />
*** The squads bundle is old data that we've not used in forever, and so has just been cleared out. It wasn't huge, but wasn't worth being there.<br />
<br />
* Starting to load a savegame (including for a quickstart or the last settings for a lobby) now writes to the log when you start the process, and at the end of the process writes how long it took.<br />
<br />
* Added a new debug setting: "Write Detailed Savegame Timings"<br />
** When loading a savegame, including the 'last settings' for the lobby or the basis for a quick start, keep track of detailed timing data and write that into the normal debug log so that it's clear what is taking longer and shorter amounts of time.<br />
<br />
* It turns out that chasing "why savegames now take 16 seconds to load sometimes" was a snipe hunt. The serialization sizes logging, when enabled, actually was causing that amount of slowness. With that off, it loads in about 2 seconds.<br />
** The extra instrumentation that we added for the savegame timings is still nice, but ultimately was not a useful bit of time spent at the current moment.<br />
<br />
* Fixed an issue that could happen in the lobby in particular where it could not properly save your prior settings because the fleet ID or speed group ID was lass than zero.<br />
** This pretty much could only happen if you already had another error first.<br />
<br />
* Fixed an exception in SeedNormalEntities that could happen if you rapidly tried to regenerate maps in the lobby in just the wrong way.<br />
<br />
=== Under The Hood Improvements For Icon Modding And RAM Usage ===<br />
<br />
* The last of the icons from the ExternalIcons folder have been moved into the unity project that generates the asset bundles, simply to dispel any potential confusion about the fact that they can be edited directly and that have some change on the game without recompiling asset bundles. This was a frequent modder confusion.<br />
** That said, the ones that were in the Official_1 folder are now in a CentralIconBits, and can now be used in the UI for the first time if we ever want to. That means things like health bars and whatnot could in theory be used in the ui if someone wanted to, whereas before they could only be used on gamespace-level icons.<br />
<br />
* Cleaned out a variety of unused icons from the arcenui asset bundle, and in general tidied up some of our organization of working files versus final files.<br />
** Also standardized the naming of certain things.<br />
<br />
* Broke the "official icon dictionary" out into six dictionaries:<br />
** One is for the "central bits" like health bars and so on, and would be the same for all ships.<br />
** Two are for the overlays, like for saying what kind of starship or guard post something is. There can be more than one of these, and the fact that these are split out like this demonstrate the modding capabilities and how things can combine.<br />
** Three are for ship icons and their borders, and there can be more of these modded in as well. As with the overlays, not only does this demonstrate how such mods would work, but it also has the side benefit of slightly less VRAM usage in a few cases.<br />
<br />
* The way that GUI icons are discovered from the xml based on their gamespace-icon counterparts is completely revised, and is now based on extra information in the ExternalIconDictionary entries.<br />
** This is a lot more flexible, and allows us to load icons from multiple asset bundles and/or multiple files within the same bundle.<br />
<br />
* The naming for finding icons is now much more complicated, in the sense that they don't all come from a single dictionary called "Official."<br />
** So there were over 1100 places in the base game and expansions where we've had to modify to point to the new dictionaries. Any mods would also need to be updated to point to the new places, unless they want to start using their own icons (once we put together a tutorial for that).<br />
<br />
* The external sprite dictionaries have been updated to be able to properly load in in multiple threads.<br />
<br />
* The game is now able to load the xml files for external icons from any mod or expansion, in:<br />
** Expansions/[ExpansionName]/GameData/ExternalIcons/[thefile].xml<br />
** XMLMods/[ModName]/ExternalIcons/[thefile].xml<br />
** XMLMods_NonDistributed/[ModName]/ExternalIcons/[thefile].xml<br />
** It's worth noting that these are xml files that are generated by Texture Packer, not xml that we create.<br />
** These files are referred to in the "ExternalIconDictionaries" xml as something along the lines of xml_path="Official_CentralIconBits.xml"<br />
*** It will then search the main game's folder (/GameData/ExternalIcons/[thefile].xml), then all the expansion folders, then any activated mod folders for a file with that name that was specified.<br />
** This allows for mods to be self-contained when it comes to their icons, and it allows expansions to have their own icons that are not packaged with the main game (not that we have imminent plans to do that).<br />
<br />
* On the icons used in the game, we previously were not using any compression, which made them absolutely massive in size (80mb for the main dictionary).<br />
** This was done in order to preserve quality, but we're also using GIANT icons in order to allow for really super-high-res displays of the future, as well as square ones to allow for ideal mipmaps, etc. So the lack of compression was hugely overkill.<br />
** We're now using compressed textures, which turns what was 80mb into more like 8mb. This has a very direct impact on performance and VRAM usage, so particularly on low-spec machines they will likely run far better.<br />
<br />
* The game now automatically constructs custom "gimbal materials" for the in-gamespace icons, in as many combinations as are needed for the things that it has drawn for you so far.<br />
** The total number of materials always in the past was "one," but it was using a single large dictionary and a lot more VRAM -- and it had a finite amount of space for things. There was a solid chance we were going to run out of space in that one dictionary as part of implementing DLC2. But either way, mods were not possible. The new number right now is 8, looks like.<br />
** Now it may make a handful of materials, depending on how many mods you have installed that have custom icons, and several for the core game and expansions itself. But these are vastly smaller, and while this does increase the number of "draw calls," each material is still mostly instanced together (there are a few mesh differences depending on if there are health bars shown or whatever), but the overall load on the GPU pipeline is lower.<br />
** All of this is automatically handled by the game in as efficient a pattern as possible, and if you're curious how many combination materials it has created, you can see that in the escape menu at the bottom of the list of memory pooling info.<br />
<br />
* A new debug setting, "Log Gimbal Icon Material Creation", has been added:<br />
** When this is on, any 'gimbal icon' material creation events will be logged as to what was created and how long it took to do so.<br />
** Turns out that this uses an immeasurably small amount of time for each material (less than 1ms each), so that's awesome.<br />
<br />
=== Under The Hood Improvements For Mods With Code ===<br />
<br />
* The game is now able to load dlls from mods or expansions, rather than just from the central game folder.<br />
** This works just like the external icon files, and basically looks for the dll in the central game folder first (/GameData/ModdableLogicDLLs/[thefile].dll), and then looks at expansions and then installed mods if it can't find them.<br />
** The paths are:<br />
*** Expansions/[ExpansionName]/GameData/ModdableLogicDLLs/[thefile].dll<br />
** XMLMods/[ModName]/ModdableLogicDLLs/[thefile].dll<br />
** XMLMods_NonDistributed/[ModName]/ModdableLogicDLLs/[thefile].dll<br />
** We really don't have a need to do this with expansions, but the flexibility is nice.<br />
** With mods that are more than just xml, however, this finally lets a modder distribute just a single folder that has everything in it, and not have to worry about putting some things in central game folders.<br />
** This is only partially tested, but should work.<br />
<br />
* It's worth pointing out that expansions and mods already did (and still do) have the capability to load asset bundles (icons, music, sound effects, models, textures, shaders, etc) from their folders.<br />
** The structure for those is /GlobalBundles/ in the main folder for anything not platform-specific, /AssetBundles_Linux/, /AssetBundles_OSX/, or /AssetBundles_Win/ for the things that are.<br />
** Inside the folders for expansions it is: Expansions/[ExpansionName]/[OneOfTheAboveFolders]/<br />
** Inside the folders for mods it is: XMLMods/[ModName]/[OneOfTheAboveFolders]/ or XMLMods_NonDistributed/[ModName]/[OneOfTheAboveFolders]/<br />
** None of this is new, but it's worth mentioning for now.<br />
** This is only partially tested, but should work.<br />
<br />
=== Larger Gamespace Icons And Fixed Galaxy Map Line Offsets ===<br />
<br />
* We also now have a non-billboarding version of our shader for purposes of our icons on the galaxy map.<br />
** Our core shader does on-GPU (read: hyper efficient) billboarding to always fully face the camera. This is very useful in the main view where you are moving around the camera a lot but always want the icons to face you.<br />
** The downside, however, is that with a largely-straight-overhead camera like the galaxy map uses, this billboarding would cause there to be a perspective shift where the icons for planets would get offset from the lines leading between planets no matter what we did. It also caused them to move relative to the text that was next to them.<br />
*** This offsetting of the lines to the planets was one of the largest "visual papercut" issues that we've had for a really long time, and it is finally fixed!<br />
<br />
* The ship icon scale has been adjusted from a default of 1.5 to 2.2, and will affect all prior settings files.<br />
** It's description has also been updated for the personal settings tooltip: For the icons in the main display area (not the sidebar), how large should they draw? Default is 2.2. If you go too large, it can be hard to see things because they overlap too much. If you go too small, they can get extremely blurry because of flipping to a lower mipmap. The larger your screen DPI, the smaller you can go without losing clarity.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Building Multiplayer]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Paradigm_Shift&diff=39858AI War 2:The Paradigm Shift2020-08-10T15:45:22Z<p>Keith.lamothe: /* Version 2.117 */</p>
<hr />
<div>== Known Issues ==<br />
<br />
* Any bugs or requests should go to mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* '''Multiplayer is disabled but coming very soon.''' We first focused on tightening up the single-player loop ([https://forums.arcengames.com/ai-war-ii/from-the-dev-notes-on-where-i'm-at-regarding-multiplayer-right-now-(729)/ more info here]), so thanks for your patience!<br />
<br />
=== Multiplayer Remaining Todo List ===<br />
<br />
==== Short-Term Work ====<br />
<br />
* Client bugs in lobby:<br />
** Chat sent from client shows up twice on host and not at all on client.<br />
** Chat from client shows up on host as "Player 2" rather than the proper name.<br />
** Why are we able to spam randomize messages and have that get away from us?<br />
<br />
* Host and client both don't get updated values for some fields, like main map type, from underlying data.<br />
** Host and client are still exchanging a bunch of no-op commands in the lobby for some unknown reason.<br />
<br />
* Automatically create a new faction for joining human players, maybe?<br />
<br />
* Properly auto-assign colors from players across the network, instead of overriding from local like we do right now.<br />
<br />
* Show when clients are in spectator mode, or what faction they control.<br />
** New section above chat textbox that shows all of the player accounts for all clients and the host, with the proper names in place.<br />
<br />
* Allow clients to assign themselves (or be assigned) to player factions.<br />
** As many clients can share a faction as want to, no problem.<br />
<br />
* Add ability to name factions, separate from the name of the player controlling them (since it can be controlled by several players).<br />
<br />
==== Before Alpha ====<br />
<br />
* Re-code GameCommands to be more efficient and special-purpose. This is probably a job that is a couple of days long, and will potentially lead to widespread bugs for a week or so after it.<br />
<br />
* V1 of the desync detection and correction code, which should probably only take a few days.<br />
<br />
==== Before Beta ====<br />
<br />
* The other features on multiplayer, mainly regarding things like donating fleets between one another, and/or whatever else we come up with that is desirable.<br />
<br />
* Make the desync detection and correction able to correct factions, not just ships.<br />
<br />
* The really big one that remains is making sure that the cross-machine identifiers (PrimaryKeyIDs) are consistent between machines. I don't fully have this figured out yet, but I think that the interim state of it will essentially be that there are occasionally too many messages being passed around because of rolling sync errors. I will probably punt this issue into something I look at during the alpha, so that I can gauge what sort of impact it really has on performance, and where the problems are coming from.<br />
<br />
* Make sure that the lobby fully works as we expect, and various other small UI systems to get multiplayer basically playable. A lot of work went into the lobby in particular in the last few months to make that as close to as ready to go as possible.<br />
<br />
==== Before Full Launch ====<br />
<br />
* Whatever changes we need to make to balance in order to make things "feel right," which will be a matter of working with the multiplayer alpha and beta testers. A lot of things we already did in the past, like making science collection a humanity-wide thing that each player gets a copy of, rather than something people have to do individually (what a pain that was in AIWC). We will have to scale waves like we did in AIWC multiplayer, or in some other fashion. But a lot of the difficulty scaling is inherently handled by AIP being higher when you have to take more planets in multiplayer.<br />
<br />
* If we're seeing network degradation or other issues due to the constant need to sync errors, then that will be to be investigated and improved. But those things are most of what the focus of the alpha/beta will be on.<br />
<br />
== What's this phase all about? ==<br />
<br />
We've been preparing for this for months, tightening up the codebase and getting everything ready as much as possible. Now it's time to start having machines actually talk to one another, and then refine from there. At this point, LiteNetLib, Steam, and GOG Galaxy are all fully working as communication frameworks, but now the game itself needs to fully handle all its logic properly on top of those. You can see at the top of this page what the current todo list is. We expect to be into beta of multiplayer in August. Hopefully the alpha and beta periods are both short due to all the work of the last phase, but we shall see how it shakes out.<br />
<br />
Once we get into a stable beta period for multiplayer, then we'll let the clock run a bit and Chris will work on adding interplanetary weapons to the base game as a free update (that's the last of the kickstarter stretch goals). This phase should wrap up all our kickstarter promises (including a laundry list of other smaller items).<br />
<br />
Badger has already done the bulk of his work for the second expansion, Zenith Onslaught. Chris has done none of his work for that, as yet. Once multiplayer is in the "let it exist in beta and have people bang on it" phase, then Chris can circle in and get his work done for DLC2 along with those base game bits for interplanetary weapons, etc. The full version of multiplayer should launch alongside of DLC2, but we're not sure exactly when. October?<br />
<br />
Either way, multiplayer will be in a solid state that is "beta but just because we want more time with more people testing it" for a month or so while the DLC2 work from Chris's end happens. None of the actual multiplayer stuff is delayed in any fashion for DLC2, it's been the other way around.<br />
<br />
== Version 2.117 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Scourge: fix a bug where player-allied scourge were building tons of Builders but no Fortresses (they were mistakenly thinking they were minor faction allied)<br />
** A number of people on discord noticed the lack of Fortresses<br />
<br />
* Potentially fix a bug where Regenerator Golems were regenerating things while crippled<br />
** Thanks to crawlers for reporting.<br />
<br />
* AI Reserves now will create anti-player zombies.<br />
<br />
* Take another stab at 'adjacent planets watched'. Sigh.<br />
<br />
* Fixed an issue where on computers without GOG Galaxy installed, they would get a harmless-but-annoying error message at game startup.<br />
** Thanks to Badger for reporting.<br />
<br />
* Minor tweak to target list planning; use a case insensitive comparison for zombification.<br />
<br />
* The 'total units' count should now include stacks.<br />
<br />
* Fixed a bug where deathgrip tackle drones had a gun that could shoot immobile targets, greatly confusing their logic. That gun now has the only_targets_mobile_units flag.<br />
** Also fixed a bug where tackle-drone-launchers could give their spawned drones a direct attack order to go after an immobile unit.<br />
** Thanks to tadrinth and RocketAssistedPuffin for the reports leading to these discoveries.<br />
<br />
* Ion Cannon Shots can now:<br />
** Damage both the personal shields and hull of a target in one shot (including killing it outright).<br />
** Kill multiple ships in the same stack in one shot.<br />
** Thanks to GreatYng for pointing out the oddity of Ion Cannons not being able to do these things.<br />
<br />
* AOE shots can now hit any enemy bubble shield overlapping the explosion, rather than only being able to hit the shield if the generator (or something it's protecting) were physically within the explosion.<br />
** Thanks to NRSirLimbo for reporting and RocketAssistedPuffin for the save.<br />
<br />
* Crippled units (i.e. player flagships) can now pass through enemy bubble shields and traverse wormholes covered by them, to avoid being stranded in hostile territory.<br />
** Thanks to tadrinth for reporting and RocketAssistedPuffin for the save.<br />
<br />
* Melee units in attack-move mode will now go after units within a limited range (equivalent to a weapon with range=Normal1), so you have a middle-ground between "only attack your direct target or things actually touching you" and "pursue anything on the planet".<br />
** Thanks to OzoneGrif, wm46, RocketAssistedPuffin, and Ubifan for the suggestions and saves leading to this change.<br />
<br />
=== Multiplayer And Lobby Work ===<br />
<br />
* Heartbeat messages from the client to the server and vice-versa are now omitted from all of the networking logs. They were making things far too cluttered for us to be able to see real information when we had network logging of various detail levels turned on.<br />
<br />
* Some excessive logging on GOG and Steam with regard to their send result statuses has been removed, as again this was clogging up our network logs.<br />
<br />
* The clients now have a secondary FromClientToServer_SignalDoneButHasNoCommands that they can send in place of the FromClientToServer_SendMyNextCommandBatch when they don't have any commands to send (which is most of the time, statistically).<br />
<br />
* GameSpecificNetworking now has a DoPerFrameLogic() method, which lets us efficiently set some per-game settings like we do for the arcen debugging stuff.<br />
<br />
* New setting in the Network section of the settings menu: Network Logging Includes Frame Auths.<br />
** In the lobby and during gameplay, there are messages sent by the network every 100ms or so to keep themselves in sync, and if you have them included they will tend to crowd out the rest of the messages that are sent. So by default these are disabled.<br />
<br />
* New setting in the Network section of the settings menu: Network Logging Includes Command Batches.<br />
** In the lobby and during gameplay, there are messages sent by the network as frequently as every 100ms, but more often some sporadic multiple of that. This is how factions tell everyone what they want their ships to do, and how human players say the same. There's very little that we can say about this in a meaninful way in the networking log level, and again this will tend to crowd out the other messages that happen. So by default these are disabled, but bear in mind that most things that players actually cause to happen are being caused through these batch messages.<br />
<br />
* Found and fixed a general issue where the player accounts were not properly being cleared (and fully resetting the player account IDs) during all cases where a game is loaded into the lobby. At a bare minimum, it was affecting the "open a custom game with my last settings."<br />
** That would have eventually led to out of bounds exceptions, over time, and in general was cluttering up some areas important for multiplayer, but it had not had a negative impact on anyone so far.<br />
<br />
* Fixed a bug that was causing all sorts of craziness on clients in multiplayer in the lobby, with them not getting their galaxies full cleared.<br />
** This was leading to things not being properly in sync between the client and host, like planet names or locations, and things like extra planets or planets in old locations, or noninteractive planets at a whole other scale visually from the real planets. It was quite messy! All of that is now corrected, thankfully.<br />
<br />
* In the lobby, when you change the number of human factions, it now regenerates the map immediately. For other factions it does not bother, never has, because there's nothing different to see at this point in the galaxy.<br />
<br />
* The WorldSetup objects now have a readonly SetupTypeName on themselves, so that we can tell what they are.<br />
** ChangedSinceLastMapGenCall on this same object is now a property, which lets us throw out debugging messages when it is being triggered for whatever reason.<br />
** Something has been causing extra calls to be sent through the map generation pipeline in a redundant fashion that makes everything slower than it needs to be.<br />
<br />
* Removed the ability to send a WorldSetup object via GameCommand, as that is actually highly antithetical to the way we edit that data as of the last year and a half or so.<br />
** We specifically try never to adjust the entire thing, because several players at once could be editing different parts of it and we want those bits to all merge at once.<br />
** Got rid of the SetupOnly_ChangeSetup GameCommand, which was set to use this sort of thing.<br />
** Got rid of the LobbyWorking_HasBeenChangedAndShouldTransmitChanges() method on WorldSetup, which was being used by a loop in the footer to keep clients up to date.<br />
*** The problem with this is that this was far older code, back from perhaps 2017, and it was using an older and more sledgehammer-y approach to try to keep clients and the host in sync. When the lobby was redone in 2019, this became obsolete but was still hanging around and so caused some nontrivial chaos.<br />
** LobbyWorking_HasBeenChanged() has also been removed, as it seemed duplicative and was no longer in use perhaps?<br />
*** Oh goodness, this was actually how we were ever updating the long-term stored version of the game (as opposed to the lobby working copy). This was not a good way to do it, but it was not quite as antiquated as we thought.<br />
<br />
* Fixed a rare nullref exception that could happen in the ships sidebar if you were not properly on an actual planet.<br />
<br />
* Fixed an issue from the last few months (probably) where if you had an error during map generation, it would still try to dump you into the world and then give you tons of other errors. It should have been stopping you and making you fix whatever was wrong.<br />
** This is most common when there are not enough planets for all the factions you have chosen, or a few other rare cases. One such case is just discovered internally, and that's you having a planet starting index that is higher than the number of planets currently in the world.<br />
<br />
* Helper_AssignHumanHomeworld() and the AI variant are now Helper_TryAssignHumanHomeworld() and an AI variant.<br />
** It was already quite possible for these to fail if the player had selected something invalid, such as previously having clicked a planet with an index above 40 and then choosing a map size of 40 planets.<br />
<br />
* The game now auto-assigns humans a planet that is valid if they don't have a valid option, and it does so in a multiplayer-compatible fashion.<br />
** Previously this tried to do the assignment, but did not do so in a way that worked, and even if it had worked it would have only worked for one player.<br />
** This also includes a new sub-gamecommand, StartingIndex_FromAutoAssignInMapgen, which efficiently lets the UI know what is happening without triggering an extra map generation cycle or accidentally overriding a distinct change made by the player.<br />
<br />
* The lobby is now substantially more responsive even in single player, although it seems to be having some extra calls that we are still hunting down.<br />
<br />
== Version 2.116 GOG Networking Done ==<br />
(Released August 6th, 2020)<br />
<br />
* Fix a bug where the 'Watch Extra Hops Worth Of Planets' code was being applied incorrectly<br />
** Thanks to Tynendir for reporting.<br />
<br />
* Fixed a bug where Macrophage Spores don't move to new planets when loading a second save game.<br />
** Thanks to GreatYng for reporting, and StarKelp for fixing.<br />
<br />
=== Milestone: GOG Galaxy Networking Integration Complete! ===<br />
<br />
* The Arcen GOG Wrapper has been majorly updated to get your GOG Galaxy Friends list and the status of them so that you can play multiplayer with them if you want to.<br />
<br />
* When you are in the GOG networking mode, it now shows the list of your friends, just like it does for Steam.<br />
** Basically all of the functionality is identical here, in terms of how it shows those who are online, offline, and in-game, and lets you filter between them, etc.<br />
** The one difference is that in Steam we show the "in this same game" status as a light green (like Steam does), and in the GOG version we show that status in a purple color (to match their color theme).<br />
<br />
* The host computer now is able to open up a lobby for friends when it says "open server."<br />
** This works with all the various NAT punchthrough that GOG Galaxy supports, which we are not entirely clear on the details of. This may be as robust as Steam, or slightly less so, but we honestly have no idea. We'll be interested to hear from you! But either way, it's out of our hands at that point, so it's just information gathering.<br />
** The host is also now properly destroying the lobby when it shuts down, so that others won't try to connect to it and not see it.<br />
<br />
* When clicking the Join menu in GOG, the client now sees lists of their friends with four categories instead of just three.<br />
** Friends who are in-game but not in a lobby right now are showed in a dull light purple. Friends who are in game and have an open lobby show up with a bright purple status.<br />
** You can also cycle through all friends, open lobbies, friends in this game, and online friends.<br />
<br />
* In the listing of connections, for GOG it now shows a button that says "closed" instead of "connect" next to each friend who does not have an open lobby.<br />
** With Steam, someone could be in offline status but still let you connect to them. With GOG, we have to have a lobby ID to connect to, so there's no way to hide that and still even attempt a connection to someone.<br />
<br />
* GOG clients are now able to search for lobbies and correlate those to their friends list, which under the hood is a several-step process.<br />
** We are filtering out any potential rogue lobbies created by bad actors, and correlating them specifically to those owned by your friends.<br />
** It's possible that a friend might jump from the status of being offline (prior to opening the lobby) to showing up as someone you can connect to (when they open the lobby), actually, so potentially this actually does allow for the same sort of quasi-stealth game connections that people can do using Steam.<br />
** That said, since lobbies have to be advertised (to your friends) and we can't have a client just blindly try connecting by userID like in Steam, if you open a lobby and your other friends are actively in GOG looking to join a game of AI War 2, they would see that. Not a big thing, probably, but it's something we've noticed about the nature of these two differing systems.<br />
** You may find yourself having to hit refresh a few times on the client side in GOG, as there is a few seconds of lag before the lobby that the host creates shows up. It seems to be under 4 seconds at the most in current tests.<br />
<br />
* GOG clients can now actually initiate connections to a host lobby. And it works!<br />
** The client is aware of getting into the lobby, although it takes a few seconds.<br />
** The client also does gracefully tell them that they are leaving the lobby, and the GOG servers and the host are both finding out about that properly.<br />
<br />
* The GOG Galaxy networking client is absolutely fully implemented, now!<br />
** A huge amount of the actual send/read logic was able to be pretty much identical to Steam, which was not super far off from what we did with LiteNetLib.<br />
** Pro tip: if any other developer is ever wondering about SendP2P messages on the GOG network, those can take any size, not just stuff under 1200 bytes. It handles all of the fragmentation and recombination extremely well, and just as fast as Steam or other services.<br />
** The initial connection process to a lobby with GOG is a bit slower from North Carolina in the US than what we are seeing to Steam, ranging from 4-6 seconds on the first creation of a lobby on the run of a game to 2 seconds for ones after that. But once the connection is established and brokered, it's easily as responsive for us as Steam.<br />
** For us, this is routing through the internet and some firewalls, so the NAT punchthrough or relay servers or whatever it is in this case seem to be doing their job. We certainly did not mess with any ports.<br />
** Because of the nature of how data is read in from the buffers in GOG, we actually were able to get slightly more efficiency and speed with how we manage the heap compared to Steam or LiteNetLib. It's probably not usually a huge advantage, but it is something that we appreciate the efficiency of.<br />
** Essentially all three of the networking options have their own pros and cons a bit, but are all extremely good. That's a real relief to see, and to see them all working.<br />
** At this point it is now down to making the game networking actually work properly to have the game run, and that's a networking-framework-agnostic process.<br />
*** In a lot of respects it feels like after a large move of house, where all our stuff is now out of the old house and into the new house, but we still have a lot of unpacking and arranging to do. It still feels excellent to be done with the movers and have everything in one location now.<br />
<br />
=== More Multiplayer Work ===<br />
<br />
* Removed some old and unused code that is from the Valley Without Wind versions of multiplayer, checking for disconnections due to inactivity. We are handling that at a lower level, now.<br />
<br />
* Got rid of some old code that was mainly in the older version of our engine pre-Raptor, which was checking for "pthread exceptions" that was never something that could happen in the newer engine that we've replaced it with.<br />
<br />
* The game now has some self-checking code in there for giving us some actual feedback when it decides that it can't run the simulation or show visuals for more than 3 seconds at a time.<br />
** This is a pretty rare case, but it was the "too many changes and the client machine goes to black screen and unresponsive" issue.<br />
** This may have fixed the issue, although there also seemed to be another issue that was related to this.<br />
<br />
* Took out some other unused and old data.<br />
<br />
* The "UseSeed" command in the lobby no longer triggers the gamesettings to be saved. That was not useful, and slowed it down for no good reason.<br />
** It turns out that this was blanking out the settings data in a strange way a lot of the time, and causing the black and white view of the game after you reloaded. It also was apparently directly the cause (somehow) of the infinite black screen on the client after this was triggered.<br />
<br />
* Put in a lot of extra error handling for the steamworks networking in particular in case it has internal exceptions while trying to send something.<br />
<br />
* The cumulative effect of a lot of these changes has basically fixed a ton of issues in the lobby, including:<br />
** Clients not being able to use certain buttons or dropdowns.<br />
** Certain dropdowns not showing the right values to clients.<br />
** The client and the host getting a different view of things after certain buttons or dropdowns were used.<br />
** For a while there I was thinking that I was maybe going to need to make some of the controls for the lobby host-only, but now that's definitely not the case!<br />
<br />
== Version 2.115 Imperial Summons ==<br />
(Released August 4th, 2020)<br />
<br />
* You can now have multiple copies of the Devourer and Zenith Trader in a game<br />
** There's no technical reason for this limitation, and we're encouraging Zenith stuff because of the coming Onslaught<br />
<br />
* Quickstarts are sorted alphabetically again, instead of when the quickstart was created<br />
** Thanks to ArnaudB for the bug report<br />
<br />
* Add some defensive code to the Dyson Sphere<br />
** Thanks to GreatYng for reporting.<br />
<br />
* Fixed a cross-threading nullref exception that could happen during unit unselection (probably due to it dying).<br />
** Thanks to GreatYng for reporting.<br />
<br />
=== Imperial Fleet Summoning Changes ===<br />
<br />
* The AI now generates some weaker bonus exos against miscellaneous player targets (energy producers, MDCs, GCAs, etc), just to keep things exciting.<br />
* Fix a bug where Exos were trickling into their targets instead of moving as groups.<br />
* Start the Exos the moment you finish the hack, instead of some random time < 30 seconds from when the transceiver finishes.<br />
** Blame MasterGeese for these changes<br />
<br />
=== Multiplayer And General Lobby Work ===<br />
<br />
* The "partial map generation" code for giving a preview in the lobby now does even less work, bringing our mapgen times down to 200ms or so on average.<br />
** Because of this, we've also moved the mapgen code during partial-map-generation onto the main thread, to keep things as fast as possible. The full map generation still happens on a dedicated background thread.<br />
<br />
* During the lobby, the way that we handle the execution frame loops is now entirely new, and basically skips over a lot of things that were artificially introducing lag.<br />
** This makes the lobby perform far better in general, and also makes the map generation times absolutely flyyyy compared to what they were before, on single or multiple player maps.<br />
<br />
* This is leading to a number of substantial bugs in the lobby, temporarily, but will make the lobby performance far superior in both singleplayer and multiplayer as we get those resolved.<br />
<br />
* The silent "generate partial map" or "generate full map" complete messages now tells you how long it took.<br />
<br />
* The way that mapgen works, it now has a couple of different contexts that it passes in, so that each one has its own random number generator that is not dependent on the others.<br />
** This lets us ensure that there is consistency between runs of the same code on different machines, and on the detailed version (for play) and the non-detailed version (for viewing in the lobby).<br />
** This is largely solving the issue that we just have started having in this latest round of internal builds with a difference in the final map and the original map.<br />
<br />
* Renamed the Generate() method on map generators to GenerateMapStructureOnly() to be more clear, and also make our code more eaily searchable.<br />
<br />
* Adding a planet to a galaxy no longer requires passing in a context object at all. It now generates its own internal random number generator for its initial variables based on the galaxy map seed, its index, and its original position.<br />
** One of the side effects of this is that now when you change which planet you want to be your starting planet, it will keep the name the same instead of shuffling them around.<br />
** This sort of name-stability has actually never been in this game before, and always was mildly annoying. But in multiplayer lobbies it was going to be even more annoying. "I'll take Adam." "Okay, sure." "Well, I clicked it and now it is called Brian, but that's the one I meant." "Wait, what?"<br />
<br />
* When you are loading a savegame or a quick start as a template into the lobby, it now immediately regenerates the map rather than using the old map, because it's highly likely that the new structure will be different in some fashion.<br />
** This then also solves the problem of clients being different from the host on first connect, probably; that was kind of a compound problem in general.<br />
<br />
* Fixed an order of operations issue that could lead to the occasional "No human players found to seed homeworlds for!" error in the lobby in general, but more recently in multiplayer more frequently.<br />
<br />
* Possibly fixed the issue with later player accounts in multiplayer being renamed incorrectly to "player 2" and such.<br />
** There is still a fair bit of duplicate data happening between data structures, and some lobby/startup code that is blatantly single-player-specific that we need to get sorted out.<br />
<br />
* Dramatically cut down the time it takes to generate planet random seeds, but still with keeping them consistent as you click around the galaxy, by pre-generating the random seeds as the first 300 calls to the "broad random" for the galaxy. Any seeds needed after that will be generated the slow-but-unique way. This means mainly things like nomad planets or other things that are late additions. When just adding a planet or two, it's not so slow as to be a problem.<br />
<br />
* Until now, if you loaded an existing savegame it would automatically put you in control of the first player account, even if your profile name did not match.<br />
** It now continues to do that when you are loading as a single player game, which is enormously helpful for testing and just in general, really. But in multiplayer, it now tells you a list of what the available profiles are, <br />
** In general, if you are loading something as a template, it now clears all the old player account data and loads in your own current name as the new first player account (and further players are already added properly as they connect).<br />
<br />
* Fixed up the way that planets are shown as colored in the lobby galaxy map, so that it will work well with multiplayer and also with the new faster single-player-generated stuff.<br />
<br />
* Improved the logic for it properly setting you to be viewing the new planet you've selected after you make a selection in the lobby. Another thing that did work, but with the revised logic had to be made to work all over again.<br />
** This concludes the fixes to all the known bugs that we are aware of that we've introduced into the lobby today.<br />
<br />
* Fixed another nullref that was happening only on the multiplayer custom games after today's changes.<br />
<br />
== Version 2.113 Dyson Growth ==<br />
(Released August 3rd, 2020)<br />
<br />
* Fix a null reference exception if the game wants to spawn a Relic but you own basically every explored planet<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fix a bug with Dyson Sphere units not marking up<br />
** Thanks to GreatYng for reporting<br />
<br />
* Fix a typo in a Battlestation description<br />
** Thanks to ovalcircle for reporting<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed one oversight that was causing the factions tab chat to not show its chat text properly, unlike map and options in the lobby.<br />
<br />
* As text messages come in inside the lobby, it now scrolls to the bottom of the chat window, as you would expect.<br />
<br />
* The maximum length of chat messages in the lobby is now 1000 characters.<br />
<br />
* GetLocalPlayerFaction() is now GetLocalPlayerFactionOrNull(), to support spectator players.<br />
** Additionally GetFirstPlayerFactionOrNull() has been added, and GetIsFriendlyToLocalFaction() and GetIsHostileToLocalFaction() have been updated to work based on that in order to extend support for spectators even further.<br />
<br />
* Planet visibility is no longer determined from your local faction (since for spectators that might be null, and for all humans it is identical anyhow). It now just uses GetFirstPlayerFactionOrNull(), since that's slightly more effient and supports spectators.<br />
<br />
* Huge areas of the AI have been updated to allow for spectators, generally giving them information that mirrors that of what the first player is seeing (objectives-wise and so on).<br />
** In other areas, it simply updates things to not erorr out when you hit hotkeys, etc.<br />
** Spectators also can't run "cmd" messages from chat; it will just show the text as if it were not a command.<br />
<br />
* GetLocalPlayerFaction() on the planet object has been removed, as that did some risky caching for multiplayer in general, and also was not really compatible with spectators.<br />
<br />
* Fixed a couple of errors where non-sim-but-background-fation-AI code was referring to the local player faction. It now refers to the first player faction.<br />
** Probably this would not have made much difference, unless the game switched hosts partway through or something like that.<br />
<br />
* The chat controls in the lobby now work, though there are some bugs in them still.<br />
<br />
* The correct name for each player faction now shows up for even for players who are in spectator mode.<br />
<br />
* Player factions in spectator mode now see in the lobby chat area that they are in spectator mode.<br />
<br />
* Both the lobby chat and main game chat now support more characters in their text -- basically anything that our "condensed" ascii format is allowed to display.<br />
<br />
== Version 2.112 Steam Networking Complete ==<br />
(Released July 31st, 2020)<br />
<br />
* The description of the Ensnarer Battlestation now explicitly mentions that it can use AI Great-Turrets<br />
** A number of people have reported this as a bug over the years, so hopefully that won't happen anymore<br />
<br />
* All of the Fallen Spire ships, including those in the Spire Railgun Shop optional mod, have had their health and shields doubled, but their firepower halved.<br />
** This should make battles with other mega-units last longer, which feels more appropriate, but keep their "damage over time" the same. <br />
** When these were going toe to toe with the AI Exogalactic War Front units, they seemed to disappear too quickly, making them feel weak. This should keep their effectiveness the same as before, but make the battles take about twice as long with those large ships, so that it doesn't feel like instant evaporation at least.<br />
** The one unit not adjusted is the Spire SuperDreadnought from the Spire Railgun Shop mod. That was already maxed out as a "kills everything and is basically invincible" sort of ship.<br />
** Thanks to a variety of players for weighing in on the feel of these units, and Badger for suggesting this adjustment.<br />
<br />
* Rather than having a slider for the number of planets in the galaxy map view, there is now a dropdown.<br />
** This prevents the intense "regenerate map spam" and lag that was inherent in using a slider, along with making it easier to choose a certain number of planets.<br />
** We have made it so that it only gives you multiples of 2 below 60, multiples of 5 below 100, and multiples of 10 above that. This makes it easier to quickly peruse the range.<br />
** Each entry has some commentary on what it will mean to the feel of the map if you are hovering over it in the dropdown with the number of planets expanded.<br />
** Actually, it wasn't even regenerating the map after you changed the number of planets, which was really confusing! You had to hit regenerate map. Now there is no confusion.<br />
** All of this is easier to use as a player in general, on top of being something that is easier to deal with in multiplayer for sync purposes, too.<br />
<br />
* Fixed a longstanding bug where dropdown selections that were open could persist when leaving the lobby or changing tabs within the lobby.<br />
** Thanks to MaverickPenkenn for reporting.<br />
<br />
=== Milestone: Steam Networking Integration Complete ===<br />
<br />
* Fixed an issue where multiplayer clients disconnecting from a host would try and fail to save the last settings from the lobby. Now it does not save the lobby settings from a session you are just a client of.<br />
<br />
* All of the networking frameworks have had their "send to anyone here and myself" code consolidated into the network authority, so when an interface is partially implemented it won't wind up stalling out waiting on the host.<br />
** Less code duplication is also always good, but it wasn't clear that this was a complete commonality until we got partway into the Steam framework implementation.<br />
<br />
* A new ArcenSteamClientConnection wrapper has been created to keep track of the Steam connection on servers.<br />
** This now properly is registered while the steam connection is alive, and all of the "waiting for player to connect" and "player disconnection" events now happen properly.<br />
** For some reason, we are not getting the "host has accepted you" callbacks on the client end, but that doesn't really matter. As we start actually having our challenge-response data sent via the higher-level networking code, that bit will become irrelevant as it establishes itself within part of one second anyway. It's just a curiosity, or potentially something that is only meant to trigger host-side. Frankly the documentation is sparse in points, both from the Facepunch C# wrapper and the Valve C++ baseline, so this might be working as intended.<br />
<br />
* Substantial progress on the Steam network transmission of data. Still not quite seeing it register yet, but we're getting close.<br />
<br />
* The full suite of network logging has been integrated into our steam networking wrapper, now.<br />
<br />
* When a Steam host shuts down the connection, the steam client computers now definitely notice and react to that. The inverse was already working from the start.<br />
<br />
* Figured out the missing information on how to get data from the facepunch steamworks wrapper (call Recieve() to trigger the other events), and are sticking with the derived classes methods rather than the interface method, since for relay connections it seems like the interface method is not fully implemented.<br />
** With this in place, we're now getting messages on the client machine, and they are properly decoded! The host for some reason still doesn't get messages back, but this is progress.<br />
<br />
* Fixed a bug in our connection status window code that was causing it to stop showing a timer on connection stages after the earliest ones.<br />
** With LiteNetLib, that all flashes past so fast we could not tell that was even happening. With Steam currently stalling out with the host not getting messages, it became apparent.<br />
<br />
* Previously it was possible for our socket mode to be off, and silently ignoring messages we were sending.<br />
** This was initially done to make it so that any lingering messages that would try to be sent after a disconnect would not cause visible errors, but in this case we've wound up with the socket state being off on the steam networking, despite it being active, and this thus resulting in client messages being composed but not actually sent. That was not obvious because of the lack of error messages.<br />
<br />
* Figured out a stupid mistake in our own code, indeed a single line of code, which was preventing the client from sending data properly back to the host.<br />
** Steam networking is now fully functional in terms of sending data back and forth. There is some sort of issue with the world data not getting across properly, but we have to now verify whether that's limited to Steam or also happens on LiteNetLib.<br />
<br />
* Added in a substantial amount of extra error tracking in our univeral and game-specific network message handlers.<br />
** This helps us to find out where errors actually are.<br />
** In the case of steam, right now we are getting some exceptions when the host tries to tell the client what their player profile number is.<br />
<br />
* Fixed a simple typo that was having us send a junk message via both frameworks to the client when they first connected.<br />
** In both cases, this led to the galaxy map not showing up properly on the very first world connect. But in the case of Steam networking, it also led to an exception because the byte array was too small.<br />
** This extra smallness is actually more accurate, and basically it was only not erroring with LiteNetLib because the buffer array was larger than needed because they are pooled.<br />
** This is an interesting difference between these two networking frameworks, but neither one is particularly "wrong. But it does make Steam slightly more sensitive to certain errors in a way that is useful, because it's an error in both cases that manifests in other places.<br />
** Anyhow, this seems to argue for us to internally use Steam as our main testing framework, additionally because that means we are round-tripping out through the internet and Valve's servers and back rather than having the speed of a LAN.<br />
** This also means that the Steam networking library is fully completely integrated, which is a very major milestone! Now it's all game logic, regardless of what is going on with the two networks.<br />
** Also worth noting that it's under 3 seconds to connect a client to the lobby in our test case, using the Steam relay servers, etc. On the LAN it is under one second, so that's pretty killer.<br />
<br />
=== More Multiplayer Work For All Frameworks ===<br />
<br />
* "Planet GalaxyMapVisuals in CenterGalaxyViewOnPlanet null!" will no longer happen. It was a thing relating to trying to center on a planet slightly too early, and the population of the galaxy map still having failed.<br />
** We are now bypassing that and using the raw internal transform offsets to calculate the correct camera position.<br />
<br />
* In response to the initial challenge from the host, the client no longer just sends their profile name. They now also send their list of installed and enabled expansions and mods.<br />
** The host then compares that list to its own installed and enabled expansions and mods. If there are differences, then it rejects the client connection and does a popup on the client and a chat message on the host side explaining why.<br />
** It also notes in there that both parties can enable or disable expansions or mods in the Game tab of the Settings menu to get things to match.<br />
** Please note that, yes, in some cases there will be mods that are enabled but which "wouldn't do any harm" because their functionality won't be triggered in the campaign in question. We don't have any way of knowing that, so we have to err on the side of caution.<br />
** When it comes to expansions, there are none that "wouldn't do any harm," because all of them add some ships and features to the game in general that all players need to have. For instance, the first expansion adds a bunch of new turret options that are available to choose from in any game you play with that expansion on.<br />
** At any rate, we've gone out of our way to make it easy for people to disable expansions and mods so that they can play with friends who don't have those same expansions or mods. The last thing we want is for the only solution to this sort of thing to be someone reaching for their wallet or having to faff about in the filesystem.<br />
<br />
* Low-level chat messages that are sent to everyone from the host are also now sent to the host themselves. Previously, they could not see messages of this sort, turns out.<br />
<br />
== Version 2.111 Initial Steam Connection ==<br />
(Released July 30th, 2020)<br />
<br />
* Fix a null reference exception in my new spire relic code<br />
** Thanks to Chuito12 for reporting<br />
<br />
* Nanocaust: Make the AI wait a bit longer before unleashing Exogalactic units on it. Remove some deprecated code<br />
** Also the exogalactic units won't hang around to kill the entire nanocaust, so there's a chance it can recover.<br />
<br />
=== Milestone: Initial Steam Networking Connection Between Client and Host ===<br />
<br />
* The Steam versions of the game now initialize relay access on startup, to make it so that the first connection using Valve's relay network will be extra fast.<br />
** If you wind up not playing any multiplayer, this is absolutely harmless. If suddenly it is flagging your firewall on game start on the Steam versions of the game, though, that might be why.<br />
<br />
* The basic connection through Steam's newer networking sockets connection is now in place, using their relay servers as recommended. This is the approach that absolutely bypasses NAT traversal and anything else of that sort, and in fact hides your IP address from anyone you are playing with. The claim is that their backbone is faster in most cases than the general internet one.<br />
** If need be, we can make a "Steam over IP" version that allows for their networking sockets stuff to run more directly over UDP, and only fall back to their relay servers if there is a problem. This would be a lot like LiteNetLib, except with much better NAT punchthrough making use of ICE and STUN and all those things.<br />
** For now we are sticking with Valve's recommended practices.<br />
** Beyond just getting the initial connection up, we don't have anything there yet, but on the server we can see the Steam username of the client who requested to connect and who forged the connection.<br />
<br />
== Version 2.110 AI Exogalactic War Front ==<br />
(Released July 29th, 2020)<br />
<br />
* Spire Relics now have additional text in their descriptions explaining either A. whether the relic is on route to a particular planet , or B. that this relic must build on this planet<br />
** Thanks to Lord of Nothing for suggesting<br />
<br />
* All of the units that were previously named "Galactic War [name]" are now just named "[name]"<br />
** However, in the tooltips for them, their faction should now say "AI Exogalactic War Front" in whatever the hunter fleet's color is, rather than saying the AI Hunter Fleet.<br />
** This lets us keep the shorter name, while making their sub-group and source a lot more clear.<br />
** This does need testing, so please let us know if it doesn't show up correctly somewhere. This is using a new xml feature called "override_faction_name", which lets us use a different faction name for some units in a faction, but without actually creating a new faction.<br />
** Thanks to Ovalcircle for leading the discussion that led to this.<br />
<br />
* Spending a ton of science will now increase a player faction's Overall Power Level very slightly.<br />
<br />
* Remove some inaccurate description text for the Rorqual Hejira<br />
** Thanks to GreatYng for reporting<br />
<br />
=== UI for Steam Networking ===<br />
<br />
* Added the new ArcenNetworkConnectionOption class, which we are using as a basis for things like lists of your Steam friends that you can connect to.<br />
** On the network authority, there is a new PotentialServerOptions, which is used to list out such things. This can be used for anything that we need to list a variety of to connect to, not just friends in Steam and GOG. This is in contrast to the "type in an IP" method that we use with LiteNetLib.<br />
<br />
* Started building out the Steam networking framework layer, currently based on the ISteamNetworking implementation that most games use.<br />
** We MAY opt to also start supporting the newer ISteamNetworkingSockets framework that Valve has rolled out more recently, but that would be an alternative networking framework in AI War 2 that you could choose between.<br />
** The fundamental premise of those two Steam networking setups is really different, and while the newer one would in some ways be easier for us to implement, it seems a lot less familiar to the average Steam player, involves IP addresses potentially, and is maybe less battle-tested, but who are we to say.<br />
<br />
* Previously it was still possible to have some exceptions happen silently in the Engine_Universal main loop, and they would log to disk but not show up in your face. Fixed.<br />
** It was also possible to get some silent errors when clicking buttons and other UI elements, turns out. This made the application just seem not to respond to the click, but now it properly shows the error if there was one.<br />
** Also it was possible for certain errors in the UI call stack to prevent the display of the error window.<br />
<br />
* When you try to connect to an IP address, or you change your active networking framework, the game settings now get saved immediately so that that is remembered even if you shut down the program right away.<br />
<br />
* There is now a screen that will be used for Steam and GOG connections, from the client side, and in Steam it now:<br />
** Shows a list of all your Steam friends, with ones that are in AI War 2 at the top, then ones that are online, and then the rest below that.<br />
** Lets you sort to just ones that are in AI War 2 or online.<br />
** Lets you refresh the list to check for updated statuses.<br />
** There is a connect button for each friend, but that is not functional yet. Just haven't gotten to that part yet.<br />
<br />
== Version 2.108 Galactic War Units And The Exostrike ==<br />
(Released July 28th, 2020)<br />
<br />
* Completely rework the way Exogalatic strikeforce leaders work, to allow per-AI-Type customization. No functional change right now, but intended to support some new AI types for DLC2<br />
<br />
* HandleHelperJournals() has been split out into a bunch of sub-methods, since they can error in rare cases and it would be nice to know where the error generally is.<br />
<br />
* Fixed an issue where we were not letting negative risk analyzer data be saved properly. Turns out that has a good reason to be negative at times.<br />
** Thanks to Badger for reporting.<br />
<br />
* Added a new UI feature that is a throwback to some of the functionality we had in various past games: the "center screen message"<br />
** This is basically a message that can show up near the top center of the screen, and stay there for a bit or for as long as needed.<br />
** It won't block the mouse, and it is over everything except modal popups and tooltips.<br />
** This isn't something we would want to use all THAT often, but for cases of things like "hey the server isn't responding, why is MP stalled," this is exactly the sort of UI functionality we need.<br />
<br />
* Fixed a harmless bug where, for the last few months since we've been doing multithreaded loading of camera xml files, the "PrivateVisExtensions" assembly would sometimes have annoying but unimportant errors appear on startup.<br />
** Essentially, it turns out that loading classes from a custom dll is not entirely threadsafe. Go figure. The fix for that is simple, and it doesn't slow things down, but now we know.<br />
** Thanks to GreatYng for the first report of this we'd had outside of ourselves running into it.<br />
<br />
* Fix a bug where macrophage achievements weren't triggering if you killed all the Telia<br />
** Thanks to GreatYng for reporting and StarKelp for the fix.<br />
<br />
* The in-game credits have been updated to include two more individuals who are key DLC2 testers.<br />
<br />
* Added new GetWasWorldStartedOnGameVersionOlderThan() and GetWasWorldStartedOnGameVersionAtLeastThisVersionOrNewer() to world, which let's people find out in a really efficient way if a world was started before some certain point.<br />
** We can't be accurate past a month or so ago, because we were not tracking the original savegame version back then. But it's useful for looking at saves older than the more recent ones and altering them if need be.<br />
** This is now used specifically to fix this macrophage disabled stuff only on older savegames than 2.108.<br />
<br />
* Fix a mispelling in the Mesopotamian planet names<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fix a typo, "reciever" to "receiver"<br />
** Thanks to Apthorpe for reporting<br />
<br />
=== UI Changes ===<br />
<br />
* In the Load Menu, campaigns are now sorted by 'most recent save game in that campaign' rather than alphabetically<br />
** Thanks to Puppet Master for the suggestion.<br />
<br />
* The default sort for the load menu is now by date.<br />
<br />
* Rename 'Exogalactic Strikeforce' to 'Exostrike' and 'Extragalactic War Units' to 'Galactic War Units' in UI. Having "ExoGalactic" and "ExtraGalactic" was a perennial source of confusion<br />
** Note that internally the code uses the old names for the moment<br />
** Thanks to a discord conversation involving relmz32, Oryutzen and NRSirLimbo<br />
<br />
=== Dyson Sphere Buffs ===<br />
<br />
* The Dyson Sphere's ships should now really level up after the hack<br />
** Thanks to GreatYng and zeusalmighty for the bug reports<br />
<br />
* Dyson Sphere hack descriptions now say "This hack will make the Dyson Sphere very unhappy with you for a while" to clarify the behaviour.<br />
** Thanks to Apthorpe for suggesting<br />
<br />
* The Dyson Sphere now gets additional income (ie it can build ships faster) that scales with AIP. As AIP goes up the Dyson and Antagonized Dyson get stronger<br />
<br />
=== Multiplayer Work ===<br />
<br />
* SendMessageToAllClients() has been split into two methods: SendMessageToAllClientsWhoAreFullyConnected() and SendMessageToAllClientsRegardlessOfConnectionStatus().<br />
** We really don't need heartbeats and frame auths and so on going to clients who are still connecting in.<br />
<br />
* Also added a GetCountOfClientsWhoAreFullyConnected() that lets us know if there are any clients who actually have gotten all the way in (and thus we should send world data)/<br />
** And added GetCountOfClientsNeedingWorldData() that lets us know we should make everybody wait for a bit until those people connect in. Otherwise everyone won't be on the same page.<br />
<br />
* Added a OnServer_IsAtPausedSpotWhereGameWorldCanBeSent() that lets us wait for a break in things happening (usually only 400ms or so at most) to then have a clean slate to send a world state to a connecting client without that state changing between them being sent the state and them getting it.<br />
** Along with this, if GetCountOfClientsNeedingWorldData() is more than zero, then it now pauses authorizing more simulation frames until the world is fully taken in by the new clients who are joining.<br />
<br />
* When a multiplayer game is stalled out for some reason, it now uses that central screen message to let you know what is happening, and if possible, why it is happening.<br />
** The game itself will have stopped having any action at this point, though you can still scroll around and look at things and give orders. But nothing is proceeding on the enemy side, so you don't have to worry about it being in your way.<br />
** When a client is first connecting into the lobby, it also uses this, to basically get the host and any other existing players to wait a moment before making more changes, etc.<br />
** On the host, this is already set up to give some context about the exchange under the hood that is happening with the new client.<br />
<br />
=== Multiplayer Transition To LiteNetLib ===<br />
<br />
* Okay then... we are switching network libraries when it comes to our non-Steam/non-GOG transport layer. Instead of FORGE Remastered, we'll be using LiteNetLib.<br />
** FORGE has grown a lot over the years, but the version we were using was from 2018...ish. We looked into updating our version of the code, but were not thrilled with how complicated it was going to be. Since we had working AI War 2 multiplayer on FORGE at least as recently as 2017 (in an alpha state), staying with the existing code made a certain amount of sense.<br />
** However, we started running into really long delays with something as simple as sending 10 bytes to say what our profile name was. This was taking upwards of 14-18 seconds between two machines sitting three inches apart and both within five feet of a powerful wifi router. We verified that the polling was happening hundreds of times per second, and that massive amounts of data was being sent via sockets. But in the internals of the old version of FORGE we have, it was taking it quite a very long time to assemble that into a full message, despite all the churn of hundreds and hundreds of data reads that were apparently all just empty headers and then noise. <br />
** Time for a new approach. It's worth noting that the current version of FORGE still lists all the most internal classes as "in development and lots of dire warnings," so that was another reason for switching up frameworks.<br />
** We chose LiteNetLib at this point, and within 40 minutes of dropping that in, we had the first successful connection between the machines on using this framework for the game. It was just a simple "hello client" message in basic unicode, but it arrived extremely instantly, as expected.<br />
** Next steps are going to be doing some cybernetic implants on LiteNetLib, rather like what we did on FORGE, to make sure that it integrates with AI War 2 properly and our network authority, and that it communicates as directly as possible with our own pre-formatted bitstreams. Most of that should be part of one day of work, at this point. We shall see. Then it's back to the actual larger "build out the multiplayer part of the game" work, but minus the lag that was tripping us up the last day or two.<br />
** It's also worth noting that, with this switch, we had to unfortunately also lose the awesome NAT punchthrough work that Doug Fields did for us with the FORGE interface back in 2018, but LiteNetLib has some of that of its own. And hopefully most people use Steam or GOG if they are behind firewalls of any complexity (since relay servers then become required, and that's where the free relay servers are).<br />
<br />
* NetPeer in LiteNet now inherits from ArcenNetworkClientConnection.<br />
** For now, we are using our own methods to generate the ConnectionIndex, rather than using the existing peer.Id. There may be some numeric conflicts, otherwise, but we can also change this later.<br />
** We also are initializing everything on the Arcen-integration side, keeping our own clientsOfServer list for quick access, and then calling the game-layer RespondToNewConnectionAcceptedByTransportLayer() that will kick things off.<br />
<br />
* PrepareMessageForSending() has become WriteLogOfSend().<br />
<br />
* Added a new SendToSpecificPeer() method onto LiteNet's NetManager. Not sure why that variant didn't seem to exist.<br />
<br />
* Wiring back up our LitNetSocket wrapper class:<br />
** SendMessageToHost_Inner() done.<br />
** SendMessageToAllClientsRegardlessOfConnectionStatus_Inner() done.<br />
** SendMessageToAllClientsWhoAreFullyConnected_Inner() done, using the new SendToSpecificPeer() method.<br />
** SendMessageToSpecificClient_Inner() done, using our own ConnectionIndices for now.<br />
<br />
* Booyah! Exclamatory phrases are not the norm in our patch notes, but this is an exciting moment. LitNetLib is sending messages, and doing so with speed and accuracy and a minimum of fuss. The username travels three inches in well under a second, as should be expected.<br />
** At first, I was getting some very strange data sent across, and I figured that this was going to be an endianness problem, but actually all of the .NET/Mono data is the same endianness from the look of things. Which makes sense, given that otherwise savegames would not work from computer to computer.<br />
** After spending the night with that rattling around in my brain, this morning I decided to definitely do some profiling of the data before I started messing with the #ifdefs.<br />
** First thing I noticed was that I'd chosen to use the RawData byte array, and immediately next thought was "I better check there's not a network header in there." Turns out, yes, there's a UserDataOffset. The first four bytes are not my data, and so of course it would give gibberish as if the endianness was wrong. Just starting my reads from the proper offset makes everything work instantly.<br />
** All of this is from a Mac to a Windows machine at the moment, but my I'll be testing three-way with my linux machine as well. Right now laptop is sitting closed under the Mac.<br />
<br />
* LiteNet logging now gets funneled to our own main logging pipeline.<br />
<br />
=== Continued Multiplayer Work ===<br />
<br />
* A fair bit of work has been done to make intentional disconnections from the client or server tell the other side more quickly.<br />
** This should help to avoid some disconnect-and-reconnect issues that are otherwise inevitable, and it just makes things feel more responsive.<br />
<br />
* Additionally, when you use the in-game controls to exit the program as a while, it now takes one extra half second to lets Steamworks and GOG actually do their exit logic properly, rather than rushing out the door.<br />
** This should hopefully help with any cases of the game still being thought to be running on Steam in particular after it closed.<br />
<br />
* When you exit the game, while it is doing its brief exiting stuff it now throws up a center-screen "exiting.." message.<br />
<br />
* Got rid of OnServer_WaitingOnConnectionIndices, as this was basically a duplicate of something we are doing better and more cleanly a new way, now.<br />
<br />
* UpdateDebugText() and all of its related variables have been removed.<br />
** This was the sort of thing that, in all of our prior games before Raptor and moving to 3D, you could hit F3 and get output information from. But it has never really been used in AI War 2 properly.<br />
<br />
* Got rid of WorldTransmissionMessageType, as it was needlessly complicated.<br />
** This was essentially us breaking the world transmission data into multiple parts and then sending those in parts. Historically there were two reasons for this:<br />
*** Back in AI War 1, we were using the Lidgren network library, and even though it was trying to work around the MTU (typicaly 1200 bytes) of various networks players might be on (or passing data through indirectly), it was often having bottlenecks and slowdowns with how it sent fragmented messages through the network card. Our theory at the time was that it was flooding the buffers of the NIC, rather than giving it data at a more reasonable pace. Network cards have grown enormously in the last 11 years, as have the OSes that control them, so that's not really a concern now. All of the newer network libraries that we would be using to send data should be able to handle 1MB of data without incident.<br />
*** Secondarily, for AI War 1 and for the A Valley Without Wind games, we were sending enough world data that you could see a noticeable wait time, and by handling this above the network transmission layer we could give you visual feedback on transmission progress (even though the whole act of that actually slowed it down). Eleven years later, we have networks that are vastly faster basically everywhere in the world, and the world savegames for AI War 2 are much more efficiently packed than AI War 1 was. So sending a file like this really is like a midsize image on any website you visit, now. Not really a progress bar sort of situation, especially if the progress bar itself causes slowdown.<br />
<br />
* ConnectionStage has moved from being just a UI-only element to being ClientConnectionStage as part of the ArcenNetworkAuthority, so that clients can better keep track of their connection status. Usually this is less than a second or so, anyhow, but we still need to keep track of it in case something goes wrong in particular.<br />
<br />
* The host now properly sends the world data to the client, for the first time in three years or so.<br />
** The client is having some trouble understanding it thus far, so now is a good time to build in error handling (it was just silently failing, until now).<br />
<br />
* Added a new SendLowLevelChatMessage() method on the network authority, which is used mainly for sending back and forth arbitrary messages from clients and the host to explain about the status of things. These can be echoed to all other clients or not, as the case warrants.<br />
<br />
* If the client fails to load a world sent by the host, then the host and any other clients all get sent a low-level chat message about that, the client gets kicked out (since they never made it fully in), and the client gets a nice error message on their screen and in the log.<br />
** This way we can solve whatever the problem is, and nobody is left sitting wondering why things are slow (when in fact they errored).<br />
<br />
* When you are loading a quick start, or loading a savegame as a template into the lobby, it now clears the chat log. This was definitely not information that needed to persist from a prior game to the new lobby!<br />
** These sorts of chat log messages, which are kept over the long term for the game (up to a limit), are no longer shown in the lobby at all.<br />
** Instead, we now are using LocalMomentaryDisplayLog, which is something that doesn't get sent with savegames, and which normally is just "stuff showing on your sidebar during the game for a little while."<br />
*** This is perfect for the lobby, and in the lobby we are just showing the last 100 of these, and not clearing them until you reach the game itself.<br />
*** These things are actually shown by timestamp, not by gamesecond (which isn't ticking yet), so that's just extra perfect for a lot of reasons.<br />
*** This also leads to privacy for people who were talking before someone new joined -- you only see messages that were sent after you were connecting -- although that's not hugely important in most cases.<br />
<br />
* Got rid of ArcenUI.Instance.CurrentNowUTC, since that was putting all of our lobby chat messages in the British time zone. We didn't use this anywhere else, and it was puzzling that we used it at all.<br />
<br />
* NatPunchEnabled is now true on the server and client for LiteNetLib. We'll see how well that works.<br />
<br />
* Added a new debug setting to the network section of the settings menu: Write Network World Serialization Logs<br />
** When sending a game world across the network to a client, write NetworkWorldSerialization.txt, and when getting one from a host write NetworkWorldDeserialization.txt -- both in the PlayerData folder (but on two different computers). The only real reason to turn this on is if a client is unable to join a host and gets an exception; this lets us do a diff of the two files and figure out what is different about what the host is trying to send and the client is trying to read.<br />
** Note these logs are often huge, sometimes hudreads of MB each. Compressing them into a zip or tarball and then uploading them somewhere we can download them to find out what is happening is a good idea. Hopefully as a player you will never need this, but this is basically a way for us to test the network world sync process, which otherwise can be incredibly opaque and take a lot of time to hunt down.<br />
<br />
* Used our new network world logging capabilities to fix an error in network world transfer where it needed to send the game version in a different format.<br />
** The client now looks at the game version very early on, and if it does not match it sends a message back to the host telling the host what the problem was.<br />
** Basically: If the client can't join because of a version mismatch, that gets shown and things happen properly.<br />
<br />
=== Milestone: World Sync Between Host And Client ===<br />
<br />
* Milestone! Initial transmission of the world data from the client to the host now works properly.<br />
<br />
* When a local player account is missing the following methods no longer throw errors:<br />
** SwitchViewToPlanet<br />
** OnClient_SendClientBatchToServer (actually still errors, because it's useful to have it do so).<br />
<br />
* PlayerAccount is now more strongly linked to the new ArcenNetworkClientConnection, and its connected status is now a method called OnServer_GetIsConnected().<br />
** There is some duplication of concepts here, but when you factor in the way that things like viewing of planets are synced in multiplayer, this is a worthwhile separation of concepts.<br />
<br />
* If two players with the same profile name try to connect to a game at the same time, it will now prevent the second one from joining and tell everyone why.<br />
** Bear in mind that these are AI War 2 profile names, not Steam or GOG or what have you. Everyone needs to have a unique AI War 2 profile name in the current game, but they can change up their names however they want and global uniqueness doesn't matter beyond the current game you are in.<br />
<br />
* In situations where a player 3 joins after player 2, and it's the first time player 3 has been in this particular world, player 2 now gets told by the host about player 3.<br />
** And of course all the more complicated permutations of this. It's the new FromServerToClient_SendNewPlayerProfile.<br />
** This is needed specifically so that all clients can know which planets are being viewed by other players, so that which planets are "tier 1" processing is honored and identical everywhere. Among other later needs.<br />
<br />
* Clients connecting to a host are now properly told what playeraccount they have been put in charge of.<br />
** This makes PlayerAccount.Local not null on their local machine, and lets them give orders and whatnot from their spot there.<br />
<br />
* Errors that happen during the main sim step will now be more visible in multiplayer contexts.<br />
<br />
=== Milestone: Initial Sharing Of Lobby Between Host And Client ===<br />
<br />
* Milestone: Clients are now able to load into the lobby, and they and the host both see most (but not all) changes that are made.<br />
** Clients are not yet assigned to any faction (making them just spectator-mode for now), and there are some specific bugs with certain data that isn't synced correctly just yet.<br />
<br />
* Map generation can no longer happen in the lobby except on the host.<br />
** We have no real way to be sure that map generation is deterministic between machines, so we need to do a world sync each time anyway.<br />
<br />
* When the map is regenerated on the host during a multiplayer lobby, it recreates all of the playeraccounts needed for each of the player connections that exist.<br />
<br />
* And when the map is regenerated on the host during a multiplayer lobby, it now re-syncs the entire world data to all of the clients so everyone is up to date.<br />
** This also solves the "authorized through frame number" issue, which was really just a smaller symptom of this larger issue.<br />
<br />
* Both the client and host are now verified able to add, remove, and edit factions and have that properly affect the world.<br />
<br />
* Window_ServerMultiplayerConnectionStatus has been removed, as we no longer use that. We've been using the new center-screen messages instead, or the chat sidebar, as needed.<br />
<br />
* In multiplayer games, the save button is now disabled and says: Cannot Save Game As Client<br />
** If you click it, it gives you this message: Unfortunately, only the host can save games in multiplayer. To save on bandwidth as well as on processing power between your machines, there is a LOT that is calculated only on the host machine. If you were to save a copy of the game on your client's end, loading it would lead to a lot of wrong and missing data.<br />
<br />
* Additionally, autosave is now something that does not happen on multiplayer clients. Just the host.<br />
<br />
* The header of the load quickstart and load saved game menus now make it clear if you are loading for multiplayer or single-player.<br />
** Also on these screens is a new "[Multiplayer Questions?]" bit of text up at the top that appears only on the multiplayer version, and which has some helpful mouseover text.<br />
<br />
* Rather than having an annoying explanatory popup to click through every time you open the various ways of hosting or joining a multiplayer game, it now puts that extra information under the "[Multiplayer Questions?]" section up at the top of those screens.<br />
<br />
* At the top of the lobby screen, it now says if you are joining as a client or a host to a multiplayer lobby, as well as having that same "[Multiplayer Questions?]" bit.<br />
** This includes the following new text in its mouseover text: Except for the host, all players are spectators by default. There is only one human player faction by default. Any number of players can share control of a single faction, or each player can have their own faction that they control on their own. You can mix and match as you like.<br />
<br />
* The connect by IP window has been completely reworked visually so that it matches the rest of the game and doesn't look like the old temporary style that we were using in 2017 (because that's what it was).<br />
** This also lets us put extra information on that screen to help anyone who might be confused.<br />
<br />
* The client connections status window is now patterned as a continuation of the connect by IP window, and it's nice and graceful and in the new style.<br />
<br />
== Version 2.106 Immortals and Unresponsiveness ==<br />
(Released July 23rd, 2020)<br />
<br />
=== Bugfixes ===<br />
<br />
* Put in field names for the risk analyzers saving, so if they have trouble serializing we can see which field it was.<br />
** Also then made it so that the total increase and net increase both are automatically clamped to 0 instead of a negative number so that they won't throw an exception when trying to save.<br />
** Thanks to GreatYng for reporting.<br />
<br />
* When stacks are split, they now have their "time on planet" and "time alive" set to be whatever the original stack was. Same with the amount of cloaking points they have lost, and the number of cloaking points they have left.<br />
** This prevents a variety of abilities from triggering, including the "invincible if only on this planet for x seconds."<br />
** We also made it so that dying to remains does not reset the "time have been alive or on this planet" counter, for similar reasons.<br />
** This keeps the vanguard hydra heads from being insanely impossible to kill, among other issues that are probably pretty much all in the player's favor to have resolved.<br />
** Thanks to crawlers for reporting.<br />
<br />
* Added some extra debugging information for the status of gamecommands that are queued, to see if there are clogs happening. At this point, we can't replicate any evidence of that, though we have some reports from multiple players of it. So maybe the problem either takes a bit to manifest, or is in a different area of the code than we expected.<br />
<br />
* AIP should no longer increase when things die to remains if you have the "ships of X type die to remains instead of dying entirely" galaxy map option on.<br />
** This is untested, but should work.<br />
** Thanks to crawlers for suggesting.<br />
<br />
* Found and fixed the core typo from a few builds back where remains that were being rebuilt were being set to have the cost of the rebuilder, not themselves. This was previously massively overcharging players for building most things, but then once we put on a band-aid to fix that, it started giving it to them for basically free.<br />
** Thanks to Lord Of Nothing for the report and save.<br />
<br />
* Fixed a bug from the last few versions that nobody seemed to notice, where the galaxy map was not centering on planets properly when you first went into the game after loading a savegame. This had to do with when we were calculating the position of the planet, and that not always being calculated before we tried to center on it.<br />
<br />
* Fixed a bug where it was possible that a client would send more commands to the host than it would tell the host about, and thus the host would not know to read the extra ones (or vice-versa). In single-player you are both the host and client, so it still applies.<br />
** This was happening because of multiple threads adding to the queues of commands at the same time that the queue was being drawn down.<br />
** This was actually something that probably could have happened since more or less forever, but it was substantially more likely in the last few versions because of some efficiency improvements we made.<br />
** Additionally, we have now switched to using a ConcurrentQueue for each of those collections, rather than a regular Queue. This should also help with potential contention.<br />
** There was also the possibility that we might not be able to get enough commands out of the list for some reason to then send more, and we are also now guarding against that.<br />
** Previously, this problem was manifesting as orders not being carried out when you gave them, sometimes or all the time. And things like "save my game" and "pause or unpause" not working anymore.<br />
** We were able to duplicate this in one savegame after some time, but no longer can. Given the intermittent nature of this sort of thing, we can't say for sure that it is solved -- but the logic of what was going on makes sense, and the fix we put in should hold that at bay. It's one of those "can't prove a negative" things, at the moment, so fingers crossed it just never shows up again.<br />
** The characteristics that we observed while this happens, if it happens to you and you want to see what you can tell us:<br />
*** In the escape menu, under the memory pooling performance, the number of raw commands were steadily climbing. One or two every few seconds. This should never happen in that way. Increases happen, but not a steady drain flow like that.<br />
*** In the escape menu, further down under the Commands Queued By Type, you may see some null warnings up at the top of that list, now. That wasn't there when we observed it, but it would be if it ever happened now.<br />
** Thanks to zeusalmighty, Puppet Master, Gdrk, and GreatYng for reporting and giving advice on how to reproduce it.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* In our copy of FORGE networking, we've removed some useless extra code that was for the UniversalWindowsPlatform framework, which we won't be ever using.<br />
<br />
* In our copy of FORGE networking, we also got rid of a very useless set of "pending" messages on the UDPClient and UDPServer, which were ostensibly to help with reliable messaging, but in reality was just doing some useless event handling and invocation, and some useless cross-threading locks. It just put the things in the basket and took them back out, never checking the basket or doing anything with it. Thankfully, there is a second basket for reliable UDP inside the UDPPacketComposer, so this was just extra redundancy.<br />
<br />
* Added a new ArcenNetworkClientConnection abstract class, which we now store on ArcenNetworkAuthority in a ClientConnections list.<br />
** These are connections, not yet correlated to specific players. But it lets the network pipe connect up a specific connection with a specific player (or reject that connection if it's not okay).<br />
** Each individual networking framework (ArcenSocket descendent class) is actually responsible for keeping track of these connections and populating them.<br />
** But the actual network authority does the job of authenticating them into a given game and handling the challenge/response work, figuring out a match to a player slot in the game, etc.<br />
** With this in place, we can now get rid of GetNumberOfConnections(), because that's now moved out of the socket and into the network authority.<br />
** This is a substantial refactor, in that it will really make Steamworks and GOG a lot easier for us to work with as networking frameworks, faster.<br />
<br />
* NetworkingPlayer in FORGE now inherits from ArcenNetworkClientConnection, and is the first version of a networking framework using this new pattern.<br />
** On NetworkingPlayer, rather than having a public { get; private set; } for some of the immutable connection things, we now use them as public readonly. This is both more efficient in performance (slightly), but also prevents sync issues between this class and its new underlying abstract class.<br />
** This class gives the information it needs to the base class, and doesn't bother registering the host NetworkingPlayer as an underlying client connection at all, keeping things simple.<br />
<br />
* A bunch of stuff with the FORGE networking logging has been replaced with wrappers around our own logs, so that if there are internal exceptions those don't just go nowhere invisibly anymore.<br />
<br />
* Trimmed out a bunch more old FORGE code that has been commented out for years from the look of things.<br />
<br />
* RespondToNewConnectionAcceptedByTransportLayer() is definitively game code, not part of the actual networking transport layer, and it has been moved into the central codebase and away from any specific networking framework.<br />
** "Hello friend, you've connected: what's your profile name you want to play under?" Etc.<br />
<br />
* A fair bit of the "initial chatter" of clients connecting to a host and the host responding are now logged to the debug log no matter what.<br />
** There really is not that much that is said, and this will certainly help someone at some point who is having some sort of connection issue.<br />
<br />
* When clients are connected to the host, now the host not only shows the number of clients, but also sees their profile names that they have chosen to connect with.<br />
<br />
* A bunch of event-driven stuff on the FORGE networking has been made a bit more inline, improving performance a bit and also reducing certain areas of complexity.<br />
<br />
* The initial challenge-response work, and "what's your name" work, is all functional again. This is stuff that will be identical regardless of the network framework.<br />
** The host can now properly see the profile name of the client, and is poised to send the client back all the world information.<br />
<br />
== Version 2.105 Selection Hotfix ==<br />
(Released July 22nd, 2020)<br />
<br />
* The game still loads various xml files asynchronously, and loads icons and music and sound in that fashion, but it no longer tries to load the ships, shots, or wormholes in that way.<br />
** This was just too unreliable, because of some issues in the unity engine. It didn't affect all players, and not all the time -- but enough that it majorly affected the stability of the game for some folks, and that's too much.<br />
** This also removes the potential for the really long (15-30 second) lag time when you are first opening a new game or the lobby if things didn't load during the loading period.<br />
** Thanks to Ovalcircle for the most recent set of reports.<br />
<br />
* Previously, the game was using a standard List<> object for keeping track of selected ships, and that sometimes ran into inefficiencies and cross-threading issues.<br />
** In the prior build, we tried to fix some of those cross-threading issues, but wound up making things not actually deselect properly.<br />
** To fix all of the above, we've now switched to the much more flexible and robust ArcenLessLinkedList<> object, and adjust the code to handle this. This is both more efficient (not that efficiency is a major problem here), and does not fall victim to the various cross-threading woes that the old style could. <br />
** And, naturally, as part of that, this also resolves the frankly infuriating selection issues in the most recent build of the game. Sorry about that one!<br />
** Thanks to ctl0ve, CRCGamer, Chuito12, and Burner for reporting.<br />
<br />
* Previously, the tech menu only showed techs that would actually benefit a ship you have at present, or which you could capture.<br />
** This was very confusing to a lot of players, as they would not see the entire tech tree and thus think that something was missing or broken.<br />
** In some other cases, possibly due to changes in the recent past, you CAN build something (like a command station), but since you have not done so yet, it would not show up.<br />
** All of the techs now always show up, but the ones that are for ships that would not benefit you right now still show up as red and not researchable.<br />
** Additionally, the tech color shows up as white when it benefits ships you have, gray when it benefits ships that you don't have right now, and lighter gray when it benefits ships that you could capture.<br />
** Please note that since citadel upgrades don't benefit battlestations anymore, the citadel tech not showing from the start was working properly.<br />
** Thanks to Strategic Sage and CRCGamer for reporting the confusion.<br />
<br />
== Version 2.104 Negative Build Percentage Hotfix ==<br />
(Released July 21st, 2020)<br />
<br />
* Somehow or other, it became possible for some self-building ships to go very negative in their build percentage (instead of counting up to 100%, they would be way in the negative percentages of building process). <br />
** This seems to be a new bug in the last day or so, based likely around some changes that we made to improve the cross-thread reliability of the game. The problem is, upon manual code review of the areas that would be relevant, we just can't see anything that looks like a bug.<br />
** Ultimately what is happening is that the SelfBuildMetalRemaining is getting absolutely giant in value, far larger than the original metal cost of the ship that is constructing. This was probably an integer overflow from it going really negative first, and then wrapping back around, but it's hard to be sure.<br />
** We've put in some extra defensive code to make sure that if it goes negative at all, it marks itself as complete. We've also put in protections so that if you "owe more than it is worth" in general, that it will assume that there was an overflow and just go ahead and finish it now. These two changes should help to keep the problem from happening again, and fix the cases where it was already in progress.<br />
** While we were already at it, we put in a small general improvement that prevents you from being overcharged for the last tiny percentage of constructing a ship. If you had a bunch of engineers building, and each frame cycle they normally would do 1.1% of the construction of a ship, and charge you accordingly, then you might wind up in a case where you had only 0.2% remaining work to do, and yet got charged the full 1.1% rate. It is now careful to only charge you for what you would owe, so the 0.2% rate in this example.<br />
** Hopefully there are no other errors in any of the metal flows, with things like drones building, anything engineers would claim or repair, etc. The code looks clean, but then again the code for the self construction also looks clean. In the next couple of days, please let us know if you see anything else that seems amiss with how metal is being charged against you. So far we can't duplicate anything like that anymore, now.<br />
** Thanks to CRCGamer, deso, and Puppet Master for reporting.<br />
<br />
* Some code from yesterday dealing with cross-threading protections let us unfortunately sometimes wind up with runaway DoForSelected loops. This is now fixed, and it has several kinds of self-repair in place to prevent this from happening now.<br />
** Thanks to Gunner for reporting.<br />
<br />
=== Multiplayer Connection Work ===<br />
<br />
* Reworked the NetworkTrafficLog.txt multiplayer output to actually be a lot more informative.<br />
<br />
* GetNumberOfConnectsCurrentlyActive has been replaced with GetNumberOfConnections, which lets the network framework tell us a lot more about the general status of things happening.<br />
** Instead of just a generic number of players that exist, we can see how many are disconnected, how many if any are the host, how many are clients, etc, etc.<br />
<br />
* In the lobby, the host now sees how many connected clients there are, and if there are any disconnected ones, how many disconnected ones there are.<br />
** Previously it just showed one number that included the host and also disconnected clients all wrapped up into one.<br />
** It still isn't detecting disconnects properly in FORGE, but we'll get to that.<br />
<br />
* The host now only bothers sending heartbeat messages if it has at least one non-host client machine connected.<br />
<br />
* Removed some old "desync detected" code that was not fitting with the new plans for multiplayer.<br />
<br />
* Figured out some of why the client was not detecting itself as properly connected, and so was not getting messages from the host at all in the last few builds after the connection.<br />
<br />
* The way that gamecommands are queued and then given out to player simulations for both single-player and multiplayer is now more efficient.<br />
** We're using queues now instead of lists, and this gives us a lower chance of accidentally losing a command, as well (not that we know of that ever happening before).<br />
** This has several performance benefits even for single-player when there are a lot of commands going around.<br />
<br />
* Added a new FromServerToClient_AuthorizeThroughFrameNoCommands in addition to the FromServerToClient_SendNextBatchOfCommandsToExecute, to slightly save on space (1 byte per message) and make the logs clearer.<br />
<br />
* The network log no longer has a time delay built in where it logs only 100 items at a time. It just immediately dumps items to disk.<br />
** Realistically there is only substantial traffic every 100ms or so anyhow, and the delay in logging was incredibly confusing as a programmer working with it.<br />
<br />
* The network polling interval has been updated from 20 times per second to 100 times per second. In practice it will actually be variable, but the polling is extremely lightweight (the part that is on the main thread), and having absolutely minimal delays in getting and sending messages is what will keep things moving smoothly.<br />
<br />
* To make network logging even more efficient and clear, the old ArcenNetworkLogEntry is now ArcenNetworkSendLogEntry, and is now a struct instead of a class. This runs lightning fast and doesn't affect RAM usage.<br />
** We also now are then logging data that is gotten in (which we call TAKE) along with data that is sent (which we call SEND).<br />
** This way we can see the conversation between several machines all interleaved on a single machine's log, and thus figure out why they are saying what they do, and if messages are getting there, etc.<br />
** Surprisingly, the way we were logging things previously really didn't lend itself to that, so it was easy to go down rabbit holes of wrong information (thinking data did not get to a machine when in fact it did).<br />
<br />
* Furthering clarity on the networking side, we're now ignoring loopback messages-to-self on the host in our logs, which previously we were not doing.<br />
** This way we don't get drowned in a sea of stuff that "I'm telling myself in order to be the same as everyone else," and we can just see what is actually passing between machines.<br />
** The loopback stuff has been demonstrably working fine since more or less forever, unless we broke it today, since single-player relies on that.<br />
<br />
* Fun fact, after all these logging changes, we can now actually see how well parts of the networking are already doing.<br />
** As one client connects, the host is able keep talking to itself and/or others without breaking stride, letting the potential connection wait for the challenge and acceptance (not yet reimplemented) before it loops in the new client to the rest.<br />
*** This is a great example of how we can keep people from accidentally messing with the sessions of friends by trying to join during a game, etc. It's the sort of thing that only matters among friends, but it keeps it clean.<br />
** On top of that, we can see now that the reason for the host not noticing when a client disconnects is because it's ignoring the client that has not fully gone through the challenge-response process yet, and so the mystery of how it was "sending messages that failed but didn't flag the client as disconnected" is easily solved (answer: it wasn't sending messages to that particular client yet, because it is smart).<br />
** In general, by improving our logging quite a lot we can see what is actually happening and make sure all of this works properly. The vast majority of this is network-agnostic, which is doubly great. These particular logs will look substantially the same between FORGE and Steam and GOG.<br />
<br />
== Version 2.103 Hotfix ==<br />
(Released July 21st, 2020)<br />
<br />
* Fixed a bug from the prior version where the dark spire serialization fix was making any savegames with dark spire in them -- new or old -- not able to load.<br />
** Thanks to valinor000 and stanazolol69 for reporting.<br />
<br />
== Version 2.102 Digression For Quality ==<br />
(Released July 20th, 2020)<br />
<br />
* Using the "Increase Max Dyson Strength" hack will now also increase the Dyson's general mark level<br />
* Some minor buffs to the Dyson's income, mostly at higher levels<br />
** Thanks to a discussion started by zeusalmighty<br />
<br />
* When picking music (through the debug menu), the hovertext will now give you information on most of the tracks saying the original source<br />
<br />
* Improved the speed of some dictionary lookups by precalculating the ArcenAssetBundlePath CombinedPath.<br />
** This also required us to change their member variables into properties, and in return that meant that the general string fill methods needed to be adjusted to new FillBundle and FillPath methods for xml reading.<br />
** This doesn't affect as much code as it sounds like.<br />
** We also adjusted the various debug logging points to use the combinedpath, which is cleaner and easier to read, but not much faster since that almost never happens.<br />
<br />
* Fixed a bug that could happen with entity order serialization in rare circumstances if threads were fighting over putting items back in or taking them back out.<br />
** Since multiple threads do in fact often use orders, at once, this is one of the few collections prone to that.<br />
<br />
* Fixed a variety of exceptions that could happen based on cross-threading bad luck during the exit of the game either to the OS or to the main menu, all in the metal expenditures code.<br />
<br />
=== Ship Behavior Improvements ===<br />
<br />
* Fix two problems related to shields recovering from being bumped by Astro Trains <br />
** Human Home Forcefield Generators can now recover from being bumped.<br />
*** Thanks to Lord Of Nothing for the bug report<br />
** If a forcefield generator is bumped twice in short order, it will now do a better job of returning to its original location. This isn't perfect, but it's a pretty intense corner case<br />
*** Thanks to Puppet Master for the bug report<br />
<br />
* If there are only non-combatant enemies on a planet, ignore any requirement in the targeting code that particular targets need to be combatants. This prevents ships in FRD from discarding reasonable targets incorrectly. <br />
** Thanks to ParadoxSong for the bug report<br />
<br />
* Actually support Targeting tracing now; you need to set Targeting tracing and the Debug setting that lets you set the PrimaryKey for the unit you want to follow, and you'll get some actual logging. <br />
** Not for the faint of heart; intended only for developers who want to get their hands very dirty.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fix a bug where the 'delete campaign' button wasn't giving the campaign name<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a rare and harmless (but annoying) cross threading exception that could pop up with argument out of range exceptions in RenderShip.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
* Fixed a rare nullref exception that could happen in DoRemovalChecks() on shots, mainly a cross-threading thing.<br />
** Thanks to Lord Of Nothing for reporting.<br />
<br />
* Fixed two possible spots in DoForSelected() where cross-threading issues could sneak in and cause an exception in rare cases.<br />
** Thanks to Lord Of Nothing for reporting.<br />
<br />
* Fixed an issue when loading savegames that have a missing planet naming scheme. It will now default to the default naming scheme if it can't find the one that the world was started with.<br />
** Thanks to Oryutzen for a save that demonstrated this.<br />
<br />
* Fix a bug where the imperial spire wasn't Watching previously explored planets for you.<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fixed an error in TextMeshPro where it would still give us "Unable to use Ellipsis character since it wasn't found in the current Font Asset" invisible errors that would fill up the debug log even if warnings were disabled.<br />
** This was, in very long play, a memory leak as well as a performance drain, and it was generally invisible.<br />
** The ellipsis character was typically something it was trying to find specifically for purposes of showing cut-off text, and some fonts just don't have that in them. So no wonder we couldn't actually find the ellipsis character used in our own text files.<br />
** Thanks to Puppet Master for providing the log file demonstrating all this.<br />
<br />
* Fixed an issue where the stationsRemainingBeforeDepot on astro trains could go arbitrarily negative, thus causing an error on save. It now stops at 0, and thus seems not to cause the issue anymore. But on the change that an astro train does have a data exception during save anymore, it will now log what field is having the problem and we can fix it.<br />
** Thanks to Lord Of Nothing for the report and save.<br />
<br />
* The game has been updated so that the debug logging that is DoNotShow now ONLY goes to the ArcenDebugLog.txt, and not to the unity Player.log. The unity Player.log is kept in memory in a very unfortunate fashion, and in long gameplay this will be extra RAM used that should not be. Probably also extra slowness.<br />
** We added a new DoNotShowButSendToUnityLogEvenOutsideEditor Verbosity option that lets us have the old behavior of going to both of those logs, but we are not using that anywhere at the present time.<br />
** All of this is going to make it even more important that we have both kinds of logs from players if they have an outright game crash, now. But generally speaking, if it's an exception popup but not an outright crash, the ArcenDebugLog.txt has always been enough and will continue to be. It's only when the game crashes all the way to the desktop that we need the Player.log, typically, and now we'll just still need the ArcenDebugLog.txt in addition to that. However, any ShowAsInfo or ShowAsError logs to the main ArcenDebugLog will still appear in the Player.log, so potentially even that won't be true.<br />
** For a developer using the unity editor, it still logs everything to the actual unity log because that's for short testing cases and super useful to see output in realtime.<br />
** At any rate, we are trying to strike a balance between getting the logs we need, easily on the part of players, but without having any accidental extra usage of memory on very long play sessions.<br />
<br />
* All of the dark spire per-unit data is now saved in a format where we can tell which field is having trouble if one does.<br />
** The dark spire data "lastTimeAttemptedLocus" was trying to save as an int16 and would overflow any time a game saved that was more than about 32000 seconds in. Fixed.<br />
** Thanks to RockyBst for reporting.<br />
<br />
==== Memory Leak Fix From 2.099 ====<br />
<br />
* New setting on the debug menu: Show Pool Counts In Escape Menu<br />
** Used for searching for memory leaks, particularly between loads of a savegame. If pool counts keep rising after each load, then something isn't getting put back in the pool properly and is instead persisting lost in memory.<br />
<br />
* ArcenGameObjectResourcePools must all now have a unique name, and they register themselves in a central place that identifies how many of them there are.<br />
** These pools also now keep track of how many objects they have ever produced from themselves, so that if we are leaking objects from them we can tell. And we can tell if we are leaking pools themselves.<br />
** After seeing all of these in the new debug menu option above, we can clearly see that none of these are leaking and they are all behaving just wonderfully. Hmm. But we have a leak somewhere, so let's expand this...<br />
<br />
* Created a new CountedPoolBase abstract class that sits under the ArcenGameObjectResourcePool, and takes its counting capabilities and puts them there so that we can also use them for some other pool types.<br />
** This is also now used on a new "Shot Instance Renderer Pool Of Pools" so that we can tell if we are leaking there. And now ships and squads, too.<br />
** Also this is now used on LoosePool, which is the underlying basis for ship, shot, and squad visualizers (different from instanced renderers) now.<br />
** Despite all this, no memory leak was found in any of these pools. They are all working wonderfully efficiently.<br />
<br />
* ExternalizedPool now inherits from CountedPoolBase.<br />
** Same for TimeBasedPoolBase (and thus TimeBasedPool itself).<br />
** And same for BasicPool.<br />
** And holy cow, there's some sort of memory leak with the time-based pools, looks like, based on this. That makes sense, as we recently reworked some of their functionality to fix a bug with them. Apparently we introduced a new bug at the same time.<br />
<br />
* Added a new setting to the debug menu: Show Details Of Time-Based Pools In Escape Menu<br />
** Used for searching for memory leaks or other bad behavior on a certain very high-turnover series of pooled objects. If pool counts keep rising, or other numbers seem off, then we know we have a memory leak or a performance problem.<br />
** Thanks to Puppet Master, RockyBst, Lord Of Nothing, and NRSirLimbo for reports that led to us finding this.<br />
<br />
* Fixed a MAJOR bug from version 2.099 that was leading to a memory leak in general, and performance problems as well (the longer you played the slower it would get).<br />
** Our entire "time based pool" logic was not actually properly processing because we forgot a single line of code, go figure.<br />
<br />
==== Slow Load Or CTD Fix ====<br />
<br />
* Since we started using the asynchronous loading of asset bundle items using unity (the last few weeks), there have been some intermittent problems with certain random items not loading in properly. This is some sort of funky bug in Unity, we're pretty positive.<br />
** We solved that problem a week or so ago by checking the async request's asset property, and if it was not invalid, forcing it to finish loading even though it was stuck.<br />
** On most machines, this was causing a really annoying lag of 10-25 seconds while Unity did whatever it was doing to finish that load. That was really annoying, but only happened the first time you loaded a savegame or quickstart or custom lobby after starting the program, and not every run of the program, and not on all machines.<br />
** More recently, we discovered that the very act of checking the async request's asset property would cause an unrecoverable error deep in unity and an immediate crash to the desktop.<br />
** Killing two birds with one stone, we're no longer checking the async request asset property at all -- thus avoiding the crash -- and instead just do a normal synchronous load when we detect a failed load. This leaves the one async request in limbo kind of forever, but that shouldn't be a problem; if it ever decides to complete, it will see that it was already completed and just do nothing.<br />
** In the meantime, not only should this avoid the crash, but it should also avoid that awful lag spike that happened for those for whom it didn't crash.<br />
** The downside is that on our dev computers we haven't been able to replicate the error at all today, so we can't verify that this 100% works. It should work, and you should see in the arcen debugging log slightly differently that says "PrototypeObject failed async load and so loaded synchronously for [some stuff] (this is not a problem, but is odd)"<br />
*** If you're one of the people who were frequently seeing either the crash, or seeing the older "PrototypeObject fixed and loaded late for [some stuff] (this is not a problem, but is odd)" message, then we'd love to have a confirmation of you seeing the new message and all being well.<br />
** Thanks to Sol and RocketAssistedPuffin for reporting.<br />
<br />
== Version 2.101 Connection Status: Confirmed ==<br />
(Released July 17th, 2020)<br />
<br />
* Carriage returns and newlines are now supported by the "condensed" string format. This will prevent tutorial messages from turning those characters into question marks when they are dumped to the chat log. Note that this will only affect chat log messages logged in this version and on, not past versions.<br />
** Thanks to ParadoxSong for reporting.<br />
<br />
* The left and right click functions of the metal display have been switched to be more natural.<br />
** Thanks to Waladil and Galian Gadris for suggesting.<br />
<br />
* The "Spire Railgun Shop" mod that comes packaged with the game has been updated to use the icons from their new locations, and will no longer error.<br />
<br />
* We've reworked our "Window_PopupScrollingColumnButtonList" a bit to add some new handy features for us.<br />
** In the factions selection window, when you are adding new factions, it now still lets you see factions that you can't add because there is only one per galaxy, but now it shows them in red, doesn't allow you to select them, and explains why in the tooltip.<br />
** In the debug menu in the escape menu in the main game, the change music submenu now shows the current selection in red (with the note that you can't change to it because it is already playing), and it shows all of the options sorted alphabetically except for the current track, which it shows as the first item.<br />
*** Also fixed a bug where the music you selected to play would not actually be the track that played; it was choosing a random other track.<br />
<br />
=== Scourge Updates ===<br />
<br />
* The hovertext for the Scourge "Strength" in the game lobby now tells you what the strength does (more scourge ships/structures, and faster).<br />
<br />
* Add a "Sandbox: Extra Strong Mode" for the scourge<br />
** This is not balanced for regular play, but is intended as a sandbox thing.<br />
** Thanks to Avenger1649 for suggesting<br />
<br />
* Fix a bug where the scourge were periodically suiciding Defensive Fireteams into player positions.<br />
** Thanks to ParadoxSong for the save.<br />
<br />
* On intensities >= 5, the scourge can create cloaked "blockade running builders" if the player has tried to blockade the scourge into a small region of the galaxy<br />
** Thanks to ParadoxSong for the suggestion<br />
<br />
* On intensities >= 6, the scourge is intended to sneak a builder off to another part of the galaxy at the beginning of the game, to make it much harder for the player to blockade them in. This was not working on some map types, including the X type.<br />
** Thanks to ParadoxSong for the save that exposed this problem.<br />
<br />
* These changes should make the scourge much harder to deal with in general, and on the X map type in particular.<br />
<br />
=== Initial Multiplayer Connection ===<br />
<br />
* AllowOtherPlayersToConnect was a setting on the World object in the past, and thus something that was getting saved into savegames and that dictated how a lot of things worked for player connections.<br />
** We've removed this concept, and instead are making it based on the menu choices you make on the main menu.<br />
** We now have a DesiredMultiplayerStatus on ArcenNetworkAuthority, which lets us recall if you wanted to be the client, a host, or just left alone in single player.<br />
<br />
* The basic shells of SteamSocket and GOGSocket have been added to the game. The in no way function yet, but this will allow for them to be built out in the future.<br />
<br />
* The SpecialNetworkType has been moved into ArcenUniversal, and is now copied onto ArcenSocket along with the InternalName of the row that created the socket.<br />
** There is now a list of AllPossibleSockets on the ArcenNetworkAuthority to allow it to swap between sockets as needed, and particularly by type.<br />
<br />
* When you open the multiplayer menu, if you have that enabled, it will now set a default network framework for you based on the status of your game at that time.<br />
** If you are logged into Steamworks, it will set steam as the default network.<br />
** If that didn't work or wasn't true, and you are logged into GOG Galaxy, it will use that as the default network.<br />
** If none of those worked, then it will pick the first "other" network type, which in this case would be Forged.<br />
<br />
* All of the options in the multiplayer menu for hosting a savegame, quickstart, or custom game now properly do those things identically to as if it was the single-player menu, but put you into host mode first.<br />
** The single-player menu puts you into single-player mode, and makes sure that your ArcenSocket is set to NullSocket.<br />
<br />
* When you try to go into one of the client or host multiplayer areas from the multiplayer menu, it now properly activates your most recent chosen network framework, or switches to the first available one that actually can function right now on your system and gives you explanations for why it did that.<br />
** Essentially there is a fair bit of under the hood plumbing now for the frameworks to register themselves with the network authority class and explain about their availability.<br />
<br />
* If you are looking to connect to another machine, then the "connect as client" tooltip now gives you information about what to expect based on your currently-selected framework.<br />
** Are we connecting by IP? How much of a hassle will that be? Is it going to be by selecting a friend on Steam or GOG? Etc.<br />
<br />
* For IP-address-based networking frameworks, either starting a host mode or client mode event now pops up with a message explaining what information you need to give to the client players or get from the host.<br />
** This is not really the preferred networking method unless you're having a LAN party, and the game makes that clear, but it also goes out of its way to address the most likely areas of potential confusion for people who are using these frameworks.<br />
<br />
* Fixed a few bugs, and added a bit more debug logging clarity, so that the host can once again properly open a socket and wait for connection.<br />
** This was working up until a week or so ago, and was simply messed up a bit when we reworked things to support multiple networking frameworks. There were lots of lonely hosts never getting any client requests ever since the game has been in public beta.<br />
<br />
* When you quit out of the multiplayer lobby back to the main menu, it now immediately disconnects you as a host or client, to avoid confusion of lingering connections.<br />
<br />
* When you are in the lobby in multiplayer, the chat sidebar/log now appears again. At the top it says if you are hosting multiplayer or a multiplayer client.<br />
<br />
==== Choosing A Networking Framework ====<br />
<br />
* The main menu has been updated so that the "network" button at the top of the multiplayer menu now updates its text to show the current network.<br />
<br />
* The network button at the top of the multiplayer menu on the main menu is now fully functional. It shows available network frameworks, and gives you explanations for each one, as well as showing unavailable ones in red with an explanation for why they are not available right now. It lets you select from available ones, which then get set as your current socket when you try to host or join a multiplayer game.<br />
<br />
==== What Is My IP Address If I Need It? ====<br />
<br />
* In the networking section of the settings menu, it now has helpful informational displays of your local IP addresses and your public IP address.<br />
** To get your public IP address, we have to make a public call to the url http://checkip.dyndns.org, so this may flag your software firewall to ask permission when you go to the networking tab now.<br />
** Our goal is of course for you to not have to use your direct IP addresses at all in this game, but if you're playing on a LAN then that would be one great example of when you'd want to use this.<br />
** At any rate, each IP address is stored in a textbox that you can copy-paste from, which is very handy when sharing with friends.<br />
** There are also lengthy explanations about what the public IP address is for, and under what circumstances to use it, as well as the local IP addresses, plus special notes for any IPV6 addresses that it detects.<br />
** Getting this data is time-consuming for your computer, so you will notice micro-lags every few seconds while you are on the networking tab, now. This is normal and should not impair your use of the functionality.<br />
<br />
==== Milestone: Successfully Connecting A Client To Host ====<br />
<br />
* The old interface for network connections by IP address is restored and works again. We'll have a different one for connecting via friends list on Steam and GOG, later, but this is the one that gets used for Forge and any other IP-based network frameworks.<br />
<br />
* Connections are now able to be established from one computer to another, for the first time since 2018!<br />
** We added the ability to see how many clients there are connected to a host in the lobby (including the host), so you can see the connection tick up.<br />
** Next up is them actually exchanging enough information to get the client into the lobby and have them see shared world info and be able to chat and all that. But this is milestone one!<br />
<br />
== Version 2.099 Last Rabbit Holes ==<br />
(Released July 15th, 2020)<br />
<br />
* There is now a galaxy setting to grant players Watch vision for 1, 2 or 3 hops from all command stations.<br />
** Thanks to uhamster9 for inspiring this addition.<br />
<br />
=== Fixes And Tweaks ===<br />
<br />
* Improved the way that time-based pools are incremented in time, so that we're never having accidental cases where we miss one.<br />
** Also made it so that they actually work as intended when the world is being cleared (running 16 seconds' worth of time at once). This then keeps the pools smaller if you repeatedly load savegames.<br />
<br />
* On the escape menu, under where it shows you the various numbers of objects in memory, it now shows you the number of galaxy planets and planet links activated and in existence.<br />
** This lets us tell when these have a memory leak, if there ever is one with them.<br />
<br />
* Additionally, galaxy map links are now pooled for the first time ever, as the discarding of them was previously a definite memory leak. Normally this just happened between saves and loads, but it was also possible to happen when nomad planets moved.<br />
<br />
* In addition to the existing time based pools, we now have a new ExternalizedPool.<br />
** This is now used for the galaxy map links, and actually we have stopped the galaxy map planets themselves from using the super-old IArcenGameObjectResourcePoolable and they also now use this.<br />
<br />
* The way that planets for the galaxy map are initialized, and the way that their positions are set, is completely overhauled.<br />
** This is more efficient and properly uses pooling (which never was working properly before, it turns out).<br />
** It also makes the position of planets automatically react to them having moved in the game sim, without having to do anything special.<br />
<br />
* The arcencolors asset bundle has been removed, with its contents simply rolled into arcenui. Ultimately this is a bit faster to load, and saves a bit of disk space and RAM also.<br />
** Also removed the aiw2squads bundle, and the examples bundle.<br />
*** The examples bundle simply has its example content still there, but not in a bundle (it's to help aspiring models modders).<br />
*** The squads bundle is old data that we've not used in forever, and so has just been cleared out. It wasn't huge, but wasn't worth being there.<br />
<br />
* Starting to load a savegame (including for a quickstart or the last settings for a lobby) now writes to the log when you start the process, and at the end of the process writes how long it took.<br />
<br />
* Added a new debug setting: "Write Detailed Savegame Timings"<br />
** When loading a savegame, including the 'last settings' for the lobby or the basis for a quick start, keep track of detailed timing data and write that into the normal debug log so that it's clear what is taking longer and shorter amounts of time.<br />
<br />
* It turns out that chasing "why savegames now take 16 seconds to load sometimes" was a snipe hunt. The serialization sizes logging, when enabled, actually was causing that amount of slowness. With that off, it loads in about 2 seconds.<br />
** The extra instrumentation that we added for the savegame timings is still nice, but ultimately was not a useful bit of time spent at the current moment.<br />
<br />
* Fixed an issue that could happen in the lobby in particular where it could not properly save your prior settings because the fleet ID or speed group ID was lass than zero.<br />
** This pretty much could only happen if you already had another error first.<br />
<br />
* Fixed an exception in SeedNormalEntities that could happen if you rapidly tried to regenerate maps in the lobby in just the wrong way.<br />
<br />
=== Under The Hood Improvements For Icon Modding And RAM Usage ===<br />
<br />
* The last of the icons from the ExternalIcons folder have been moved into the unity project that generates the asset bundles, simply to dispel any potential confusion about the fact that they can be edited directly and that have some change on the game without recompiling asset bundles. This was a frequent modder confusion.<br />
** That said, the ones that were in the Official_1 folder are now in a CentralIconBits, and can now be used in the UI for the first time if we ever want to. That means things like health bars and whatnot could in theory be used in the ui if someone wanted to, whereas before they could only be used on gamespace-level icons.<br />
<br />
* Cleaned out a variety of unused icons from the arcenui asset bundle, and in general tidied up some of our organization of working files versus final files.<br />
** Also standardized the naming of certain things.<br />
<br />
* Broke the "official icon dictionary" out into six dictionaries:<br />
** One is for the "central bits" like health bars and so on, and would be the same for all ships.<br />
** Two are for the overlays, like for saying what kind of starship or guard post something is. There can be more than one of these, and the fact that these are split out like this demonstrate the modding capabilities and how things can combine.<br />
** Three are for ship icons and their borders, and there can be more of these modded in as well. As with the overlays, not only does this demonstrate how such mods would work, but it also has the side benefit of slightly less VRAM usage in a few cases.<br />
<br />
* The way that GUI icons are discovered from the xml based on their gamespace-icon counterparts is completely revised, and is now based on extra information in the ExternalIconDictionary entries.<br />
** This is a lot more flexible, and allows us to load icons from multiple asset bundles and/or multiple files within the same bundle.<br />
<br />
* The naming for finding icons is now much more complicated, in the sense that they don't all come from a single dictionary called "Official."<br />
** So there were over 1100 places in the base game and expansions where we've had to modify to point to the new dictionaries. Any mods would also need to be updated to point to the new places, unless they want to start using their own icons (once we put together a tutorial for that).<br />
<br />
* The external sprite dictionaries have been updated to be able to properly load in in multiple threads.<br />
<br />
* The game is now able to load the xml files for external icons from any mod or expansion, in:<br />
** Expansions/[ExpansionName]/GameData/ExternalIcons/[thefile].xml<br />
** XMLMods/[ModName]/ExternalIcons/[thefile].xml<br />
** XMLMods_NonDistributed/[ModName]/ExternalIcons/[thefile].xml<br />
** It's worth noting that these are xml files that are generated by Texture Packer, not xml that we create.<br />
** These files are referred to in the "ExternalIconDictionaries" xml as something along the lines of xml_path="Official_CentralIconBits.xml"<br />
*** It will then search the main game's folder (/GameData/ExternalIcons/[thefile].xml), then all the expansion folders, then any activated mod folders for a file with that name that was specified.<br />
** This allows for mods to be self-contained when it comes to their icons, and it allows expansions to have their own icons that are not packaged with the main game (not that we have imminent plans to do that).<br />
<br />
* On the icons used in the game, we previously were not using any compression, which made them absolutely massive in size (80mb for the main dictionary).<br />
** This was done in order to preserve quality, but we're also using GIANT icons in order to allow for really super-high-res displays of the future, as well as square ones to allow for ideal mipmaps, etc. So the lack of compression was hugely overkill.<br />
** We're now using compressed textures, which turns what was 80mb into more like 8mb. This has a very direct impact on performance and VRAM usage, so particularly on low-spec machines they will likely run far better.<br />
<br />
* The game now automatically constructs custom "gimbal materials" for the in-gamespace icons, in as many combinations as are needed for the things that it has drawn for you so far.<br />
** The total number of materials always in the past was "one," but it was using a single large dictionary and a lot more VRAM -- and it had a finite amount of space for things. There was a solid chance we were going to run out of space in that one dictionary as part of implementing DLC2. But either way, mods were not possible. The new number right now is 8, looks like.<br />
** Now it may make a handful of materials, depending on how many mods you have installed that have custom icons, and several for the core game and expansions itself. But these are vastly smaller, and while this does increase the number of "draw calls," each material is still mostly instanced together (there are a few mesh differences depending on if there are health bars shown or whatever), but the overall load on the GPU pipeline is lower.<br />
** All of this is automatically handled by the game in as efficient a pattern as possible, and if you're curious how many combination materials it has created, you can see that in the escape menu at the bottom of the list of memory pooling info.<br />
<br />
* A new debug setting, "Log Gimbal Icon Material Creation", has been added:<br />
** When this is on, any 'gimbal icon' material creation events will be logged as to what was created and how long it took to do so.<br />
** Turns out that this uses an immeasurably small amount of time for each material (less than 1ms each), so that's awesome.<br />
<br />
=== Under The Hood Improvements For Mods With Code ===<br />
<br />
* The game is now able to load dlls from mods or expansions, rather than just from the central game folder.<br />
** This works just like the external icon files, and basically looks for the dll in the central game folder first (/GameData/ModdableLogicDLLs/[thefile].dll), and then looks at expansions and then installed mods if it can't find them.<br />
** The paths are:<br />
*** Expansions/[ExpansionName]/GameData/ModdableLogicDLLs/[thefile].dll<br />
** XMLMods/[ModName]/ModdableLogicDLLs/[thefile].dll<br />
** XMLMods_NonDistributed/[ModName]/ModdableLogicDLLs/[thefile].dll<br />
** We really don't have a need to do this with expansions, but the flexibility is nice.<br />
** With mods that are more than just xml, however, this finally lets a modder distribute just a single folder that has everything in it, and not have to worry about putting some things in central game folders.<br />
** This is only partially tested, but should work.<br />
<br />
* It's worth pointing out that expansions and mods already did (and still do) have the capability to load asset bundles (icons, music, sound effects, models, textures, shaders, etc) from their folders.<br />
** The structure for those is /GlobalBundles/ in the main folder for anything not platform-specific, /AssetBundles_Linux/, /AssetBundles_OSX/, or /AssetBundles_Win/ for the things that are.<br />
** Inside the folders for expansions it is: Expansions/[ExpansionName]/[OneOfTheAboveFolders]/<br />
** Inside the folders for mods it is: XMLMods/[ModName]/[OneOfTheAboveFolders]/ or XMLMods_NonDistributed/[ModName]/[OneOfTheAboveFolders]/<br />
** None of this is new, but it's worth mentioning for now.<br />
** This is only partially tested, but should work.<br />
<br />
=== Larger Gamespace Icons And Fixed Galaxy Map Line Offsets ===<br />
<br />
* We also now have a non-billboarding version of our shader for purposes of our icons on the galaxy map.<br />
** Our core shader does on-GPU (read: hyper efficient) billboarding to always fully face the camera. This is very useful in the main view where you are moving around the camera a lot but always want the icons to face you.<br />
** The downside, however, is that with a largely-straight-overhead camera like the galaxy map uses, this billboarding would cause there to be a perspective shift where the icons for planets would get offset from the lines leading between planets no matter what we did. It also caused them to move relative to the text that was next to them.<br />
*** This offsetting of the lines to the planets was one of the largest "visual papercut" issues that we've had for a really long time, and it is finally fixed!<br />
<br />
* The ship icon scale has been adjusted from a default of 1.5 to 2.2, and will affect all prior settings files.<br />
** It's description has also been updated for the personal settings tooltip: For the icons in the main display area (not the sidebar), how large should they draw? Default is 2.2. If you go too large, it can be hard to see things because they overlap too much. If you go too small, they can get extremely blurry because of flipping to a lower mipmap. The larger your screen DPI, the smaller you can go without losing clarity.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Building Multiplayer]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Paradigm_Shift&diff=39857AI War 2:The Paradigm Shift2020-08-10T15:42:24Z<p>Keith.lamothe: /* Version 2.117 */</p>
<hr />
<div>== Known Issues ==<br />
<br />
* Any bugs or requests should go to mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* '''Multiplayer is disabled but coming very soon.''' We first focused on tightening up the single-player loop ([https://forums.arcengames.com/ai-war-ii/from-the-dev-notes-on-where-i'm-at-regarding-multiplayer-right-now-(729)/ more info here]), so thanks for your patience!<br />
<br />
=== Multiplayer Remaining Todo List ===<br />
<br />
==== Short-Term Work ====<br />
<br />
* Client bugs in lobby:<br />
** Chat sent from client shows up twice on host and not at all on client.<br />
** Chat from client shows up on host as "Player 2" rather than the proper name.<br />
** Why are we able to spam randomize messages and have that get away from us?<br />
<br />
* Host and client both don't get updated values for some fields, like main map type, from underlying data.<br />
** Host and client are still exchanging a bunch of no-op commands in the lobby for some unknown reason.<br />
<br />
* Automatically create a new faction for joining human players, maybe?<br />
<br />
* Properly auto-assign colors from players across the network, instead of overriding from local like we do right now.<br />
<br />
* Show when clients are in spectator mode, or what faction they control.<br />
** New section above chat textbox that shows all of the player accounts for all clients and the host, with the proper names in place.<br />
<br />
* Allow clients to assign themselves (or be assigned) to player factions.<br />
** As many clients can share a faction as want to, no problem.<br />
<br />
* Add ability to name factions, separate from the name of the player controlling them (since it can be controlled by several players).<br />
<br />
==== Before Alpha ====<br />
<br />
* Re-code GameCommands to be more efficient and special-purpose. This is probably a job that is a couple of days long, and will potentially lead to widespread bugs for a week or so after it.<br />
<br />
* V1 of the desync detection and correction code, which should probably only take a few days.<br />
<br />
==== Before Beta ====<br />
<br />
* The other features on multiplayer, mainly regarding things like donating fleets between one another, and/or whatever else we come up with that is desirable.<br />
<br />
* Make the desync detection and correction able to correct factions, not just ships.<br />
<br />
* The really big one that remains is making sure that the cross-machine identifiers (PrimaryKeyIDs) are consistent between machines. I don't fully have this figured out yet, but I think that the interim state of it will essentially be that there are occasionally too many messages being passed around because of rolling sync errors. I will probably punt this issue into something I look at during the alpha, so that I can gauge what sort of impact it really has on performance, and where the problems are coming from.<br />
<br />
* Make sure that the lobby fully works as we expect, and various other small UI systems to get multiplayer basically playable. A lot of work went into the lobby in particular in the last few months to make that as close to as ready to go as possible.<br />
<br />
==== Before Full Launch ====<br />
<br />
* Whatever changes we need to make to balance in order to make things "feel right," which will be a matter of working with the multiplayer alpha and beta testers. A lot of things we already did in the past, like making science collection a humanity-wide thing that each player gets a copy of, rather than something people have to do individually (what a pain that was in AIWC). We will have to scale waves like we did in AIWC multiplayer, or in some other fashion. But a lot of the difficulty scaling is inherently handled by AIP being higher when you have to take more planets in multiplayer.<br />
<br />
* If we're seeing network degradation or other issues due to the constant need to sync errors, then that will be to be investigated and improved. But those things are most of what the focus of the alpha/beta will be on.<br />
<br />
== What's this phase all about? ==<br />
<br />
We've been preparing for this for months, tightening up the codebase and getting everything ready as much as possible. Now it's time to start having machines actually talk to one another, and then refine from there. At this point, LiteNetLib, Steam, and GOG Galaxy are all fully working as communication frameworks, but now the game itself needs to fully handle all its logic properly on top of those. You can see at the top of this page what the current todo list is. We expect to be into beta of multiplayer in August. Hopefully the alpha and beta periods are both short due to all the work of the last phase, but we shall see how it shakes out.<br />
<br />
Once we get into a stable beta period for multiplayer, then we'll let the clock run a bit and Chris will work on adding interplanetary weapons to the base game as a free update (that's the last of the kickstarter stretch goals). This phase should wrap up all our kickstarter promises (including a laundry list of other smaller items).<br />
<br />
Badger has already done the bulk of his work for the second expansion, Zenith Onslaught. Chris has done none of his work for that, as yet. Once multiplayer is in the "let it exist in beta and have people bang on it" phase, then Chris can circle in and get his work done for DLC2 along with those base game bits for interplanetary weapons, etc. The full version of multiplayer should launch alongside of DLC2, but we're not sure exactly when. October?<br />
<br />
Either way, multiplayer will be in a solid state that is "beta but just because we want more time with more people testing it" for a month or so while the DLC2 work from Chris's end happens. None of the actual multiplayer stuff is delayed in any fashion for DLC2, it's been the other way around.<br />
<br />
== Version 2.117 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Scourge: fix a bug where player-allied scourge were building tons of Builders but no Fortresses (they were mistakenly thinking they were minor faction allied)<br />
** A number of people on discord noticed the lack of Fortresses<br />
<br />
* Potentially fix a bug where Regenerator Golems were regenerating things while crippled<br />
** Thanks to crawlers for reporting.<br />
<br />
* AI Reserves now will create anti-player zombies.<br />
<br />
* Take another stab at 'adjacent planets watched'. Sigh.<br />
<br />
* Fixed an issue where on computers without GOG Galaxy installed, they would get a harmless-but-annoying error message at game startup.<br />
** Thanks to Badger for reporting.<br />
<br />
* Minor tweak to target list planning; use a case insensitive comparison for zombification.<br />
<br />
* The 'total units' count should now include stacks.<br />
<br />
* Fixed a bug where deathgrip tackle drones had a gun that could shoot immobile targets, greatly confusing their logic. That gun now has the only_targets_mobile_units flag.<br />
** Also fixed a bug where tackle-drone-launchers could give their spawned drones a direct attack order to go after an immobile unit.<br />
** Thanks to tadrinth and RocketAssistedPuffin for the reports leading to these discoveries.<br />
<br />
* Ion Cannon Shots can now:<br />
** Damage both the personal shields and hull of a target in one shot (including killing it outright).<br />
** Kill multiple ships in the same stack in one shot.<br />
** Thanks to GreatYng for pointing out the oddity of Ion Cannons not being able to do these things.<br />
<br />
* AOE shots can now hit any enemy bubble shield overlapping the explosion, rather than only being able to hit the shield if the generator (or something it's protecting) were physically within the explosion.<br />
** Thanks to NRSirLimbo for reporting and RocketAssistedPuffin for the save.<br />
<br />
* Crippled units (i.e. player flagships) can now pass through enemy bubble shields and traverse wormholes covered by them, to avoid being stranded in hostile territory.<br />
** Thanks to tadrinth for reporting and RocketAssistedPuffin for the save.<br />
<br />
* Melee units in attack-move mode will now go after units within a limited range (equivalent to a weapon with range=Normal1), so you have a middle-ground between "only attack you direct target or things actually touching you" and "pursue anything on the planet".<br />
** Thanks to OzoneGrif, wm46, RocketAssistedPuffin, and Ubifan for the suggestions and saves leading to this change.<br />
<br />
=== Multiplayer And Lobby Work ===<br />
<br />
* Heartbeat messages from the client to the server and vice-versa are now omitted from all of the networking logs. They were making things far too cluttered for us to be able to see real information when we had network logging of various detail levels turned on.<br />
<br />
* Some excessive logging on GOG and Steam with regard to their send result statuses has been removed, as again this was clogging up our network logs.<br />
<br />
* The clients now have a secondary FromClientToServer_SignalDoneButHasNoCommands that they can send in place of the FromClientToServer_SendMyNextCommandBatch when they don't have any commands to send (which is most of the time, statistically).<br />
<br />
* GameSpecificNetworking now has a DoPerFrameLogic() method, which lets us efficiently set some per-game settings like we do for the arcen debugging stuff.<br />
<br />
* New setting in the Network section of the settings menu: Network Logging Includes Frame Auths.<br />
** In the lobby and during gameplay, there are messages sent by the network every 100ms or so to keep themselves in sync, and if you have them included they will tend to crowd out the rest of the messages that are sent. So by default these are disabled.<br />
<br />
* New setting in the Network section of the settings menu: Network Logging Includes Command Batches.<br />
** In the lobby and during gameplay, there are messages sent by the network as frequently as every 100ms, but more often some sporadic multiple of that. This is how factions tell everyone what they want their ships to do, and how human players say the same. There's very little that we can say about this in a meaninful way in the networking log level, and again this will tend to crowd out the other messages that happen. So by default these are disabled, but bear in mind that most things that players actually cause to happen are being caused through these batch messages.<br />
<br />
* Found and fixed a general issue where the player accounts were not properly being cleared (and fully resetting the player account IDs) during all cases where a game is loaded into the lobby. At a bare minimum, it was affecting the "open a custom game with my last settings."<br />
** That would have eventually led to out of bounds exceptions, over time, and in general was cluttering up some areas important for multiplayer, but it had not had a negative impact on anyone so far.<br />
<br />
* Fixed a bug that was causing all sorts of craziness on clients in multiplayer in the lobby, with them not getting their galaxies full cleared.<br />
** This was leading to things not being properly in sync between the client and host, like planet names or locations, and things like extra planets or planets in old locations, or noninteractive planets at a whole other scale visually from the real planets. It was quite messy! All of that is now corrected, thankfully.<br />
<br />
* In the lobby, when you change the number of human factions, it now regenerates the map immediately. For other factions it does not bother, never has, because there's nothing different to see at this point in the galaxy.<br />
<br />
* The WorldSetup objects now have a readonly SetupTypeName on themselves, so that we can tell what they are.<br />
** ChangedSinceLastMapGenCall on this same object is now a property, which lets us throw out debugging messages when it is being triggered for whatever reason.<br />
** Something has been causing extra calls to be sent through the map generation pipeline in a redundant fashion that makes everything slower than it needs to be.<br />
<br />
* Removed the ability to send a WorldSetup object via GameCommand, as that is actually highly antithetical to the way we edit that data as of the last year and a half or so.<br />
** We specifically try never to adjust the entire thing, because several players at once could be editing different parts of it and we want those bits to all merge at once.<br />
** Got rid of the SetupOnly_ChangeSetup GameCommand, which was set to use this sort of thing.<br />
** Got rid of the LobbyWorking_HasBeenChangedAndShouldTransmitChanges() method on WorldSetup, which was being used by a loop in the footer to keep clients up to date.<br />
*** The problem with this is that this was far older code, back from perhaps 2017, and it was using an older and more sledgehammer-y approach to try to keep clients and the host in sync. When the lobby was redone in 2019, this became obsolete but was still hanging around and so caused some nontrivial chaos.<br />
** LobbyWorking_HasBeenChanged() has also been removed, as it seemed duplicative and was no longer in use perhaps?<br />
*** Oh goodness, this was actually how we were ever updating the long-term stored version of the game (as opposed to the lobby working copy). This was not a good way to do it, but it was not quite as antiquated as we thought.<br />
<br />
* Fixed a rare nullref exception that could happen in the ships sidebar if you were not properly on an actual planet.<br />
<br />
* Fixed an issue from the last few months (probably) where if you had an error during map generation, it would still try to dump you into the world and then give you tons of other errors. It should have been stopping you and making you fix whatever was wrong.<br />
** This is most common when there are not enough planets for all the factions you have chosen, or a few other rare cases. One such case is just discovered internally, and that's you having a planet starting index that is higher than the number of planets currently in the world.<br />
<br />
* Helper_AssignHumanHomeworld() and the AI variant are now Helper_TryAssignHumanHomeworld() and an AI variant.<br />
** It was already quite possible for these to fail if the player had selected something invalid, such as previously having clicked a planet with an index above 40 and then choosing a map size of 40 planets.<br />
<br />
* The game now auto-assigns humans a planet that is valid if they don't have a valid option, and it does so in a multiplayer-compatible fashion.<br />
** Previously this tried to do the assignment, but did not do so in a way that worked, and even if it had worked it would have only worked for one player.<br />
** This also includes a new sub-gamecommand, StartingIndex_FromAutoAssignInMapgen, which efficiently lets the UI know what is happening without triggering an extra map generation cycle or accidentally overriding a distinct change made by the player.<br />
<br />
* The lobby is now substantially more responsive even in single player, although it seems to be having some extra calls that we are still hunting down.<br />
<br />
== Version 2.116 GOG Networking Done ==<br />
(Released August 6th, 2020)<br />
<br />
* Fix a bug where the 'Watch Extra Hops Worth Of Planets' code was being applied incorrectly<br />
** Thanks to Tynendir for reporting.<br />
<br />
* Fixed a bug where Macrophage Spores don't move to new planets when loading a second save game.<br />
** Thanks to GreatYng for reporting, and StarKelp for fixing.<br />
<br />
=== Milestone: GOG Galaxy Networking Integration Complete! ===<br />
<br />
* The Arcen GOG Wrapper has been majorly updated to get your GOG Galaxy Friends list and the status of them so that you can play multiplayer with them if you want to.<br />
<br />
* When you are in the GOG networking mode, it now shows the list of your friends, just like it does for Steam.<br />
** Basically all of the functionality is identical here, in terms of how it shows those who are online, offline, and in-game, and lets you filter between them, etc.<br />
** The one difference is that in Steam we show the "in this same game" status as a light green (like Steam does), and in the GOG version we show that status in a purple color (to match their color theme).<br />
<br />
* The host computer now is able to open up a lobby for friends when it says "open server."<br />
** This works with all the various NAT punchthrough that GOG Galaxy supports, which we are not entirely clear on the details of. This may be as robust as Steam, or slightly less so, but we honestly have no idea. We'll be interested to hear from you! But either way, it's out of our hands at that point, so it's just information gathering.<br />
** The host is also now properly destroying the lobby when it shuts down, so that others won't try to connect to it and not see it.<br />
<br />
* When clicking the Join menu in GOG, the client now sees lists of their friends with four categories instead of just three.<br />
** Friends who are in-game but not in a lobby right now are showed in a dull light purple. Friends who are in game and have an open lobby show up with a bright purple status.<br />
** You can also cycle through all friends, open lobbies, friends in this game, and online friends.<br />
<br />
* In the listing of connections, for GOG it now shows a button that says "closed" instead of "connect" next to each friend who does not have an open lobby.<br />
** With Steam, someone could be in offline status but still let you connect to them. With GOG, we have to have a lobby ID to connect to, so there's no way to hide that and still even attempt a connection to someone.<br />
<br />
* GOG clients are now able to search for lobbies and correlate those to their friends list, which under the hood is a several-step process.<br />
** We are filtering out any potential rogue lobbies created by bad actors, and correlating them specifically to those owned by your friends.<br />
** It's possible that a friend might jump from the status of being offline (prior to opening the lobby) to showing up as someone you can connect to (when they open the lobby), actually, so potentially this actually does allow for the same sort of quasi-stealth game connections that people can do using Steam.<br />
** That said, since lobbies have to be advertised (to your friends) and we can't have a client just blindly try connecting by userID like in Steam, if you open a lobby and your other friends are actively in GOG looking to join a game of AI War 2, they would see that. Not a big thing, probably, but it's something we've noticed about the nature of these two differing systems.<br />
** You may find yourself having to hit refresh a few times on the client side in GOG, as there is a few seconds of lag before the lobby that the host creates shows up. It seems to be under 4 seconds at the most in current tests.<br />
<br />
* GOG clients can now actually initiate connections to a host lobby. And it works!<br />
** The client is aware of getting into the lobby, although it takes a few seconds.<br />
** The client also does gracefully tell them that they are leaving the lobby, and the GOG servers and the host are both finding out about that properly.<br />
<br />
* The GOG Galaxy networking client is absolutely fully implemented, now!<br />
** A huge amount of the actual send/read logic was able to be pretty much identical to Steam, which was not super far off from what we did with LiteNetLib.<br />
** Pro tip: if any other developer is ever wondering about SendP2P messages on the GOG network, those can take any size, not just stuff under 1200 bytes. It handles all of the fragmentation and recombination extremely well, and just as fast as Steam or other services.<br />
** The initial connection process to a lobby with GOG is a bit slower from North Carolina in the US than what we are seeing to Steam, ranging from 4-6 seconds on the first creation of a lobby on the run of a game to 2 seconds for ones after that. But once the connection is established and brokered, it's easily as responsive for us as Steam.<br />
** For us, this is routing through the internet and some firewalls, so the NAT punchthrough or relay servers or whatever it is in this case seem to be doing their job. We certainly did not mess with any ports.<br />
** Because of the nature of how data is read in from the buffers in GOG, we actually were able to get slightly more efficiency and speed with how we manage the heap compared to Steam or LiteNetLib. It's probably not usually a huge advantage, but it is something that we appreciate the efficiency of.<br />
** Essentially all three of the networking options have their own pros and cons a bit, but are all extremely good. That's a real relief to see, and to see them all working.<br />
** At this point it is now down to making the game networking actually work properly to have the game run, and that's a networking-framework-agnostic process.<br />
*** In a lot of respects it feels like after a large move of house, where all our stuff is now out of the old house and into the new house, but we still have a lot of unpacking and arranging to do. It still feels excellent to be done with the movers and have everything in one location now.<br />
<br />
=== More Multiplayer Work ===<br />
<br />
* Removed some old and unused code that is from the Valley Without Wind versions of multiplayer, checking for disconnections due to inactivity. We are handling that at a lower level, now.<br />
<br />
* Got rid of some old code that was mainly in the older version of our engine pre-Raptor, which was checking for "pthread exceptions" that was never something that could happen in the newer engine that we've replaced it with.<br />
<br />
* The game now has some self-checking code in there for giving us some actual feedback when it decides that it can't run the simulation or show visuals for more than 3 seconds at a time.<br />
** This is a pretty rare case, but it was the "too many changes and the client machine goes to black screen and unresponsive" issue.<br />
** This may have fixed the issue, although there also seemed to be another issue that was related to this.<br />
<br />
* Took out some other unused and old data.<br />
<br />
* The "UseSeed" command in the lobby no longer triggers the gamesettings to be saved. That was not useful, and slowed it down for no good reason.<br />
** It turns out that this was blanking out the settings data in a strange way a lot of the time, and causing the black and white view of the game after you reloaded. It also was apparently directly the cause (somehow) of the infinite black screen on the client after this was triggered.<br />
<br />
* Put in a lot of extra error handling for the steamworks networking in particular in case it has internal exceptions while trying to send something.<br />
<br />
* The cumulative effect of a lot of these changes has basically fixed a ton of issues in the lobby, including:<br />
** Clients not being able to use certain buttons or dropdowns.<br />
** Certain dropdowns not showing the right values to clients.<br />
** The client and the host getting a different view of things after certain buttons or dropdowns were used.<br />
** For a while there I was thinking that I was maybe going to need to make some of the controls for the lobby host-only, but now that's definitely not the case!<br />
<br />
== Version 2.115 Imperial Summons ==<br />
(Released August 4th, 2020)<br />
<br />
* You can now have multiple copies of the Devourer and Zenith Trader in a game<br />
** There's no technical reason for this limitation, and we're encouraging Zenith stuff because of the coming Onslaught<br />
<br />
* Quickstarts are sorted alphabetically again, instead of when the quickstart was created<br />
** Thanks to ArnaudB for the bug report<br />
<br />
* Add some defensive code to the Dyson Sphere<br />
** Thanks to GreatYng for reporting.<br />
<br />
* Fixed a cross-threading nullref exception that could happen during unit unselection (probably due to it dying).<br />
** Thanks to GreatYng for reporting.<br />
<br />
=== Imperial Fleet Summoning Changes ===<br />
<br />
* The AI now generates some weaker bonus exos against miscellaneous player targets (energy producers, MDCs, GCAs, etc), just to keep things exciting.<br />
* Fix a bug where Exos were trickling into their targets instead of moving as groups.<br />
* Start the Exos the moment you finish the hack, instead of some random time < 30 seconds from when the transceiver finishes.<br />
** Blame MasterGeese for these changes<br />
<br />
=== Multiplayer And General Lobby Work ===<br />
<br />
* The "partial map generation" code for giving a preview in the lobby now does even less work, bringing our mapgen times down to 200ms or so on average.<br />
** Because of this, we've also moved the mapgen code during partial-map-generation onto the main thread, to keep things as fast as possible. The full map generation still happens on a dedicated background thread.<br />
<br />
* During the lobby, the way that we handle the execution frame loops is now entirely new, and basically skips over a lot of things that were artificially introducing lag.<br />
** This makes the lobby perform far better in general, and also makes the map generation times absolutely flyyyy compared to what they were before, on single or multiple player maps.<br />
<br />
* This is leading to a number of substantial bugs in the lobby, temporarily, but will make the lobby performance far superior in both singleplayer and multiplayer as we get those resolved.<br />
<br />
* The silent "generate partial map" or "generate full map" complete messages now tells you how long it took.<br />
<br />
* The way that mapgen works, it now has a couple of different contexts that it passes in, so that each one has its own random number generator that is not dependent on the others.<br />
** This lets us ensure that there is consistency between runs of the same code on different machines, and on the detailed version (for play) and the non-detailed version (for viewing in the lobby).<br />
** This is largely solving the issue that we just have started having in this latest round of internal builds with a difference in the final map and the original map.<br />
<br />
* Renamed the Generate() method on map generators to GenerateMapStructureOnly() to be more clear, and also make our code more eaily searchable.<br />
<br />
* Adding a planet to a galaxy no longer requires passing in a context object at all. It now generates its own internal random number generator for its initial variables based on the galaxy map seed, its index, and its original position.<br />
** One of the side effects of this is that now when you change which planet you want to be your starting planet, it will keep the name the same instead of shuffling them around.<br />
** This sort of name-stability has actually never been in this game before, and always was mildly annoying. But in multiplayer lobbies it was going to be even more annoying. "I'll take Adam." "Okay, sure." "Well, I clicked it and now it is called Brian, but that's the one I meant." "Wait, what?"<br />
<br />
* When you are loading a savegame or a quick start as a template into the lobby, it now immediately regenerates the map rather than using the old map, because it's highly likely that the new structure will be different in some fashion.<br />
** This then also solves the problem of clients being different from the host on first connect, probably; that was kind of a compound problem in general.<br />
<br />
* Fixed an order of operations issue that could lead to the occasional "No human players found to seed homeworlds for!" error in the lobby in general, but more recently in multiplayer more frequently.<br />
<br />
* Possibly fixed the issue with later player accounts in multiplayer being renamed incorrectly to "player 2" and such.<br />
** There is still a fair bit of duplicate data happening between data structures, and some lobby/startup code that is blatantly single-player-specific that we need to get sorted out.<br />
<br />
* Dramatically cut down the time it takes to generate planet random seeds, but still with keeping them consistent as you click around the galaxy, by pre-generating the random seeds as the first 300 calls to the "broad random" for the galaxy. Any seeds needed after that will be generated the slow-but-unique way. This means mainly things like nomad planets or other things that are late additions. When just adding a planet or two, it's not so slow as to be a problem.<br />
<br />
* Until now, if you loaded an existing savegame it would automatically put you in control of the first player account, even if your profile name did not match.<br />
** It now continues to do that when you are loading as a single player game, which is enormously helpful for testing and just in general, really. But in multiplayer, it now tells you a list of what the available profiles are, <br />
** In general, if you are loading something as a template, it now clears all the old player account data and loads in your own current name as the new first player account (and further players are already added properly as they connect).<br />
<br />
* Fixed up the way that planets are shown as colored in the lobby galaxy map, so that it will work well with multiplayer and also with the new faster single-player-generated stuff.<br />
<br />
* Improved the logic for it properly setting you to be viewing the new planet you've selected after you make a selection in the lobby. Another thing that did work, but with the revised logic had to be made to work all over again.<br />
** This concludes the fixes to all the known bugs that we are aware of that we've introduced into the lobby today.<br />
<br />
* Fixed another nullref that was happening only on the multiplayer custom games after today's changes.<br />
<br />
== Version 2.113 Dyson Growth ==<br />
(Released August 3rd, 2020)<br />
<br />
* Fix a null reference exception if the game wants to spawn a Relic but you own basically every explored planet<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fix a bug with Dyson Sphere units not marking up<br />
** Thanks to GreatYng for reporting<br />
<br />
* Fix a typo in a Battlestation description<br />
** Thanks to ovalcircle for reporting<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed one oversight that was causing the factions tab chat to not show its chat text properly, unlike map and options in the lobby.<br />
<br />
* As text messages come in inside the lobby, it now scrolls to the bottom of the chat window, as you would expect.<br />
<br />
* The maximum length of chat messages in the lobby is now 1000 characters.<br />
<br />
* GetLocalPlayerFaction() is now GetLocalPlayerFactionOrNull(), to support spectator players.<br />
** Additionally GetFirstPlayerFactionOrNull() has been added, and GetIsFriendlyToLocalFaction() and GetIsHostileToLocalFaction() have been updated to work based on that in order to extend support for spectators even further.<br />
<br />
* Planet visibility is no longer determined from your local faction (since for spectators that might be null, and for all humans it is identical anyhow). It now just uses GetFirstPlayerFactionOrNull(), since that's slightly more effient and supports spectators.<br />
<br />
* Huge areas of the AI have been updated to allow for spectators, generally giving them information that mirrors that of what the first player is seeing (objectives-wise and so on).<br />
** In other areas, it simply updates things to not erorr out when you hit hotkeys, etc.<br />
** Spectators also can't run "cmd" messages from chat; it will just show the text as if it were not a command.<br />
<br />
* GetLocalPlayerFaction() on the planet object has been removed, as that did some risky caching for multiplayer in general, and also was not really compatible with spectators.<br />
<br />
* Fixed a couple of errors where non-sim-but-background-fation-AI code was referring to the local player faction. It now refers to the first player faction.<br />
** Probably this would not have made much difference, unless the game switched hosts partway through or something like that.<br />
<br />
* The chat controls in the lobby now work, though there are some bugs in them still.<br />
<br />
* The correct name for each player faction now shows up for even for players who are in spectator mode.<br />
<br />
* Player factions in spectator mode now see in the lobby chat area that they are in spectator mode.<br />
<br />
* Both the lobby chat and main game chat now support more characters in their text -- basically anything that our "condensed" ascii format is allowed to display.<br />
<br />
== Version 2.112 Steam Networking Complete ==<br />
(Released July 31st, 2020)<br />
<br />
* The description of the Ensnarer Battlestation now explicitly mentions that it can use AI Great-Turrets<br />
** A number of people have reported this as a bug over the years, so hopefully that won't happen anymore<br />
<br />
* All of the Fallen Spire ships, including those in the Spire Railgun Shop optional mod, have had their health and shields doubled, but their firepower halved.<br />
** This should make battles with other mega-units last longer, which feels more appropriate, but keep their "damage over time" the same. <br />
** When these were going toe to toe with the AI Exogalactic War Front units, they seemed to disappear too quickly, making them feel weak. This should keep their effectiveness the same as before, but make the battles take about twice as long with those large ships, so that it doesn't feel like instant evaporation at least.<br />
** The one unit not adjusted is the Spire SuperDreadnought from the Spire Railgun Shop mod. That was already maxed out as a "kills everything and is basically invincible" sort of ship.<br />
** Thanks to a variety of players for weighing in on the feel of these units, and Badger for suggesting this adjustment.<br />
<br />
* Rather than having a slider for the number of planets in the galaxy map view, there is now a dropdown.<br />
** This prevents the intense "regenerate map spam" and lag that was inherent in using a slider, along with making it easier to choose a certain number of planets.<br />
** We have made it so that it only gives you multiples of 2 below 60, multiples of 5 below 100, and multiples of 10 above that. This makes it easier to quickly peruse the range.<br />
** Each entry has some commentary on what it will mean to the feel of the map if you are hovering over it in the dropdown with the number of planets expanded.<br />
** Actually, it wasn't even regenerating the map after you changed the number of planets, which was really confusing! You had to hit regenerate map. Now there is no confusion.<br />
** All of this is easier to use as a player in general, on top of being something that is easier to deal with in multiplayer for sync purposes, too.<br />
<br />
* Fixed a longstanding bug where dropdown selections that were open could persist when leaving the lobby or changing tabs within the lobby.<br />
** Thanks to MaverickPenkenn for reporting.<br />
<br />
=== Milestone: Steam Networking Integration Complete ===<br />
<br />
* Fixed an issue where multiplayer clients disconnecting from a host would try and fail to save the last settings from the lobby. Now it does not save the lobby settings from a session you are just a client of.<br />
<br />
* All of the networking frameworks have had their "send to anyone here and myself" code consolidated into the network authority, so when an interface is partially implemented it won't wind up stalling out waiting on the host.<br />
** Less code duplication is also always good, but it wasn't clear that this was a complete commonality until we got partway into the Steam framework implementation.<br />
<br />
* A new ArcenSteamClientConnection wrapper has been created to keep track of the Steam connection on servers.<br />
** This now properly is registered while the steam connection is alive, and all of the "waiting for player to connect" and "player disconnection" events now happen properly.<br />
** For some reason, we are not getting the "host has accepted you" callbacks on the client end, but that doesn't really matter. As we start actually having our challenge-response data sent via the higher-level networking code, that bit will become irrelevant as it establishes itself within part of one second anyway. It's just a curiosity, or potentially something that is only meant to trigger host-side. Frankly the documentation is sparse in points, both from the Facepunch C# wrapper and the Valve C++ baseline, so this might be working as intended.<br />
<br />
* Substantial progress on the Steam network transmission of data. Still not quite seeing it register yet, but we're getting close.<br />
<br />
* The full suite of network logging has been integrated into our steam networking wrapper, now.<br />
<br />
* When a Steam host shuts down the connection, the steam client computers now definitely notice and react to that. The inverse was already working from the start.<br />
<br />
* Figured out the missing information on how to get data from the facepunch steamworks wrapper (call Recieve() to trigger the other events), and are sticking with the derived classes methods rather than the interface method, since for relay connections it seems like the interface method is not fully implemented.<br />
** With this in place, we're now getting messages on the client machine, and they are properly decoded! The host for some reason still doesn't get messages back, but this is progress.<br />
<br />
* Fixed a bug in our connection status window code that was causing it to stop showing a timer on connection stages after the earliest ones.<br />
** With LiteNetLib, that all flashes past so fast we could not tell that was even happening. With Steam currently stalling out with the host not getting messages, it became apparent.<br />
<br />
* Previously it was possible for our socket mode to be off, and silently ignoring messages we were sending.<br />
** This was initially done to make it so that any lingering messages that would try to be sent after a disconnect would not cause visible errors, but in this case we've wound up with the socket state being off on the steam networking, despite it being active, and this thus resulting in client messages being composed but not actually sent. That was not obvious because of the lack of error messages.<br />
<br />
* Figured out a stupid mistake in our own code, indeed a single line of code, which was preventing the client from sending data properly back to the host.<br />
** Steam networking is now fully functional in terms of sending data back and forth. There is some sort of issue with the world data not getting across properly, but we have to now verify whether that's limited to Steam or also happens on LiteNetLib.<br />
<br />
* Added in a substantial amount of extra error tracking in our univeral and game-specific network message handlers.<br />
** This helps us to find out where errors actually are.<br />
** In the case of steam, right now we are getting some exceptions when the host tries to tell the client what their player profile number is.<br />
<br />
* Fixed a simple typo that was having us send a junk message via both frameworks to the client when they first connected.<br />
** In both cases, this led to the galaxy map not showing up properly on the very first world connect. But in the case of Steam networking, it also led to an exception because the byte array was too small.<br />
** This extra smallness is actually more accurate, and basically it was only not erroring with LiteNetLib because the buffer array was larger than needed because they are pooled.<br />
** This is an interesting difference between these two networking frameworks, but neither one is particularly "wrong. But it does make Steam slightly more sensitive to certain errors in a way that is useful, because it's an error in both cases that manifests in other places.<br />
** Anyhow, this seems to argue for us to internally use Steam as our main testing framework, additionally because that means we are round-tripping out through the internet and Valve's servers and back rather than having the speed of a LAN.<br />
** This also means that the Steam networking library is fully completely integrated, which is a very major milestone! Now it's all game logic, regardless of what is going on with the two networks.<br />
** Also worth noting that it's under 3 seconds to connect a client to the lobby in our test case, using the Steam relay servers, etc. On the LAN it is under one second, so that's pretty killer.<br />
<br />
=== More Multiplayer Work For All Frameworks ===<br />
<br />
* "Planet GalaxyMapVisuals in CenterGalaxyViewOnPlanet null!" will no longer happen. It was a thing relating to trying to center on a planet slightly too early, and the population of the galaxy map still having failed.<br />
** We are now bypassing that and using the raw internal transform offsets to calculate the correct camera position.<br />
<br />
* In response to the initial challenge from the host, the client no longer just sends their profile name. They now also send their list of installed and enabled expansions and mods.<br />
** The host then compares that list to its own installed and enabled expansions and mods. If there are differences, then it rejects the client connection and does a popup on the client and a chat message on the host side explaining why.<br />
** It also notes in there that both parties can enable or disable expansions or mods in the Game tab of the Settings menu to get things to match.<br />
** Please note that, yes, in some cases there will be mods that are enabled but which "wouldn't do any harm" because their functionality won't be triggered in the campaign in question. We don't have any way of knowing that, so we have to err on the side of caution.<br />
** When it comes to expansions, there are none that "wouldn't do any harm," because all of them add some ships and features to the game in general that all players need to have. For instance, the first expansion adds a bunch of new turret options that are available to choose from in any game you play with that expansion on.<br />
** At any rate, we've gone out of our way to make it easy for people to disable expansions and mods so that they can play with friends who don't have those same expansions or mods. The last thing we want is for the only solution to this sort of thing to be someone reaching for their wallet or having to faff about in the filesystem.<br />
<br />
* Low-level chat messages that are sent to everyone from the host are also now sent to the host themselves. Previously, they could not see messages of this sort, turns out.<br />
<br />
== Version 2.111 Initial Steam Connection ==<br />
(Released July 30th, 2020)<br />
<br />
* Fix a null reference exception in my new spire relic code<br />
** Thanks to Chuito12 for reporting<br />
<br />
* Nanocaust: Make the AI wait a bit longer before unleashing Exogalactic units on it. Remove some deprecated code<br />
** Also the exogalactic units won't hang around to kill the entire nanocaust, so there's a chance it can recover.<br />
<br />
=== Milestone: Initial Steam Networking Connection Between Client and Host ===<br />
<br />
* The Steam versions of the game now initialize relay access on startup, to make it so that the first connection using Valve's relay network will be extra fast.<br />
** If you wind up not playing any multiplayer, this is absolutely harmless. If suddenly it is flagging your firewall on game start on the Steam versions of the game, though, that might be why.<br />
<br />
* The basic connection through Steam's newer networking sockets connection is now in place, using their relay servers as recommended. This is the approach that absolutely bypasses NAT traversal and anything else of that sort, and in fact hides your IP address from anyone you are playing with. The claim is that their backbone is faster in most cases than the general internet one.<br />
** If need be, we can make a "Steam over IP" version that allows for their networking sockets stuff to run more directly over UDP, and only fall back to their relay servers if there is a problem. This would be a lot like LiteNetLib, except with much better NAT punchthrough making use of ICE and STUN and all those things.<br />
** For now we are sticking with Valve's recommended practices.<br />
** Beyond just getting the initial connection up, we don't have anything there yet, but on the server we can see the Steam username of the client who requested to connect and who forged the connection.<br />
<br />
== Version 2.110 AI Exogalactic War Front ==<br />
(Released July 29th, 2020)<br />
<br />
* Spire Relics now have additional text in their descriptions explaining either A. whether the relic is on route to a particular planet , or B. that this relic must build on this planet<br />
** Thanks to Lord of Nothing for suggesting<br />
<br />
* All of the units that were previously named "Galactic War [name]" are now just named "[name]"<br />
** However, in the tooltips for them, their faction should now say "AI Exogalactic War Front" in whatever the hunter fleet's color is, rather than saying the AI Hunter Fleet.<br />
** This lets us keep the shorter name, while making their sub-group and source a lot more clear.<br />
** This does need testing, so please let us know if it doesn't show up correctly somewhere. This is using a new xml feature called "override_faction_name", which lets us use a different faction name for some units in a faction, but without actually creating a new faction.<br />
** Thanks to Ovalcircle for leading the discussion that led to this.<br />
<br />
* Spending a ton of science will now increase a player faction's Overall Power Level very slightly.<br />
<br />
* Remove some inaccurate description text for the Rorqual Hejira<br />
** Thanks to GreatYng for reporting<br />
<br />
=== UI for Steam Networking ===<br />
<br />
* Added the new ArcenNetworkConnectionOption class, which we are using as a basis for things like lists of your Steam friends that you can connect to.<br />
** On the network authority, there is a new PotentialServerOptions, which is used to list out such things. This can be used for anything that we need to list a variety of to connect to, not just friends in Steam and GOG. This is in contrast to the "type in an IP" method that we use with LiteNetLib.<br />
<br />
* Started building out the Steam networking framework layer, currently based on the ISteamNetworking implementation that most games use.<br />
** We MAY opt to also start supporting the newer ISteamNetworkingSockets framework that Valve has rolled out more recently, but that would be an alternative networking framework in AI War 2 that you could choose between.<br />
** The fundamental premise of those two Steam networking setups is really different, and while the newer one would in some ways be easier for us to implement, it seems a lot less familiar to the average Steam player, involves IP addresses potentially, and is maybe less battle-tested, but who are we to say.<br />
<br />
* Previously it was still possible to have some exceptions happen silently in the Engine_Universal main loop, and they would log to disk but not show up in your face. Fixed.<br />
** It was also possible to get some silent errors when clicking buttons and other UI elements, turns out. This made the application just seem not to respond to the click, but now it properly shows the error if there was one.<br />
** Also it was possible for certain errors in the UI call stack to prevent the display of the error window.<br />
<br />
* When you try to connect to an IP address, or you change your active networking framework, the game settings now get saved immediately so that that is remembered even if you shut down the program right away.<br />
<br />
* There is now a screen that will be used for Steam and GOG connections, from the client side, and in Steam it now:<br />
** Shows a list of all your Steam friends, with ones that are in AI War 2 at the top, then ones that are online, and then the rest below that.<br />
** Lets you sort to just ones that are in AI War 2 or online.<br />
** Lets you refresh the list to check for updated statuses.<br />
** There is a connect button for each friend, but that is not functional yet. Just haven't gotten to that part yet.<br />
<br />
== Version 2.108 Galactic War Units And The Exostrike ==<br />
(Released July 28th, 2020)<br />
<br />
* Completely rework the way Exogalatic strikeforce leaders work, to allow per-AI-Type customization. No functional change right now, but intended to support some new AI types for DLC2<br />
<br />
* HandleHelperJournals() has been split out into a bunch of sub-methods, since they can error in rare cases and it would be nice to know where the error generally is.<br />
<br />
* Fixed an issue where we were not letting negative risk analyzer data be saved properly. Turns out that has a good reason to be negative at times.<br />
** Thanks to Badger for reporting.<br />
<br />
* Added a new UI feature that is a throwback to some of the functionality we had in various past games: the "center screen message"<br />
** This is basically a message that can show up near the top center of the screen, and stay there for a bit or for as long as needed.<br />
** It won't block the mouse, and it is over everything except modal popups and tooltips.<br />
** This isn't something we would want to use all THAT often, but for cases of things like "hey the server isn't responding, why is MP stalled," this is exactly the sort of UI functionality we need.<br />
<br />
* Fixed a harmless bug where, for the last few months since we've been doing multithreaded loading of camera xml files, the "PrivateVisExtensions" assembly would sometimes have annoying but unimportant errors appear on startup.<br />
** Essentially, it turns out that loading classes from a custom dll is not entirely threadsafe. Go figure. The fix for that is simple, and it doesn't slow things down, but now we know.<br />
** Thanks to GreatYng for the first report of this we'd had outside of ourselves running into it.<br />
<br />
* Fix a bug where macrophage achievements weren't triggering if you killed all the Telia<br />
** Thanks to GreatYng for reporting and StarKelp for the fix.<br />
<br />
* The in-game credits have been updated to include two more individuals who are key DLC2 testers.<br />
<br />
* Added new GetWasWorldStartedOnGameVersionOlderThan() and GetWasWorldStartedOnGameVersionAtLeastThisVersionOrNewer() to world, which let's people find out in a really efficient way if a world was started before some certain point.<br />
** We can't be accurate past a month or so ago, because we were not tracking the original savegame version back then. But it's useful for looking at saves older than the more recent ones and altering them if need be.<br />
** This is now used specifically to fix this macrophage disabled stuff only on older savegames than 2.108.<br />
<br />
* Fix a mispelling in the Mesopotamian planet names<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fix a typo, "reciever" to "receiver"<br />
** Thanks to Apthorpe for reporting<br />
<br />
=== UI Changes ===<br />
<br />
* In the Load Menu, campaigns are now sorted by 'most recent save game in that campaign' rather than alphabetically<br />
** Thanks to Puppet Master for the suggestion.<br />
<br />
* The default sort for the load menu is now by date.<br />
<br />
* Rename 'Exogalactic Strikeforce' to 'Exostrike' and 'Extragalactic War Units' to 'Galactic War Units' in UI. Having "ExoGalactic" and "ExtraGalactic" was a perennial source of confusion<br />
** Note that internally the code uses the old names for the moment<br />
** Thanks to a discord conversation involving relmz32, Oryutzen and NRSirLimbo<br />
<br />
=== Dyson Sphere Buffs ===<br />
<br />
* The Dyson Sphere's ships should now really level up after the hack<br />
** Thanks to GreatYng and zeusalmighty for the bug reports<br />
<br />
* Dyson Sphere hack descriptions now say "This hack will make the Dyson Sphere very unhappy with you for a while" to clarify the behaviour.<br />
** Thanks to Apthorpe for suggesting<br />
<br />
* The Dyson Sphere now gets additional income (ie it can build ships faster) that scales with AIP. As AIP goes up the Dyson and Antagonized Dyson get stronger<br />
<br />
=== Multiplayer Work ===<br />
<br />
* SendMessageToAllClients() has been split into two methods: SendMessageToAllClientsWhoAreFullyConnected() and SendMessageToAllClientsRegardlessOfConnectionStatus().<br />
** We really don't need heartbeats and frame auths and so on going to clients who are still connecting in.<br />
<br />
* Also added a GetCountOfClientsWhoAreFullyConnected() that lets us know if there are any clients who actually have gotten all the way in (and thus we should send world data)/<br />
** And added GetCountOfClientsNeedingWorldData() that lets us know we should make everybody wait for a bit until those people connect in. Otherwise everyone won't be on the same page.<br />
<br />
* Added a OnServer_IsAtPausedSpotWhereGameWorldCanBeSent() that lets us wait for a break in things happening (usually only 400ms or so at most) to then have a clean slate to send a world state to a connecting client without that state changing between them being sent the state and them getting it.<br />
** Along with this, if GetCountOfClientsNeedingWorldData() is more than zero, then it now pauses authorizing more simulation frames until the world is fully taken in by the new clients who are joining.<br />
<br />
* When a multiplayer game is stalled out for some reason, it now uses that central screen message to let you know what is happening, and if possible, why it is happening.<br />
** The game itself will have stopped having any action at this point, though you can still scroll around and look at things and give orders. But nothing is proceeding on the enemy side, so you don't have to worry about it being in your way.<br />
** When a client is first connecting into the lobby, it also uses this, to basically get the host and any other existing players to wait a moment before making more changes, etc.<br />
** On the host, this is already set up to give some context about the exchange under the hood that is happening with the new client.<br />
<br />
=== Multiplayer Transition To LiteNetLib ===<br />
<br />
* Okay then... we are switching network libraries when it comes to our non-Steam/non-GOG transport layer. Instead of FORGE Remastered, we'll be using LiteNetLib.<br />
** FORGE has grown a lot over the years, but the version we were using was from 2018...ish. We looked into updating our version of the code, but were not thrilled with how complicated it was going to be. Since we had working AI War 2 multiplayer on FORGE at least as recently as 2017 (in an alpha state), staying with the existing code made a certain amount of sense.<br />
** However, we started running into really long delays with something as simple as sending 10 bytes to say what our profile name was. This was taking upwards of 14-18 seconds between two machines sitting three inches apart and both within five feet of a powerful wifi router. We verified that the polling was happening hundreds of times per second, and that massive amounts of data was being sent via sockets. But in the internals of the old version of FORGE we have, it was taking it quite a very long time to assemble that into a full message, despite all the churn of hundreds and hundreds of data reads that were apparently all just empty headers and then noise. <br />
** Time for a new approach. It's worth noting that the current version of FORGE still lists all the most internal classes as "in development and lots of dire warnings," so that was another reason for switching up frameworks.<br />
** We chose LiteNetLib at this point, and within 40 minutes of dropping that in, we had the first successful connection between the machines on using this framework for the game. It was just a simple "hello client" message in basic unicode, but it arrived extremely instantly, as expected.<br />
** Next steps are going to be doing some cybernetic implants on LiteNetLib, rather like what we did on FORGE, to make sure that it integrates with AI War 2 properly and our network authority, and that it communicates as directly as possible with our own pre-formatted bitstreams. Most of that should be part of one day of work, at this point. We shall see. Then it's back to the actual larger "build out the multiplayer part of the game" work, but minus the lag that was tripping us up the last day or two.<br />
** It's also worth noting that, with this switch, we had to unfortunately also lose the awesome NAT punchthrough work that Doug Fields did for us with the FORGE interface back in 2018, but LiteNetLib has some of that of its own. And hopefully most people use Steam or GOG if they are behind firewalls of any complexity (since relay servers then become required, and that's where the free relay servers are).<br />
<br />
* NetPeer in LiteNet now inherits from ArcenNetworkClientConnection.<br />
** For now, we are using our own methods to generate the ConnectionIndex, rather than using the existing peer.Id. There may be some numeric conflicts, otherwise, but we can also change this later.<br />
** We also are initializing everything on the Arcen-integration side, keeping our own clientsOfServer list for quick access, and then calling the game-layer RespondToNewConnectionAcceptedByTransportLayer() that will kick things off.<br />
<br />
* PrepareMessageForSending() has become WriteLogOfSend().<br />
<br />
* Added a new SendToSpecificPeer() method onto LiteNet's NetManager. Not sure why that variant didn't seem to exist.<br />
<br />
* Wiring back up our LitNetSocket wrapper class:<br />
** SendMessageToHost_Inner() done.<br />
** SendMessageToAllClientsRegardlessOfConnectionStatus_Inner() done.<br />
** SendMessageToAllClientsWhoAreFullyConnected_Inner() done, using the new SendToSpecificPeer() method.<br />
** SendMessageToSpecificClient_Inner() done, using our own ConnectionIndices for now.<br />
<br />
* Booyah! Exclamatory phrases are not the norm in our patch notes, but this is an exciting moment. LitNetLib is sending messages, and doing so with speed and accuracy and a minimum of fuss. The username travels three inches in well under a second, as should be expected.<br />
** At first, I was getting some very strange data sent across, and I figured that this was going to be an endianness problem, but actually all of the .NET/Mono data is the same endianness from the look of things. Which makes sense, given that otherwise savegames would not work from computer to computer.<br />
** After spending the night with that rattling around in my brain, this morning I decided to definitely do some profiling of the data before I started messing with the #ifdefs.<br />
** First thing I noticed was that I'd chosen to use the RawData byte array, and immediately next thought was "I better check there's not a network header in there." Turns out, yes, there's a UserDataOffset. The first four bytes are not my data, and so of course it would give gibberish as if the endianness was wrong. Just starting my reads from the proper offset makes everything work instantly.<br />
** All of this is from a Mac to a Windows machine at the moment, but my I'll be testing three-way with my linux machine as well. Right now laptop is sitting closed under the Mac.<br />
<br />
* LiteNet logging now gets funneled to our own main logging pipeline.<br />
<br />
=== Continued Multiplayer Work ===<br />
<br />
* A fair bit of work has been done to make intentional disconnections from the client or server tell the other side more quickly.<br />
** This should help to avoid some disconnect-and-reconnect issues that are otherwise inevitable, and it just makes things feel more responsive.<br />
<br />
* Additionally, when you use the in-game controls to exit the program as a while, it now takes one extra half second to lets Steamworks and GOG actually do their exit logic properly, rather than rushing out the door.<br />
** This should hopefully help with any cases of the game still being thought to be running on Steam in particular after it closed.<br />
<br />
* When you exit the game, while it is doing its brief exiting stuff it now throws up a center-screen "exiting.." message.<br />
<br />
* Got rid of OnServer_WaitingOnConnectionIndices, as this was basically a duplicate of something we are doing better and more cleanly a new way, now.<br />
<br />
* UpdateDebugText() and all of its related variables have been removed.<br />
** This was the sort of thing that, in all of our prior games before Raptor and moving to 3D, you could hit F3 and get output information from. But it has never really been used in AI War 2 properly.<br />
<br />
* Got rid of WorldTransmissionMessageType, as it was needlessly complicated.<br />
** This was essentially us breaking the world transmission data into multiple parts and then sending those in parts. Historically there were two reasons for this:<br />
*** Back in AI War 1, we were using the Lidgren network library, and even though it was trying to work around the MTU (typicaly 1200 bytes) of various networks players might be on (or passing data through indirectly), it was often having bottlenecks and slowdowns with how it sent fragmented messages through the network card. Our theory at the time was that it was flooding the buffers of the NIC, rather than giving it data at a more reasonable pace. Network cards have grown enormously in the last 11 years, as have the OSes that control them, so that's not really a concern now. All of the newer network libraries that we would be using to send data should be able to handle 1MB of data without incident.<br />
*** Secondarily, for AI War 1 and for the A Valley Without Wind games, we were sending enough world data that you could see a noticeable wait time, and by handling this above the network transmission layer we could give you visual feedback on transmission progress (even though the whole act of that actually slowed it down). Eleven years later, we have networks that are vastly faster basically everywhere in the world, and the world savegames for AI War 2 are much more efficiently packed than AI War 1 was. So sending a file like this really is like a midsize image on any website you visit, now. Not really a progress bar sort of situation, especially if the progress bar itself causes slowdown.<br />
<br />
* ConnectionStage has moved from being just a UI-only element to being ClientConnectionStage as part of the ArcenNetworkAuthority, so that clients can better keep track of their connection status. Usually this is less than a second or so, anyhow, but we still need to keep track of it in case something goes wrong in particular.<br />
<br />
* The host now properly sends the world data to the client, for the first time in three years or so.<br />
** The client is having some trouble understanding it thus far, so now is a good time to build in error handling (it was just silently failing, until now).<br />
<br />
* Added a new SendLowLevelChatMessage() method on the network authority, which is used mainly for sending back and forth arbitrary messages from clients and the host to explain about the status of things. These can be echoed to all other clients or not, as the case warrants.<br />
<br />
* If the client fails to load a world sent by the host, then the host and any other clients all get sent a low-level chat message about that, the client gets kicked out (since they never made it fully in), and the client gets a nice error message on their screen and in the log.<br />
** This way we can solve whatever the problem is, and nobody is left sitting wondering why things are slow (when in fact they errored).<br />
<br />
* When you are loading a quick start, or loading a savegame as a template into the lobby, it now clears the chat log. This was definitely not information that needed to persist from a prior game to the new lobby!<br />
** These sorts of chat log messages, which are kept over the long term for the game (up to a limit), are no longer shown in the lobby at all.<br />
** Instead, we now are using LocalMomentaryDisplayLog, which is something that doesn't get sent with savegames, and which normally is just "stuff showing on your sidebar during the game for a little while."<br />
*** This is perfect for the lobby, and in the lobby we are just showing the last 100 of these, and not clearing them until you reach the game itself.<br />
*** These things are actually shown by timestamp, not by gamesecond (which isn't ticking yet), so that's just extra perfect for a lot of reasons.<br />
*** This also leads to privacy for people who were talking before someone new joined -- you only see messages that were sent after you were connecting -- although that's not hugely important in most cases.<br />
<br />
* Got rid of ArcenUI.Instance.CurrentNowUTC, since that was putting all of our lobby chat messages in the British time zone. We didn't use this anywhere else, and it was puzzling that we used it at all.<br />
<br />
* NatPunchEnabled is now true on the server and client for LiteNetLib. We'll see how well that works.<br />
<br />
* Added a new debug setting to the network section of the settings menu: Write Network World Serialization Logs<br />
** When sending a game world across the network to a client, write NetworkWorldSerialization.txt, and when getting one from a host write NetworkWorldDeserialization.txt -- both in the PlayerData folder (but on two different computers). The only real reason to turn this on is if a client is unable to join a host and gets an exception; this lets us do a diff of the two files and figure out what is different about what the host is trying to send and the client is trying to read.<br />
** Note these logs are often huge, sometimes hudreads of MB each. Compressing them into a zip or tarball and then uploading them somewhere we can download them to find out what is happening is a good idea. Hopefully as a player you will never need this, but this is basically a way for us to test the network world sync process, which otherwise can be incredibly opaque and take a lot of time to hunt down.<br />
<br />
* Used our new network world logging capabilities to fix an error in network world transfer where it needed to send the game version in a different format.<br />
** The client now looks at the game version very early on, and if it does not match it sends a message back to the host telling the host what the problem was.<br />
** Basically: If the client can't join because of a version mismatch, that gets shown and things happen properly.<br />
<br />
=== Milestone: World Sync Between Host And Client ===<br />
<br />
* Milestone! Initial transmission of the world data from the client to the host now works properly.<br />
<br />
* When a local player account is missing the following methods no longer throw errors:<br />
** SwitchViewToPlanet<br />
** OnClient_SendClientBatchToServer (actually still errors, because it's useful to have it do so).<br />
<br />
* PlayerAccount is now more strongly linked to the new ArcenNetworkClientConnection, and its connected status is now a method called OnServer_GetIsConnected().<br />
** There is some duplication of concepts here, but when you factor in the way that things like viewing of planets are synced in multiplayer, this is a worthwhile separation of concepts.<br />
<br />
* If two players with the same profile name try to connect to a game at the same time, it will now prevent the second one from joining and tell everyone why.<br />
** Bear in mind that these are AI War 2 profile names, not Steam or GOG or what have you. Everyone needs to have a unique AI War 2 profile name in the current game, but they can change up their names however they want and global uniqueness doesn't matter beyond the current game you are in.<br />
<br />
* In situations where a player 3 joins after player 2, and it's the first time player 3 has been in this particular world, player 2 now gets told by the host about player 3.<br />
** And of course all the more complicated permutations of this. It's the new FromServerToClient_SendNewPlayerProfile.<br />
** This is needed specifically so that all clients can know which planets are being viewed by other players, so that which planets are "tier 1" processing is honored and identical everywhere. Among other later needs.<br />
<br />
* Clients connecting to a host are now properly told what playeraccount they have been put in charge of.<br />
** This makes PlayerAccount.Local not null on their local machine, and lets them give orders and whatnot from their spot there.<br />
<br />
* Errors that happen during the main sim step will now be more visible in multiplayer contexts.<br />
<br />
=== Milestone: Initial Sharing Of Lobby Between Host And Client ===<br />
<br />
* Milestone: Clients are now able to load into the lobby, and they and the host both see most (but not all) changes that are made.<br />
** Clients are not yet assigned to any faction (making them just spectator-mode for now), and there are some specific bugs with certain data that isn't synced correctly just yet.<br />
<br />
* Map generation can no longer happen in the lobby except on the host.<br />
** We have no real way to be sure that map generation is deterministic between machines, so we need to do a world sync each time anyway.<br />
<br />
* When the map is regenerated on the host during a multiplayer lobby, it recreates all of the playeraccounts needed for each of the player connections that exist.<br />
<br />
* And when the map is regenerated on the host during a multiplayer lobby, it now re-syncs the entire world data to all of the clients so everyone is up to date.<br />
** This also solves the "authorized through frame number" issue, which was really just a smaller symptom of this larger issue.<br />
<br />
* Both the client and host are now verified able to add, remove, and edit factions and have that properly affect the world.<br />
<br />
* Window_ServerMultiplayerConnectionStatus has been removed, as we no longer use that. We've been using the new center-screen messages instead, or the chat sidebar, as needed.<br />
<br />
* In multiplayer games, the save button is now disabled and says: Cannot Save Game As Client<br />
** If you click it, it gives you this message: Unfortunately, only the host can save games in multiplayer. To save on bandwidth as well as on processing power between your machines, there is a LOT that is calculated only on the host machine. If you were to save a copy of the game on your client's end, loading it would lead to a lot of wrong and missing data.<br />
<br />
* Additionally, autosave is now something that does not happen on multiplayer clients. Just the host.<br />
<br />
* The header of the load quickstart and load saved game menus now make it clear if you are loading for multiplayer or single-player.<br />
** Also on these screens is a new "[Multiplayer Questions?]" bit of text up at the top that appears only on the multiplayer version, and which has some helpful mouseover text.<br />
<br />
* Rather than having an annoying explanatory popup to click through every time you open the various ways of hosting or joining a multiplayer game, it now puts that extra information under the "[Multiplayer Questions?]" section up at the top of those screens.<br />
<br />
* At the top of the lobby screen, it now says if you are joining as a client or a host to a multiplayer lobby, as well as having that same "[Multiplayer Questions?]" bit.<br />
** This includes the following new text in its mouseover text: Except for the host, all players are spectators by default. There is only one human player faction by default. Any number of players can share control of a single faction, or each player can have their own faction that they control on their own. You can mix and match as you like.<br />
<br />
* The connect by IP window has been completely reworked visually so that it matches the rest of the game and doesn't look like the old temporary style that we were using in 2017 (because that's what it was).<br />
** This also lets us put extra information on that screen to help anyone who might be confused.<br />
<br />
* The client connections status window is now patterned as a continuation of the connect by IP window, and it's nice and graceful and in the new style.<br />
<br />
== Version 2.106 Immortals and Unresponsiveness ==<br />
(Released July 23rd, 2020)<br />
<br />
=== Bugfixes ===<br />
<br />
* Put in field names for the risk analyzers saving, so if they have trouble serializing we can see which field it was.<br />
** Also then made it so that the total increase and net increase both are automatically clamped to 0 instead of a negative number so that they won't throw an exception when trying to save.<br />
** Thanks to GreatYng for reporting.<br />
<br />
* When stacks are split, they now have their "time on planet" and "time alive" set to be whatever the original stack was. Same with the amount of cloaking points they have lost, and the number of cloaking points they have left.<br />
** This prevents a variety of abilities from triggering, including the "invincible if only on this planet for x seconds."<br />
** We also made it so that dying to remains does not reset the "time have been alive or on this planet" counter, for similar reasons.<br />
** This keeps the vanguard hydra heads from being insanely impossible to kill, among other issues that are probably pretty much all in the player's favor to have resolved.<br />
** Thanks to crawlers for reporting.<br />
<br />
* Added some extra debugging information for the status of gamecommands that are queued, to see if there are clogs happening. At this point, we can't replicate any evidence of that, though we have some reports from multiple players of it. So maybe the problem either takes a bit to manifest, or is in a different area of the code than we expected.<br />
<br />
* AIP should no longer increase when things die to remains if you have the "ships of X type die to remains instead of dying entirely" galaxy map option on.<br />
** This is untested, but should work.<br />
** Thanks to crawlers for suggesting.<br />
<br />
* Found and fixed the core typo from a few builds back where remains that were being rebuilt were being set to have the cost of the rebuilder, not themselves. This was previously massively overcharging players for building most things, but then once we put on a band-aid to fix that, it started giving it to them for basically free.<br />
** Thanks to Lord Of Nothing for the report and save.<br />
<br />
* Fixed a bug from the last few versions that nobody seemed to notice, where the galaxy map was not centering on planets properly when you first went into the game after loading a savegame. This had to do with when we were calculating the position of the planet, and that not always being calculated before we tried to center on it.<br />
<br />
* Fixed a bug where it was possible that a client would send more commands to the host than it would tell the host about, and thus the host would not know to read the extra ones (or vice-versa). In single-player you are both the host and client, so it still applies.<br />
** This was happening because of multiple threads adding to the queues of commands at the same time that the queue was being drawn down.<br />
** This was actually something that probably could have happened since more or less forever, but it was substantially more likely in the last few versions because of some efficiency improvements we made.<br />
** Additionally, we have now switched to using a ConcurrentQueue for each of those collections, rather than a regular Queue. This should also help with potential contention.<br />
** There was also the possibility that we might not be able to get enough commands out of the list for some reason to then send more, and we are also now guarding against that.<br />
** Previously, this problem was manifesting as orders not being carried out when you gave them, sometimes or all the time. And things like "save my game" and "pause or unpause" not working anymore.<br />
** We were able to duplicate this in one savegame after some time, but no longer can. Given the intermittent nature of this sort of thing, we can't say for sure that it is solved -- but the logic of what was going on makes sense, and the fix we put in should hold that at bay. It's one of those "can't prove a negative" things, at the moment, so fingers crossed it just never shows up again.<br />
** The characteristics that we observed while this happens, if it happens to you and you want to see what you can tell us:<br />
*** In the escape menu, under the memory pooling performance, the number of raw commands were steadily climbing. One or two every few seconds. This should never happen in that way. Increases happen, but not a steady drain flow like that.<br />
*** In the escape menu, further down under the Commands Queued By Type, you may see some null warnings up at the top of that list, now. That wasn't there when we observed it, but it would be if it ever happened now.<br />
** Thanks to zeusalmighty, Puppet Master, Gdrk, and GreatYng for reporting and giving advice on how to reproduce it.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* In our copy of FORGE networking, we've removed some useless extra code that was for the UniversalWindowsPlatform framework, which we won't be ever using.<br />
<br />
* In our copy of FORGE networking, we also got rid of a very useless set of "pending" messages on the UDPClient and UDPServer, which were ostensibly to help with reliable messaging, but in reality was just doing some useless event handling and invocation, and some useless cross-threading locks. It just put the things in the basket and took them back out, never checking the basket or doing anything with it. Thankfully, there is a second basket for reliable UDP inside the UDPPacketComposer, so this was just extra redundancy.<br />
<br />
* Added a new ArcenNetworkClientConnection abstract class, which we now store on ArcenNetworkAuthority in a ClientConnections list.<br />
** These are connections, not yet correlated to specific players. But it lets the network pipe connect up a specific connection with a specific player (or reject that connection if it's not okay).<br />
** Each individual networking framework (ArcenSocket descendent class) is actually responsible for keeping track of these connections and populating them.<br />
** But the actual network authority does the job of authenticating them into a given game and handling the challenge/response work, figuring out a match to a player slot in the game, etc.<br />
** With this in place, we can now get rid of GetNumberOfConnections(), because that's now moved out of the socket and into the network authority.<br />
** This is a substantial refactor, in that it will really make Steamworks and GOG a lot easier for us to work with as networking frameworks, faster.<br />
<br />
* NetworkingPlayer in FORGE now inherits from ArcenNetworkClientConnection, and is the first version of a networking framework using this new pattern.<br />
** On NetworkingPlayer, rather than having a public { get; private set; } for some of the immutable connection things, we now use them as public readonly. This is both more efficient in performance (slightly), but also prevents sync issues between this class and its new underlying abstract class.<br />
** This class gives the information it needs to the base class, and doesn't bother registering the host NetworkingPlayer as an underlying client connection at all, keeping things simple.<br />
<br />
* A bunch of stuff with the FORGE networking logging has been replaced with wrappers around our own logs, so that if there are internal exceptions those don't just go nowhere invisibly anymore.<br />
<br />
* Trimmed out a bunch more old FORGE code that has been commented out for years from the look of things.<br />
<br />
* RespondToNewConnectionAcceptedByTransportLayer() is definitively game code, not part of the actual networking transport layer, and it has been moved into the central codebase and away from any specific networking framework.<br />
** "Hello friend, you've connected: what's your profile name you want to play under?" Etc.<br />
<br />
* A fair bit of the "initial chatter" of clients connecting to a host and the host responding are now logged to the debug log no matter what.<br />
** There really is not that much that is said, and this will certainly help someone at some point who is having some sort of connection issue.<br />
<br />
* When clients are connected to the host, now the host not only shows the number of clients, but also sees their profile names that they have chosen to connect with.<br />
<br />
* A bunch of event-driven stuff on the FORGE networking has been made a bit more inline, improving performance a bit and also reducing certain areas of complexity.<br />
<br />
* The initial challenge-response work, and "what's your name" work, is all functional again. This is stuff that will be identical regardless of the network framework.<br />
** The host can now properly see the profile name of the client, and is poised to send the client back all the world information.<br />
<br />
== Version 2.105 Selection Hotfix ==<br />
(Released July 22nd, 2020)<br />
<br />
* The game still loads various xml files asynchronously, and loads icons and music and sound in that fashion, but it no longer tries to load the ships, shots, or wormholes in that way.<br />
** This was just too unreliable, because of some issues in the unity engine. It didn't affect all players, and not all the time -- but enough that it majorly affected the stability of the game for some folks, and that's too much.<br />
** This also removes the potential for the really long (15-30 second) lag time when you are first opening a new game or the lobby if things didn't load during the loading period.<br />
** Thanks to Ovalcircle for the most recent set of reports.<br />
<br />
* Previously, the game was using a standard List<> object for keeping track of selected ships, and that sometimes ran into inefficiencies and cross-threading issues.<br />
** In the prior build, we tried to fix some of those cross-threading issues, but wound up making things not actually deselect properly.<br />
** To fix all of the above, we've now switched to the much more flexible and robust ArcenLessLinkedList<> object, and adjust the code to handle this. This is both more efficient (not that efficiency is a major problem here), and does not fall victim to the various cross-threading woes that the old style could. <br />
** And, naturally, as part of that, this also resolves the frankly infuriating selection issues in the most recent build of the game. Sorry about that one!<br />
** Thanks to ctl0ve, CRCGamer, Chuito12, and Burner for reporting.<br />
<br />
* Previously, the tech menu only showed techs that would actually benefit a ship you have at present, or which you could capture.<br />
** This was very confusing to a lot of players, as they would not see the entire tech tree and thus think that something was missing or broken.<br />
** In some other cases, possibly due to changes in the recent past, you CAN build something (like a command station), but since you have not done so yet, it would not show up.<br />
** All of the techs now always show up, but the ones that are for ships that would not benefit you right now still show up as red and not researchable.<br />
** Additionally, the tech color shows up as white when it benefits ships you have, gray when it benefits ships that you don't have right now, and lighter gray when it benefits ships that you could capture.<br />
** Please note that since citadel upgrades don't benefit battlestations anymore, the citadel tech not showing from the start was working properly.<br />
** Thanks to Strategic Sage and CRCGamer for reporting the confusion.<br />
<br />
== Version 2.104 Negative Build Percentage Hotfix ==<br />
(Released July 21st, 2020)<br />
<br />
* Somehow or other, it became possible for some self-building ships to go very negative in their build percentage (instead of counting up to 100%, they would be way in the negative percentages of building process). <br />
** This seems to be a new bug in the last day or so, based likely around some changes that we made to improve the cross-thread reliability of the game. The problem is, upon manual code review of the areas that would be relevant, we just can't see anything that looks like a bug.<br />
** Ultimately what is happening is that the SelfBuildMetalRemaining is getting absolutely giant in value, far larger than the original metal cost of the ship that is constructing. This was probably an integer overflow from it going really negative first, and then wrapping back around, but it's hard to be sure.<br />
** We've put in some extra defensive code to make sure that if it goes negative at all, it marks itself as complete. We've also put in protections so that if you "owe more than it is worth" in general, that it will assume that there was an overflow and just go ahead and finish it now. These two changes should help to keep the problem from happening again, and fix the cases where it was already in progress.<br />
** While we were already at it, we put in a small general improvement that prevents you from being overcharged for the last tiny percentage of constructing a ship. If you had a bunch of engineers building, and each frame cycle they normally would do 1.1% of the construction of a ship, and charge you accordingly, then you might wind up in a case where you had only 0.2% remaining work to do, and yet got charged the full 1.1% rate. It is now careful to only charge you for what you would owe, so the 0.2% rate in this example.<br />
** Hopefully there are no other errors in any of the metal flows, with things like drones building, anything engineers would claim or repair, etc. The code looks clean, but then again the code for the self construction also looks clean. In the next couple of days, please let us know if you see anything else that seems amiss with how metal is being charged against you. So far we can't duplicate anything like that anymore, now.<br />
** Thanks to CRCGamer, deso, and Puppet Master for reporting.<br />
<br />
* Some code from yesterday dealing with cross-threading protections let us unfortunately sometimes wind up with runaway DoForSelected loops. This is now fixed, and it has several kinds of self-repair in place to prevent this from happening now.<br />
** Thanks to Gunner for reporting.<br />
<br />
=== Multiplayer Connection Work ===<br />
<br />
* Reworked the NetworkTrafficLog.txt multiplayer output to actually be a lot more informative.<br />
<br />
* GetNumberOfConnectsCurrentlyActive has been replaced with GetNumberOfConnections, which lets the network framework tell us a lot more about the general status of things happening.<br />
** Instead of just a generic number of players that exist, we can see how many are disconnected, how many if any are the host, how many are clients, etc, etc.<br />
<br />
* In the lobby, the host now sees how many connected clients there are, and if there are any disconnected ones, how many disconnected ones there are.<br />
** Previously it just showed one number that included the host and also disconnected clients all wrapped up into one.<br />
** It still isn't detecting disconnects properly in FORGE, but we'll get to that.<br />
<br />
* The host now only bothers sending heartbeat messages if it has at least one non-host client machine connected.<br />
<br />
* Removed some old "desync detected" code that was not fitting with the new plans for multiplayer.<br />
<br />
* Figured out some of why the client was not detecting itself as properly connected, and so was not getting messages from the host at all in the last few builds after the connection.<br />
<br />
* The way that gamecommands are queued and then given out to player simulations for both single-player and multiplayer is now more efficient.<br />
** We're using queues now instead of lists, and this gives us a lower chance of accidentally losing a command, as well (not that we know of that ever happening before).<br />
** This has several performance benefits even for single-player when there are a lot of commands going around.<br />
<br />
* Added a new FromServerToClient_AuthorizeThroughFrameNoCommands in addition to the FromServerToClient_SendNextBatchOfCommandsToExecute, to slightly save on space (1 byte per message) and make the logs clearer.<br />
<br />
* The network log no longer has a time delay built in where it logs only 100 items at a time. It just immediately dumps items to disk.<br />
** Realistically there is only substantial traffic every 100ms or so anyhow, and the delay in logging was incredibly confusing as a programmer working with it.<br />
<br />
* The network polling interval has been updated from 20 times per second to 100 times per second. In practice it will actually be variable, but the polling is extremely lightweight (the part that is on the main thread), and having absolutely minimal delays in getting and sending messages is what will keep things moving smoothly.<br />
<br />
* To make network logging even more efficient and clear, the old ArcenNetworkLogEntry is now ArcenNetworkSendLogEntry, and is now a struct instead of a class. This runs lightning fast and doesn't affect RAM usage.<br />
** We also now are then logging data that is gotten in (which we call TAKE) along with data that is sent (which we call SEND).<br />
** This way we can see the conversation between several machines all interleaved on a single machine's log, and thus figure out why they are saying what they do, and if messages are getting there, etc.<br />
** Surprisingly, the way we were logging things previously really didn't lend itself to that, so it was easy to go down rabbit holes of wrong information (thinking data did not get to a machine when in fact it did).<br />
<br />
* Furthering clarity on the networking side, we're now ignoring loopback messages-to-self on the host in our logs, which previously we were not doing.<br />
** This way we don't get drowned in a sea of stuff that "I'm telling myself in order to be the same as everyone else," and we can just see what is actually passing between machines.<br />
** The loopback stuff has been demonstrably working fine since more or less forever, unless we broke it today, since single-player relies on that.<br />
<br />
* Fun fact, after all these logging changes, we can now actually see how well parts of the networking are already doing.<br />
** As one client connects, the host is able keep talking to itself and/or others without breaking stride, letting the potential connection wait for the challenge and acceptance (not yet reimplemented) before it loops in the new client to the rest.<br />
*** This is a great example of how we can keep people from accidentally messing with the sessions of friends by trying to join during a game, etc. It's the sort of thing that only matters among friends, but it keeps it clean.<br />
** On top of that, we can see now that the reason for the host not noticing when a client disconnects is because it's ignoring the client that has not fully gone through the challenge-response process yet, and so the mystery of how it was "sending messages that failed but didn't flag the client as disconnected" is easily solved (answer: it wasn't sending messages to that particular client yet, because it is smart).<br />
** In general, by improving our logging quite a lot we can see what is actually happening and make sure all of this works properly. The vast majority of this is network-agnostic, which is doubly great. These particular logs will look substantially the same between FORGE and Steam and GOG.<br />
<br />
== Version 2.103 Hotfix ==<br />
(Released July 21st, 2020)<br />
<br />
* Fixed a bug from the prior version where the dark spire serialization fix was making any savegames with dark spire in them -- new or old -- not able to load.<br />
** Thanks to valinor000 and stanazolol69 for reporting.<br />
<br />
== Version 2.102 Digression For Quality ==<br />
(Released July 20th, 2020)<br />
<br />
* Using the "Increase Max Dyson Strength" hack will now also increase the Dyson's general mark level<br />
* Some minor buffs to the Dyson's income, mostly at higher levels<br />
** Thanks to a discussion started by zeusalmighty<br />
<br />
* When picking music (through the debug menu), the hovertext will now give you information on most of the tracks saying the original source<br />
<br />
* Improved the speed of some dictionary lookups by precalculating the ArcenAssetBundlePath CombinedPath.<br />
** This also required us to change their member variables into properties, and in return that meant that the general string fill methods needed to be adjusted to new FillBundle and FillPath methods for xml reading.<br />
** This doesn't affect as much code as it sounds like.<br />
** We also adjusted the various debug logging points to use the combinedpath, which is cleaner and easier to read, but not much faster since that almost never happens.<br />
<br />
* Fixed a bug that could happen with entity order serialization in rare circumstances if threads were fighting over putting items back in or taking them back out.<br />
** Since multiple threads do in fact often use orders, at once, this is one of the few collections prone to that.<br />
<br />
* Fixed a variety of exceptions that could happen based on cross-threading bad luck during the exit of the game either to the OS or to the main menu, all in the metal expenditures code.<br />
<br />
=== Ship Behavior Improvements ===<br />
<br />
* Fix two problems related to shields recovering from being bumped by Astro Trains <br />
** Human Home Forcefield Generators can now recover from being bumped.<br />
*** Thanks to Lord Of Nothing for the bug report<br />
** If a forcefield generator is bumped twice in short order, it will now do a better job of returning to its original location. This isn't perfect, but it's a pretty intense corner case<br />
*** Thanks to Puppet Master for the bug report<br />
<br />
* If there are only non-combatant enemies on a planet, ignore any requirement in the targeting code that particular targets need to be combatants. This prevents ships in FRD from discarding reasonable targets incorrectly. <br />
** Thanks to ParadoxSong for the bug report<br />
<br />
* Actually support Targeting tracing now; you need to set Targeting tracing and the Debug setting that lets you set the PrimaryKey for the unit you want to follow, and you'll get some actual logging. <br />
** Not for the faint of heart; intended only for developers who want to get their hands very dirty.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fix a bug where the 'delete campaign' button wasn't giving the campaign name<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a rare and harmless (but annoying) cross threading exception that could pop up with argument out of range exceptions in RenderShip.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
* Fixed a rare nullref exception that could happen in DoRemovalChecks() on shots, mainly a cross-threading thing.<br />
** Thanks to Lord Of Nothing for reporting.<br />
<br />
* Fixed two possible spots in DoForSelected() where cross-threading issues could sneak in and cause an exception in rare cases.<br />
** Thanks to Lord Of Nothing for reporting.<br />
<br />
* Fixed an issue when loading savegames that have a missing planet naming scheme. It will now default to the default naming scheme if it can't find the one that the world was started with.<br />
** Thanks to Oryutzen for a save that demonstrated this.<br />
<br />
* Fix a bug where the imperial spire wasn't Watching previously explored planets for you.<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fixed an error in TextMeshPro where it would still give us "Unable to use Ellipsis character since it wasn't found in the current Font Asset" invisible errors that would fill up the debug log even if warnings were disabled.<br />
** This was, in very long play, a memory leak as well as a performance drain, and it was generally invisible.<br />
** The ellipsis character was typically something it was trying to find specifically for purposes of showing cut-off text, and some fonts just don't have that in them. So no wonder we couldn't actually find the ellipsis character used in our own text files.<br />
** Thanks to Puppet Master for providing the log file demonstrating all this.<br />
<br />
* Fixed an issue where the stationsRemainingBeforeDepot on astro trains could go arbitrarily negative, thus causing an error on save. It now stops at 0, and thus seems not to cause the issue anymore. But on the change that an astro train does have a data exception during save anymore, it will now log what field is having the problem and we can fix it.<br />
** Thanks to Lord Of Nothing for the report and save.<br />
<br />
* The game has been updated so that the debug logging that is DoNotShow now ONLY goes to the ArcenDebugLog.txt, and not to the unity Player.log. The unity Player.log is kept in memory in a very unfortunate fashion, and in long gameplay this will be extra RAM used that should not be. Probably also extra slowness.<br />
** We added a new DoNotShowButSendToUnityLogEvenOutsideEditor Verbosity option that lets us have the old behavior of going to both of those logs, but we are not using that anywhere at the present time.<br />
** All of this is going to make it even more important that we have both kinds of logs from players if they have an outright game crash, now. But generally speaking, if it's an exception popup but not an outright crash, the ArcenDebugLog.txt has always been enough and will continue to be. It's only when the game crashes all the way to the desktop that we need the Player.log, typically, and now we'll just still need the ArcenDebugLog.txt in addition to that. However, any ShowAsInfo or ShowAsError logs to the main ArcenDebugLog will still appear in the Player.log, so potentially even that won't be true.<br />
** For a developer using the unity editor, it still logs everything to the actual unity log because that's for short testing cases and super useful to see output in realtime.<br />
** At any rate, we are trying to strike a balance between getting the logs we need, easily on the part of players, but without having any accidental extra usage of memory on very long play sessions.<br />
<br />
* All of the dark spire per-unit data is now saved in a format where we can tell which field is having trouble if one does.<br />
** The dark spire data "lastTimeAttemptedLocus" was trying to save as an int16 and would overflow any time a game saved that was more than about 32000 seconds in. Fixed.<br />
** Thanks to RockyBst for reporting.<br />
<br />
==== Memory Leak Fix From 2.099 ====<br />
<br />
* New setting on the debug menu: Show Pool Counts In Escape Menu<br />
** Used for searching for memory leaks, particularly between loads of a savegame. If pool counts keep rising after each load, then something isn't getting put back in the pool properly and is instead persisting lost in memory.<br />
<br />
* ArcenGameObjectResourcePools must all now have a unique name, and they register themselves in a central place that identifies how many of them there are.<br />
** These pools also now keep track of how many objects they have ever produced from themselves, so that if we are leaking objects from them we can tell. And we can tell if we are leaking pools themselves.<br />
** After seeing all of these in the new debug menu option above, we can clearly see that none of these are leaking and they are all behaving just wonderfully. Hmm. But we have a leak somewhere, so let's expand this...<br />
<br />
* Created a new CountedPoolBase abstract class that sits under the ArcenGameObjectResourcePool, and takes its counting capabilities and puts them there so that we can also use them for some other pool types.<br />
** This is also now used on a new "Shot Instance Renderer Pool Of Pools" so that we can tell if we are leaking there. And now ships and squads, too.<br />
** Also this is now used on LoosePool, which is the underlying basis for ship, shot, and squad visualizers (different from instanced renderers) now.<br />
** Despite all this, no memory leak was found in any of these pools. They are all working wonderfully efficiently.<br />
<br />
* ExternalizedPool now inherits from CountedPoolBase.<br />
** Same for TimeBasedPoolBase (and thus TimeBasedPool itself).<br />
** And same for BasicPool.<br />
** And holy cow, there's some sort of memory leak with the time-based pools, looks like, based on this. That makes sense, as we recently reworked some of their functionality to fix a bug with them. Apparently we introduced a new bug at the same time.<br />
<br />
* Added a new setting to the debug menu: Show Details Of Time-Based Pools In Escape Menu<br />
** Used for searching for memory leaks or other bad behavior on a certain very high-turnover series of pooled objects. If pool counts keep rising, or other numbers seem off, then we know we have a memory leak or a performance problem.<br />
** Thanks to Puppet Master, RockyBst, Lord Of Nothing, and NRSirLimbo for reports that led to us finding this.<br />
<br />
* Fixed a MAJOR bug from version 2.099 that was leading to a memory leak in general, and performance problems as well (the longer you played the slower it would get).<br />
** Our entire "time based pool" logic was not actually properly processing because we forgot a single line of code, go figure.<br />
<br />
==== Slow Load Or CTD Fix ====<br />
<br />
* Since we started using the asynchronous loading of asset bundle items using unity (the last few weeks), there have been some intermittent problems with certain random items not loading in properly. This is some sort of funky bug in Unity, we're pretty positive.<br />
** We solved that problem a week or so ago by checking the async request's asset property, and if it was not invalid, forcing it to finish loading even though it was stuck.<br />
** On most machines, this was causing a really annoying lag of 10-25 seconds while Unity did whatever it was doing to finish that load. That was really annoying, but only happened the first time you loaded a savegame or quickstart or custom lobby after starting the program, and not every run of the program, and not on all machines.<br />
** More recently, we discovered that the very act of checking the async request's asset property would cause an unrecoverable error deep in unity and an immediate crash to the desktop.<br />
** Killing two birds with one stone, we're no longer checking the async request asset property at all -- thus avoiding the crash -- and instead just do a normal synchronous load when we detect a failed load. This leaves the one async request in limbo kind of forever, but that shouldn't be a problem; if it ever decides to complete, it will see that it was already completed and just do nothing.<br />
** In the meantime, not only should this avoid the crash, but it should also avoid that awful lag spike that happened for those for whom it didn't crash.<br />
** The downside is that on our dev computers we haven't been able to replicate the error at all today, so we can't verify that this 100% works. It should work, and you should see in the arcen debugging log slightly differently that says "PrototypeObject failed async load and so loaded synchronously for [some stuff] (this is not a problem, but is odd)"<br />
*** If you're one of the people who were frequently seeing either the crash, or seeing the older "PrototypeObject fixed and loaded late for [some stuff] (this is not a problem, but is odd)" message, then we'd love to have a confirmation of you seeing the new message and all being well.<br />
** Thanks to Sol and RocketAssistedPuffin for reporting.<br />
<br />
== Version 2.101 Connection Status: Confirmed ==<br />
(Released July 17th, 2020)<br />
<br />
* Carriage returns and newlines are now supported by the "condensed" string format. This will prevent tutorial messages from turning those characters into question marks when they are dumped to the chat log. Note that this will only affect chat log messages logged in this version and on, not past versions.<br />
** Thanks to ParadoxSong for reporting.<br />
<br />
* The left and right click functions of the metal display have been switched to be more natural.<br />
** Thanks to Waladil and Galian Gadris for suggesting.<br />
<br />
* The "Spire Railgun Shop" mod that comes packaged with the game has been updated to use the icons from their new locations, and will no longer error.<br />
<br />
* We've reworked our "Window_PopupScrollingColumnButtonList" a bit to add some new handy features for us.<br />
** In the factions selection window, when you are adding new factions, it now still lets you see factions that you can't add because there is only one per galaxy, but now it shows them in red, doesn't allow you to select them, and explains why in the tooltip.<br />
** In the debug menu in the escape menu in the main game, the change music submenu now shows the current selection in red (with the note that you can't change to it because it is already playing), and it shows all of the options sorted alphabetically except for the current track, which it shows as the first item.<br />
*** Also fixed a bug where the music you selected to play would not actually be the track that played; it was choosing a random other track.<br />
<br />
=== Scourge Updates ===<br />
<br />
* The hovertext for the Scourge "Strength" in the game lobby now tells you what the strength does (more scourge ships/structures, and faster).<br />
<br />
* Add a "Sandbox: Extra Strong Mode" for the scourge<br />
** This is not balanced for regular play, but is intended as a sandbox thing.<br />
** Thanks to Avenger1649 for suggesting<br />
<br />
* Fix a bug where the scourge were periodically suiciding Defensive Fireteams into player positions.<br />
** Thanks to ParadoxSong for the save.<br />
<br />
* On intensities >= 5, the scourge can create cloaked "blockade running builders" if the player has tried to blockade the scourge into a small region of the galaxy<br />
** Thanks to ParadoxSong for the suggestion<br />
<br />
* On intensities >= 6, the scourge is intended to sneak a builder off to another part of the galaxy at the beginning of the game, to make it much harder for the player to blockade them in. This was not working on some map types, including the X type.<br />
** Thanks to ParadoxSong for the save that exposed this problem.<br />
<br />
* These changes should make the scourge much harder to deal with in general, and on the X map type in particular.<br />
<br />
=== Initial Multiplayer Connection ===<br />
<br />
* AllowOtherPlayersToConnect was a setting on the World object in the past, and thus something that was getting saved into savegames and that dictated how a lot of things worked for player connections.<br />
** We've removed this concept, and instead are making it based on the menu choices you make on the main menu.<br />
** We now have a DesiredMultiplayerStatus on ArcenNetworkAuthority, which lets us recall if you wanted to be the client, a host, or just left alone in single player.<br />
<br />
* The basic shells of SteamSocket and GOGSocket have been added to the game. The in no way function yet, but this will allow for them to be built out in the future.<br />
<br />
* The SpecialNetworkType has been moved into ArcenUniversal, and is now copied onto ArcenSocket along with the InternalName of the row that created the socket.<br />
** There is now a list of AllPossibleSockets on the ArcenNetworkAuthority to allow it to swap between sockets as needed, and particularly by type.<br />
<br />
* When you open the multiplayer menu, if you have that enabled, it will now set a default network framework for you based on the status of your game at that time.<br />
** If you are logged into Steamworks, it will set steam as the default network.<br />
** If that didn't work or wasn't true, and you are logged into GOG Galaxy, it will use that as the default network.<br />
** If none of those worked, then it will pick the first "other" network type, which in this case would be Forged.<br />
<br />
* All of the options in the multiplayer menu for hosting a savegame, quickstart, or custom game now properly do those things identically to as if it was the single-player menu, but put you into host mode first.<br />
** The single-player menu puts you into single-player mode, and makes sure that your ArcenSocket is set to NullSocket.<br />
<br />
* When you try to go into one of the client or host multiplayer areas from the multiplayer menu, it now properly activates your most recent chosen network framework, or switches to the first available one that actually can function right now on your system and gives you explanations for why it did that.<br />
** Essentially there is a fair bit of under the hood plumbing now for the frameworks to register themselves with the network authority class and explain about their availability.<br />
<br />
* If you are looking to connect to another machine, then the "connect as client" tooltip now gives you information about what to expect based on your currently-selected framework.<br />
** Are we connecting by IP? How much of a hassle will that be? Is it going to be by selecting a friend on Steam or GOG? Etc.<br />
<br />
* For IP-address-based networking frameworks, either starting a host mode or client mode event now pops up with a message explaining what information you need to give to the client players or get from the host.<br />
** This is not really the preferred networking method unless you're having a LAN party, and the game makes that clear, but it also goes out of its way to address the most likely areas of potential confusion for people who are using these frameworks.<br />
<br />
* Fixed a few bugs, and added a bit more debug logging clarity, so that the host can once again properly open a socket and wait for connection.<br />
** This was working up until a week or so ago, and was simply messed up a bit when we reworked things to support multiple networking frameworks. There were lots of lonely hosts never getting any client requests ever since the game has been in public beta.<br />
<br />
* When you quit out of the multiplayer lobby back to the main menu, it now immediately disconnects you as a host or client, to avoid confusion of lingering connections.<br />
<br />
* When you are in the lobby in multiplayer, the chat sidebar/log now appears again. At the top it says if you are hosting multiplayer or a multiplayer client.<br />
<br />
==== Choosing A Networking Framework ====<br />
<br />
* The main menu has been updated so that the "network" button at the top of the multiplayer menu now updates its text to show the current network.<br />
<br />
* The network button at the top of the multiplayer menu on the main menu is now fully functional. It shows available network frameworks, and gives you explanations for each one, as well as showing unavailable ones in red with an explanation for why they are not available right now. It lets you select from available ones, which then get set as your current socket when you try to host or join a multiplayer game.<br />
<br />
==== What Is My IP Address If I Need It? ====<br />
<br />
* In the networking section of the settings menu, it now has helpful informational displays of your local IP addresses and your public IP address.<br />
** To get your public IP address, we have to make a public call to the url http://checkip.dyndns.org, so this may flag your software firewall to ask permission when you go to the networking tab now.<br />
** Our goal is of course for you to not have to use your direct IP addresses at all in this game, but if you're playing on a LAN then that would be one great example of when you'd want to use this.<br />
** At any rate, each IP address is stored in a textbox that you can copy-paste from, which is very handy when sharing with friends.<br />
** There are also lengthy explanations about what the public IP address is for, and under what circumstances to use it, as well as the local IP addresses, plus special notes for any IPV6 addresses that it detects.<br />
** Getting this data is time-consuming for your computer, so you will notice micro-lags every few seconds while you are on the networking tab, now. This is normal and should not impair your use of the functionality.<br />
<br />
==== Milestone: Successfully Connecting A Client To Host ====<br />
<br />
* The old interface for network connections by IP address is restored and works again. We'll have a different one for connecting via friends list on Steam and GOG, later, but this is the one that gets used for Forge and any other IP-based network frameworks.<br />
<br />
* Connections are now able to be established from one computer to another, for the first time since 2018!<br />
** We added the ability to see how many clients there are connected to a host in the lobby (including the host), so you can see the connection tick up.<br />
** Next up is them actually exchanging enough information to get the client into the lobby and have them see shared world info and be able to chat and all that. But this is milestone one!<br />
<br />
== Version 2.099 Last Rabbit Holes ==<br />
(Released July 15th, 2020)<br />
<br />
* There is now a galaxy setting to grant players Watch vision for 1, 2 or 3 hops from all command stations.<br />
** Thanks to uhamster9 for inspiring this addition.<br />
<br />
=== Fixes And Tweaks ===<br />
<br />
* Improved the way that time-based pools are incremented in time, so that we're never having accidental cases where we miss one.<br />
** Also made it so that they actually work as intended when the world is being cleared (running 16 seconds' worth of time at once). This then keeps the pools smaller if you repeatedly load savegames.<br />
<br />
* On the escape menu, under where it shows you the various numbers of objects in memory, it now shows you the number of galaxy planets and planet links activated and in existence.<br />
** This lets us tell when these have a memory leak, if there ever is one with them.<br />
<br />
* Additionally, galaxy map links are now pooled for the first time ever, as the discarding of them was previously a definite memory leak. Normally this just happened between saves and loads, but it was also possible to happen when nomad planets moved.<br />
<br />
* In addition to the existing time based pools, we now have a new ExternalizedPool.<br />
** This is now used for the galaxy map links, and actually we have stopped the galaxy map planets themselves from using the super-old IArcenGameObjectResourcePoolable and they also now use this.<br />
<br />
* The way that planets for the galaxy map are initialized, and the way that their positions are set, is completely overhauled.<br />
** This is more efficient and properly uses pooling (which never was working properly before, it turns out).<br />
** It also makes the position of planets automatically react to them having moved in the game sim, without having to do anything special.<br />
<br />
* The arcencolors asset bundle has been removed, with its contents simply rolled into arcenui. Ultimately this is a bit faster to load, and saves a bit of disk space and RAM also.<br />
** Also removed the aiw2squads bundle, and the examples bundle.<br />
*** The examples bundle simply has its example content still there, but not in a bundle (it's to help aspiring models modders).<br />
*** The squads bundle is old data that we've not used in forever, and so has just been cleared out. It wasn't huge, but wasn't worth being there.<br />
<br />
* Starting to load a savegame (including for a quickstart or the last settings for a lobby) now writes to the log when you start the process, and at the end of the process writes how long it took.<br />
<br />
* Added a new debug setting: "Write Detailed Savegame Timings"<br />
** When loading a savegame, including the 'last settings' for the lobby or the basis for a quick start, keep track of detailed timing data and write that into the normal debug log so that it's clear what is taking longer and shorter amounts of time.<br />
<br />
* It turns out that chasing "why savegames now take 16 seconds to load sometimes" was a snipe hunt. The serialization sizes logging, when enabled, actually was causing that amount of slowness. With that off, it loads in about 2 seconds.<br />
** The extra instrumentation that we added for the savegame timings is still nice, but ultimately was not a useful bit of time spent at the current moment.<br />
<br />
* Fixed an issue that could happen in the lobby in particular where it could not properly save your prior settings because the fleet ID or speed group ID was lass than zero.<br />
** This pretty much could only happen if you already had another error first.<br />
<br />
* Fixed an exception in SeedNormalEntities that could happen if you rapidly tried to regenerate maps in the lobby in just the wrong way.<br />
<br />
=== Under The Hood Improvements For Icon Modding And RAM Usage ===<br />
<br />
* The last of the icons from the ExternalIcons folder have been moved into the unity project that generates the asset bundles, simply to dispel any potential confusion about the fact that they can be edited directly and that have some change on the game without recompiling asset bundles. This was a frequent modder confusion.<br />
** That said, the ones that were in the Official_1 folder are now in a CentralIconBits, and can now be used in the UI for the first time if we ever want to. That means things like health bars and whatnot could in theory be used in the ui if someone wanted to, whereas before they could only be used on gamespace-level icons.<br />
<br />
* Cleaned out a variety of unused icons from the arcenui asset bundle, and in general tidied up some of our organization of working files versus final files.<br />
** Also standardized the naming of certain things.<br />
<br />
* Broke the "official icon dictionary" out into six dictionaries:<br />
** One is for the "central bits" like health bars and so on, and would be the same for all ships.<br />
** Two are for the overlays, like for saying what kind of starship or guard post something is. There can be more than one of these, and the fact that these are split out like this demonstrate the modding capabilities and how things can combine.<br />
** Three are for ship icons and their borders, and there can be more of these modded in as well. As with the overlays, not only does this demonstrate how such mods would work, but it also has the side benefit of slightly less VRAM usage in a few cases.<br />
<br />
* The way that GUI icons are discovered from the xml based on their gamespace-icon counterparts is completely revised, and is now based on extra information in the ExternalIconDictionary entries.<br />
** This is a lot more flexible, and allows us to load icons from multiple asset bundles and/or multiple files within the same bundle.<br />
<br />
* The naming for finding icons is now much more complicated, in the sense that they don't all come from a single dictionary called "Official."<br />
** So there were over 1100 places in the base game and expansions where we've had to modify to point to the new dictionaries. Any mods would also need to be updated to point to the new places, unless they want to start using their own icons (once we put together a tutorial for that).<br />
<br />
* The external sprite dictionaries have been updated to be able to properly load in in multiple threads.<br />
<br />
* The game is now able to load the xml files for external icons from any mod or expansion, in:<br />
** Expansions/[ExpansionName]/GameData/ExternalIcons/[thefile].xml<br />
** XMLMods/[ModName]/ExternalIcons/[thefile].xml<br />
** XMLMods_NonDistributed/[ModName]/ExternalIcons/[thefile].xml<br />
** It's worth noting that these are xml files that are generated by Texture Packer, not xml that we create.<br />
** These files are referred to in the "ExternalIconDictionaries" xml as something along the lines of xml_path="Official_CentralIconBits.xml"<br />
*** It will then search the main game's folder (/GameData/ExternalIcons/[thefile].xml), then all the expansion folders, then any activated mod folders for a file with that name that was specified.<br />
** This allows for mods to be self-contained when it comes to their icons, and it allows expansions to have their own icons that are not packaged with the main game (not that we have imminent plans to do that).<br />
<br />
* On the icons used in the game, we previously were not using any compression, which made them absolutely massive in size (80mb for the main dictionary).<br />
** This was done in order to preserve quality, but we're also using GIANT icons in order to allow for really super-high-res displays of the future, as well as square ones to allow for ideal mipmaps, etc. So the lack of compression was hugely overkill.<br />
** We're now using compressed textures, which turns what was 80mb into more like 8mb. This has a very direct impact on performance and VRAM usage, so particularly on low-spec machines they will likely run far better.<br />
<br />
* The game now automatically constructs custom "gimbal materials" for the in-gamespace icons, in as many combinations as are needed for the things that it has drawn for you so far.<br />
** The total number of materials always in the past was "one," but it was using a single large dictionary and a lot more VRAM -- and it had a finite amount of space for things. There was a solid chance we were going to run out of space in that one dictionary as part of implementing DLC2. But either way, mods were not possible. The new number right now is 8, looks like.<br />
** Now it may make a handful of materials, depending on how many mods you have installed that have custom icons, and several for the core game and expansions itself. But these are vastly smaller, and while this does increase the number of "draw calls," each material is still mostly instanced together (there are a few mesh differences depending on if there are health bars shown or whatever), but the overall load on the GPU pipeline is lower.<br />
** All of this is automatically handled by the game in as efficient a pattern as possible, and if you're curious how many combination materials it has created, you can see that in the escape menu at the bottom of the list of memory pooling info.<br />
<br />
* A new debug setting, "Log Gimbal Icon Material Creation", has been added:<br />
** When this is on, any 'gimbal icon' material creation events will be logged as to what was created and how long it took to do so.<br />
** Turns out that this uses an immeasurably small amount of time for each material (less than 1ms each), so that's awesome.<br />
<br />
=== Under The Hood Improvements For Mods With Code ===<br />
<br />
* The game is now able to load dlls from mods or expansions, rather than just from the central game folder.<br />
** This works just like the external icon files, and basically looks for the dll in the central game folder first (/GameData/ModdableLogicDLLs/[thefile].dll), and then looks at expansions and then installed mods if it can't find them.<br />
** The paths are:<br />
*** Expansions/[ExpansionName]/GameData/ModdableLogicDLLs/[thefile].dll<br />
** XMLMods/[ModName]/ModdableLogicDLLs/[thefile].dll<br />
** XMLMods_NonDistributed/[ModName]/ModdableLogicDLLs/[thefile].dll<br />
** We really don't have a need to do this with expansions, but the flexibility is nice.<br />
** With mods that are more than just xml, however, this finally lets a modder distribute just a single folder that has everything in it, and not have to worry about putting some things in central game folders.<br />
** This is only partially tested, but should work.<br />
<br />
* It's worth pointing out that expansions and mods already did (and still do) have the capability to load asset bundles (icons, music, sound effects, models, textures, shaders, etc) from their folders.<br />
** The structure for those is /GlobalBundles/ in the main folder for anything not platform-specific, /AssetBundles_Linux/, /AssetBundles_OSX/, or /AssetBundles_Win/ for the things that are.<br />
** Inside the folders for expansions it is: Expansions/[ExpansionName]/[OneOfTheAboveFolders]/<br />
** Inside the folders for mods it is: XMLMods/[ModName]/[OneOfTheAboveFolders]/ or XMLMods_NonDistributed/[ModName]/[OneOfTheAboveFolders]/<br />
** None of this is new, but it's worth mentioning for now.<br />
** This is only partially tested, but should work.<br />
<br />
=== Larger Gamespace Icons And Fixed Galaxy Map Line Offsets ===<br />
<br />
* We also now have a non-billboarding version of our shader for purposes of our icons on the galaxy map.<br />
** Our core shader does on-GPU (read: hyper efficient) billboarding to always fully face the camera. This is very useful in the main view where you are moving around the camera a lot but always want the icons to face you.<br />
** The downside, however, is that with a largely-straight-overhead camera like the galaxy map uses, this billboarding would cause there to be a perspective shift where the icons for planets would get offset from the lines leading between planets no matter what we did. It also caused them to move relative to the text that was next to them.<br />
*** This offsetting of the lines to the planets was one of the largest "visual papercut" issues that we've had for a really long time, and it is finally fixed!<br />
<br />
* The ship icon scale has been adjusted from a default of 1.5 to 2.2, and will affect all prior settings files.<br />
** It's description has also been updated for the personal settings tooltip: For the icons in the main display area (not the sidebar), how large should they draw? Default is 2.2. If you go too large, it can be hard to see things because they overlap too much. If you go too small, they can get extremely blurry because of flipping to a lower mipmap. The larger your screen DPI, the smaller you can go without losing clarity.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Building Multiplayer]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Paradigm_Shift&diff=39856AI War 2:The Paradigm Shift2020-08-10T12:01:08Z<p>Keith.lamothe: /* Version 2.117 */</p>
<hr />
<div>== Known Issues ==<br />
<br />
* Any bugs or requests should go to mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* '''Multiplayer is disabled but coming very soon.''' We first focused on tightening up the single-player loop ([https://forums.arcengames.com/ai-war-ii/from-the-dev-notes-on-where-i'm-at-regarding-multiplayer-right-now-(729)/ more info here]), so thanks for your patience!<br />
<br />
=== Multiplayer Remaining Todo List ===<br />
<br />
==== Short-Term Work ====<br />
<br />
* Client bugs in lobby:<br />
** Chat sent from client shows up twice on host and not at all on client.<br />
** Chat from client shows up on host as "Player 2" rather than the proper name.<br />
** Why are we able to spam randomize messages and have that get away from us?<br />
<br />
* Host and client both don't get updated values for some fields, like main map type, from underlying data.<br />
** Host and client are still exchanging a bunch of no-op commands in the lobby for some unknown reason.<br />
<br />
* Automatically create a new faction for joining human players, maybe?<br />
<br />
* Properly auto-assign colors from players across the network, instead of overriding from local like we do right now.<br />
<br />
* Show when clients are in spectator mode, or what faction they control.<br />
** New section above chat textbox that shows all of the player accounts for all clients and the host, with the proper names in place.<br />
<br />
* Allow clients to assign themselves (or be assigned) to player factions.<br />
** As many clients can share a faction as want to, no problem.<br />
<br />
* Add ability to name factions, separate from the name of the player controlling them (since it can be controlled by several players).<br />
<br />
==== Before Alpha ====<br />
<br />
* Re-code GameCommands to be more efficient and special-purpose. This is probably a job that is a couple of days long, and will potentially lead to widespread bugs for a week or so after it.<br />
<br />
* V1 of the desync detection and correction code, which should probably only take a few days.<br />
<br />
==== Before Beta ====<br />
<br />
* The other features on multiplayer, mainly regarding things like donating fleets between one another, and/or whatever else we come up with that is desirable.<br />
<br />
* Make the desync detection and correction able to correct factions, not just ships.<br />
<br />
* The really big one that remains is making sure that the cross-machine identifiers (PrimaryKeyIDs) are consistent between machines. I don't fully have this figured out yet, but I think that the interim state of it will essentially be that there are occasionally too many messages being passed around because of rolling sync errors. I will probably punt this issue into something I look at during the alpha, so that I can gauge what sort of impact it really has on performance, and where the problems are coming from.<br />
<br />
* Make sure that the lobby fully works as we expect, and various other small UI systems to get multiplayer basically playable. A lot of work went into the lobby in particular in the last few months to make that as close to as ready to go as possible.<br />
<br />
==== Before Full Launch ====<br />
<br />
* Whatever changes we need to make to balance in order to make things "feel right," which will be a matter of working with the multiplayer alpha and beta testers. A lot of things we already did in the past, like making science collection a humanity-wide thing that each player gets a copy of, rather than something people have to do individually (what a pain that was in AIWC). We will have to scale waves like we did in AIWC multiplayer, or in some other fashion. But a lot of the difficulty scaling is inherently handled by AIP being higher when you have to take more planets in multiplayer.<br />
<br />
* If we're seeing network degradation or other issues due to the constant need to sync errors, then that will be to be investigated and improved. But those things are most of what the focus of the alpha/beta will be on.<br />
<br />
== What's this phase all about? ==<br />
<br />
We've been preparing for this for months, tightening up the codebase and getting everything ready as much as possible. Now it's time to start having machines actually talk to one another, and then refine from there. At this point, LiteNetLib, Steam, and GOG Galaxy are all fully working as communication frameworks, but now the game itself needs to fully handle all its logic properly on top of those. You can see at the top of this page what the current todo list is. We expect to be into beta of multiplayer in August. Hopefully the alpha and beta periods are both short due to all the work of the last phase, but we shall see how it shakes out.<br />
<br />
Once we get into a stable beta period for multiplayer, then we'll let the clock run a bit and Chris will work on adding interplanetary weapons to the base game as a free update (that's the last of the kickstarter stretch goals). This phase should wrap up all our kickstarter promises (including a laundry list of other smaller items).<br />
<br />
Badger has already done the bulk of his work for the second expansion, Zenith Onslaught. Chris has done none of his work for that, as yet. Once multiplayer is in the "let it exist in beta and have people bang on it" phase, then Chris can circle in and get his work done for DLC2 along with those base game bits for interplanetary weapons, etc. The full version of multiplayer should launch alongside of DLC2, but we're not sure exactly when. October?<br />
<br />
Either way, multiplayer will be in a solid state that is "beta but just because we want more time with more people testing it" for a month or so while the DLC2 work from Chris's end happens. None of the actual multiplayer stuff is delayed in any fashion for DLC2, it's been the other way around.<br />
<br />
== Version 2.117 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Scourge: fix a bug where player-allied scourge were building tons of Builders but no Fortresses (they were mistakenly thinking they were minor faction allied)<br />
** A number of people on discord noticed the lack of Fortresses<br />
<br />
* Potentially fix a bug where Regenerator Golems were regenerating things while crippled<br />
** Thanks to crawlers for reporting.<br />
<br />
* AI Reserves now will create anti-player zombies.<br />
<br />
* Take another stab at 'adjacent planets watched'. Sigh.<br />
<br />
* Fixed an issue where on computers without GOG Galaxy installed, they would get a harmless-but-annoying error message at game startup.<br />
** Thanks to Badger for reporting.<br />
<br />
* Minor tweak to target list planning; use a case insensitive comparison for zombification.<br />
<br />
* The 'total units' count should now include stacks.<br />
<br />
* Fixed a bug where deathgrip tackle drones had a gun that could shoot immobile targets, greatly confusing their logic. That gun now has the only_targets_mobile_units flag.<br />
** Also fixed a bug where tackle-drone-launchers could give their spawned drones a direct attack order to go after an immobile unit.<br />
** Thanks to tadrinth and RocketAssistedPuffin for the reports leading to these discoveries.<br />
<br />
* Ion Cannon Shots can now:<br />
** Damage both the personal shields and hull of a target in one shot (including killing it outright).<br />
** Kill multiple ships in the same stack in one shot.<br />
** Thanks to GreatYng for pointing out the oddity of Ion Cannons not being able to do these things.<br />
<br />
* AOE shots can now hit any enemy bubble shield overlapping the explosion, rather than only being able to hit the shield if the generator (or something it's protecting) were physically within the explosion.<br />
** Thanks to NRSirLimbo for reporting and RocketAssistedPuffin for the save.<br />
<br />
* Crippled units (i.e. player flagships) can now pass through enemy bubble shields and traverse wormholes covered by them, to avoid being stranded in hostile territory.<br />
** Thanks to tadrinth for reporting and RocketAssistedPuffin for the save.<br />
<br />
=== Multiplayer And Lobby Work ===<br />
<br />
* Heartbeat messages from the client to the server and vice-versa are now omitted from all of the networking logs. They were making things far too cluttered for us to be able to see real information when we had network logging of various detail levels turned on.<br />
<br />
* Some excessive logging on GOG and Steam with regard to their send result statuses has been removed, as again this was clogging up our network logs.<br />
<br />
* The clients now have a secondary FromClientToServer_SignalDoneButHasNoCommands that they can send in place of the FromClientToServer_SendMyNextCommandBatch when they don't have any commands to send (which is most of the time, statistically).<br />
<br />
* GameSpecificNetworking now has a DoPerFrameLogic() method, which lets us efficiently set some per-game settings like we do for the arcen debugging stuff.<br />
<br />
* New setting in the Network section of the settings menu: Network Logging Includes Frame Auths.<br />
** In the lobby and during gameplay, there are messages sent by the network every 100ms or so to keep themselves in sync, and if you have them included they will tend to crowd out the rest of the messages that are sent. So by default these are disabled.<br />
<br />
* New setting in the Network section of the settings menu: Network Logging Includes Command Batches.<br />
** In the lobby and during gameplay, there are messages sent by the network as frequently as every 100ms, but more often some sporadic multiple of that. This is how factions tell everyone what they want their ships to do, and how human players say the same. There's very little that we can say about this in a meaninful way in the networking log level, and again this will tend to crowd out the other messages that happen. So by default these are disabled, but bear in mind that most things that players actually cause to happen are being caused through these batch messages.<br />
<br />
* Found and fixed a general issue where the player accounts were not properly being cleared (and fully resetting the player account IDs) during all cases where a game is loaded into the lobby. At a bare minimum, it was affecting the "open a custom game with my last settings."<br />
** That would have eventually led to out of bounds exceptions, over time, and in general was cluttering up some areas important for multiplayer, but it had not had a negative impact on anyone so far.<br />
<br />
* Fixed a bug that was causing all sorts of craziness on clients in multiplayer in the lobby, with them not getting their galaxies full cleared.<br />
** This was leading to things not being properly in sync between the client and host, like planet names or locations, and things like extra planets or planets in old locations, or noninteractive planets at a whole other scale visually from the real planets. It was quite messy! All of that is now corrected, thankfully.<br />
<br />
* In the lobby, when you change the number of human factions, it now regenerates the map immediately. For other factions it does not bother, never has, because there's nothing different to see at this point in the galaxy.<br />
<br />
* The WorldSetup objects now have a readonly SetupTypeName on themselves, so that we can tell what they are.<br />
** ChangedSinceLastMapGenCall on this same object is now a property, which lets us throw out debugging messages when it is being triggered for whatever reason.<br />
** Something has been causing extra calls to be sent through the map generation pipeline in a redundant fashion that makes everything slower than it needs to be.<br />
<br />
* Removed the ability to send a WorldSetup object via GameCommand, as that is actually highly antithetical to the way we edit that data as of the last year and a half or so.<br />
** We specifically try never to adjust the entire thing, because several players at once could be editing different parts of it and we want those bits to all merge at once.<br />
** Got rid of the SetupOnly_ChangeSetup GameCommand, which was set to use this sort of thing.<br />
** Got rid of the LobbyWorking_HasBeenChangedAndShouldTransmitChanges() method on WorldSetup, which was being used by a loop in the footer to keep clients up to date.<br />
*** The problem with this is that this was far older code, back from perhaps 2017, and it was using an older and more sledgehammer-y approach to try to keep clients and the host in sync. When the lobby was redone in 2019, this became obsolete but was still hanging around and so caused some nontrivial chaos.<br />
** LobbyWorking_HasBeenChanged() has also been removed, as it seemed duplicative and was no longer in use perhaps?<br />
*** Oh goodness, this was actually how we were ever updating the long-term stored version of the game (as opposed to the lobby working copy). This was not a good way to do it, but it was not quite as antiquated as we thought.<br />
<br />
* Fixed a rare nullref exception that could happen in the ships sidebar if you were not properly on an actual planet.<br />
<br />
* Fixed an issue from the last few months (probably) where if you had an error during map generation, it would still try to dump you into the world and then give you tons of other errors. It should have been stopping you and making you fix whatever was wrong.<br />
** This is most common when there are not enough planets for all the factions you have chosen, or a few other rare cases. One such case is just discovered internally, and that's you having a planet starting index that is higher than the number of planets currently in the world.<br />
<br />
* Helper_AssignHumanHomeworld() and the AI variant are now Helper_TryAssignHumanHomeworld() and an AI variant.<br />
** It was already quite possible for these to fail if the player had selected something invalid, such as previously having clicked a planet with an index above 40 and then choosing a map size of 40 planets.<br />
<br />
* The game now auto-assigns humans a planet that is valid if they don't have a valid option, and it does so in a multiplayer-compatible fashion.<br />
** Previously this tried to do the assignment, but did not do so in a way that worked, and even if it had worked it would have only worked for one player.<br />
** This also includes a new sub-gamecommand, StartingIndex_FromAutoAssignInMapgen, which efficiently lets the UI know what is happening without triggering an extra map generation cycle or accidentally overriding a distinct change made by the player.<br />
<br />
* The lobby is now substantially more responsive even in single player, although it seems to be having some extra calls that we are still hunting down.<br />
<br />
== Version 2.116 GOG Networking Done ==<br />
(Released August 6th, 2020)<br />
<br />
* Fix a bug where the 'Watch Extra Hops Worth Of Planets' code was being applied incorrectly<br />
** Thanks to Tynendir for reporting.<br />
<br />
* Fixed a bug where Macrophage Spores don't move to new planets when loading a second save game.<br />
** Thanks to GreatYng for reporting, and StarKelp for fixing.<br />
<br />
=== Milestone: GOG Galaxy Networking Integration Complete! ===<br />
<br />
* The Arcen GOG Wrapper has been majorly updated to get your GOG Galaxy Friends list and the status of them so that you can play multiplayer with them if you want to.<br />
<br />
* When you are in the GOG networking mode, it now shows the list of your friends, just like it does for Steam.<br />
** Basically all of the functionality is identical here, in terms of how it shows those who are online, offline, and in-game, and lets you filter between them, etc.<br />
** The one difference is that in Steam we show the "in this same game" status as a light green (like Steam does), and in the GOG version we show that status in a purple color (to match their color theme).<br />
<br />
* The host computer now is able to open up a lobby for friends when it says "open server."<br />
** This works with all the various NAT punchthrough that GOG Galaxy supports, which we are not entirely clear on the details of. This may be as robust as Steam, or slightly less so, but we honestly have no idea. We'll be interested to hear from you! But either way, it's out of our hands at that point, so it's just information gathering.<br />
** The host is also now properly destroying the lobby when it shuts down, so that others won't try to connect to it and not see it.<br />
<br />
* When clicking the Join menu in GOG, the client now sees lists of their friends with four categories instead of just three.<br />
** Friends who are in-game but not in a lobby right now are showed in a dull light purple. Friends who are in game and have an open lobby show up with a bright purple status.<br />
** You can also cycle through all friends, open lobbies, friends in this game, and online friends.<br />
<br />
* In the listing of connections, for GOG it now shows a button that says "closed" instead of "connect" next to each friend who does not have an open lobby.<br />
** With Steam, someone could be in offline status but still let you connect to them. With GOG, we have to have a lobby ID to connect to, so there's no way to hide that and still even attempt a connection to someone.<br />
<br />
* GOG clients are now able to search for lobbies and correlate those to their friends list, which under the hood is a several-step process.<br />
** We are filtering out any potential rogue lobbies created by bad actors, and correlating them specifically to those owned by your friends.<br />
** It's possible that a friend might jump from the status of being offline (prior to opening the lobby) to showing up as someone you can connect to (when they open the lobby), actually, so potentially this actually does allow for the same sort of quasi-stealth game connections that people can do using Steam.<br />
** That said, since lobbies have to be advertised (to your friends) and we can't have a client just blindly try connecting by userID like in Steam, if you open a lobby and your other friends are actively in GOG looking to join a game of AI War 2, they would see that. Not a big thing, probably, but it's something we've noticed about the nature of these two differing systems.<br />
** You may find yourself having to hit refresh a few times on the client side in GOG, as there is a few seconds of lag before the lobby that the host creates shows up. It seems to be under 4 seconds at the most in current tests.<br />
<br />
* GOG clients can now actually initiate connections to a host lobby. And it works!<br />
** The client is aware of getting into the lobby, although it takes a few seconds.<br />
** The client also does gracefully tell them that they are leaving the lobby, and the GOG servers and the host are both finding out about that properly.<br />
<br />
* The GOG Galaxy networking client is absolutely fully implemented, now!<br />
** A huge amount of the actual send/read logic was able to be pretty much identical to Steam, which was not super far off from what we did with LiteNetLib.<br />
** Pro tip: if any other developer is ever wondering about SendP2P messages on the GOG network, those can take any size, not just stuff under 1200 bytes. It handles all of the fragmentation and recombination extremely well, and just as fast as Steam or other services.<br />
** The initial connection process to a lobby with GOG is a bit slower from North Carolina in the US than what we are seeing to Steam, ranging from 4-6 seconds on the first creation of a lobby on the run of a game to 2 seconds for ones after that. But once the connection is established and brokered, it's easily as responsive for us as Steam.<br />
** For us, this is routing through the internet and some firewalls, so the NAT punchthrough or relay servers or whatever it is in this case seem to be doing their job. We certainly did not mess with any ports.<br />
** Because of the nature of how data is read in from the buffers in GOG, we actually were able to get slightly more efficiency and speed with how we manage the heap compared to Steam or LiteNetLib. It's probably not usually a huge advantage, but it is something that we appreciate the efficiency of.<br />
** Essentially all three of the networking options have their own pros and cons a bit, but are all extremely good. That's a real relief to see, and to see them all working.<br />
** At this point it is now down to making the game networking actually work properly to have the game run, and that's a networking-framework-agnostic process.<br />
*** In a lot of respects it feels like after a large move of house, where all our stuff is now out of the old house and into the new house, but we still have a lot of unpacking and arranging to do. It still feels excellent to be done with the movers and have everything in one location now.<br />
<br />
=== More Multiplayer Work ===<br />
<br />
* Removed some old and unused code that is from the Valley Without Wind versions of multiplayer, checking for disconnections due to inactivity. We are handling that at a lower level, now.<br />
<br />
* Got rid of some old code that was mainly in the older version of our engine pre-Raptor, which was checking for "pthread exceptions" that was never something that could happen in the newer engine that we've replaced it with.<br />
<br />
* The game now has some self-checking code in there for giving us some actual feedback when it decides that it can't run the simulation or show visuals for more than 3 seconds at a time.<br />
** This is a pretty rare case, but it was the "too many changes and the client machine goes to black screen and unresponsive" issue.<br />
** This may have fixed the issue, although there also seemed to be another issue that was related to this.<br />
<br />
* Took out some other unused and old data.<br />
<br />
* The "UseSeed" command in the lobby no longer triggers the gamesettings to be saved. That was not useful, and slowed it down for no good reason.<br />
** It turns out that this was blanking out the settings data in a strange way a lot of the time, and causing the black and white view of the game after you reloaded. It also was apparently directly the cause (somehow) of the infinite black screen on the client after this was triggered.<br />
<br />
* Put in a lot of extra error handling for the steamworks networking in particular in case it has internal exceptions while trying to send something.<br />
<br />
* The cumulative effect of a lot of these changes has basically fixed a ton of issues in the lobby, including:<br />
** Clients not being able to use certain buttons or dropdowns.<br />
** Certain dropdowns not showing the right values to clients.<br />
** The client and the host getting a different view of things after certain buttons or dropdowns were used.<br />
** For a while there I was thinking that I was maybe going to need to make some of the controls for the lobby host-only, but now that's definitely not the case!<br />
<br />
== Version 2.115 Imperial Summons ==<br />
(Released August 4th, 2020)<br />
<br />
* You can now have multiple copies of the Devourer and Zenith Trader in a game<br />
** There's no technical reason for this limitation, and we're encouraging Zenith stuff because of the coming Onslaught<br />
<br />
* Quickstarts are sorted alphabetically again, instead of when the quickstart was created<br />
** Thanks to ArnaudB for the bug report<br />
<br />
* Add some defensive code to the Dyson Sphere<br />
** Thanks to GreatYng for reporting.<br />
<br />
* Fixed a cross-threading nullref exception that could happen during unit unselection (probably due to it dying).<br />
** Thanks to GreatYng for reporting.<br />
<br />
=== Imperial Fleet Summoning Changes ===<br />
<br />
* The AI now generates some weaker bonus exos against miscellaneous player targets (energy producers, MDCs, GCAs, etc), just to keep things exciting.<br />
* Fix a bug where Exos were trickling into their targets instead of moving as groups.<br />
* Start the Exos the moment you finish the hack, instead of some random time < 30 seconds from when the transceiver finishes.<br />
** Blame MasterGeese for these changes<br />
<br />
=== Multiplayer And General Lobby Work ===<br />
<br />
* The "partial map generation" code for giving a preview in the lobby now does even less work, bringing our mapgen times down to 200ms or so on average.<br />
** Because of this, we've also moved the mapgen code during partial-map-generation onto the main thread, to keep things as fast as possible. The full map generation still happens on a dedicated background thread.<br />
<br />
* During the lobby, the way that we handle the execution frame loops is now entirely new, and basically skips over a lot of things that were artificially introducing lag.<br />
** This makes the lobby perform far better in general, and also makes the map generation times absolutely flyyyy compared to what they were before, on single or multiple player maps.<br />
<br />
* This is leading to a number of substantial bugs in the lobby, temporarily, but will make the lobby performance far superior in both singleplayer and multiplayer as we get those resolved.<br />
<br />
* The silent "generate partial map" or "generate full map" complete messages now tells you how long it took.<br />
<br />
* The way that mapgen works, it now has a couple of different contexts that it passes in, so that each one has its own random number generator that is not dependent on the others.<br />
** This lets us ensure that there is consistency between runs of the same code on different machines, and on the detailed version (for play) and the non-detailed version (for viewing in the lobby).<br />
** This is largely solving the issue that we just have started having in this latest round of internal builds with a difference in the final map and the original map.<br />
<br />
* Renamed the Generate() method on map generators to GenerateMapStructureOnly() to be more clear, and also make our code more eaily searchable.<br />
<br />
* Adding a planet to a galaxy no longer requires passing in a context object at all. It now generates its own internal random number generator for its initial variables based on the galaxy map seed, its index, and its original position.<br />
** One of the side effects of this is that now when you change which planet you want to be your starting planet, it will keep the name the same instead of shuffling them around.<br />
** This sort of name-stability has actually never been in this game before, and always was mildly annoying. But in multiplayer lobbies it was going to be even more annoying. "I'll take Adam." "Okay, sure." "Well, I clicked it and now it is called Brian, but that's the one I meant." "Wait, what?"<br />
<br />
* When you are loading a savegame or a quick start as a template into the lobby, it now immediately regenerates the map rather than using the old map, because it's highly likely that the new structure will be different in some fashion.<br />
** This then also solves the problem of clients being different from the host on first connect, probably; that was kind of a compound problem in general.<br />
<br />
* Fixed an order of operations issue that could lead to the occasional "No human players found to seed homeworlds for!" error in the lobby in general, but more recently in multiplayer more frequently.<br />
<br />
* Possibly fixed the issue with later player accounts in multiplayer being renamed incorrectly to "player 2" and such.<br />
** There is still a fair bit of duplicate data happening between data structures, and some lobby/startup code that is blatantly single-player-specific that we need to get sorted out.<br />
<br />
* Dramatically cut down the time it takes to generate planet random seeds, but still with keeping them consistent as you click around the galaxy, by pre-generating the random seeds as the first 300 calls to the "broad random" for the galaxy. Any seeds needed after that will be generated the slow-but-unique way. This means mainly things like nomad planets or other things that are late additions. When just adding a planet or two, it's not so slow as to be a problem.<br />
<br />
* Until now, if you loaded an existing savegame it would automatically put you in control of the first player account, even if your profile name did not match.<br />
** It now continues to do that when you are loading as a single player game, which is enormously helpful for testing and just in general, really. But in multiplayer, it now tells you a list of what the available profiles are, <br />
** In general, if you are loading something as a template, it now clears all the old player account data and loads in your own current name as the new first player account (and further players are already added properly as they connect).<br />
<br />
* Fixed up the way that planets are shown as colored in the lobby galaxy map, so that it will work well with multiplayer and also with the new faster single-player-generated stuff.<br />
<br />
* Improved the logic for it properly setting you to be viewing the new planet you've selected after you make a selection in the lobby. Another thing that did work, but with the revised logic had to be made to work all over again.<br />
** This concludes the fixes to all the known bugs that we are aware of that we've introduced into the lobby today.<br />
<br />
* Fixed another nullref that was happening only on the multiplayer custom games after today's changes.<br />
<br />
== Version 2.113 Dyson Growth ==<br />
(Released August 3rd, 2020)<br />
<br />
* Fix a null reference exception if the game wants to spawn a Relic but you own basically every explored planet<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fix a bug with Dyson Sphere units not marking up<br />
** Thanks to GreatYng for reporting<br />
<br />
* Fix a typo in a Battlestation description<br />
** Thanks to ovalcircle for reporting<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed one oversight that was causing the factions tab chat to not show its chat text properly, unlike map and options in the lobby.<br />
<br />
* As text messages come in inside the lobby, it now scrolls to the bottom of the chat window, as you would expect.<br />
<br />
* The maximum length of chat messages in the lobby is now 1000 characters.<br />
<br />
* GetLocalPlayerFaction() is now GetLocalPlayerFactionOrNull(), to support spectator players.<br />
** Additionally GetFirstPlayerFactionOrNull() has been added, and GetIsFriendlyToLocalFaction() and GetIsHostileToLocalFaction() have been updated to work based on that in order to extend support for spectators even further.<br />
<br />
* Planet visibility is no longer determined from your local faction (since for spectators that might be null, and for all humans it is identical anyhow). It now just uses GetFirstPlayerFactionOrNull(), since that's slightly more effient and supports spectators.<br />
<br />
* Huge areas of the AI have been updated to allow for spectators, generally giving them information that mirrors that of what the first player is seeing (objectives-wise and so on).<br />
** In other areas, it simply updates things to not erorr out when you hit hotkeys, etc.<br />
** Spectators also can't run "cmd" messages from chat; it will just show the text as if it were not a command.<br />
<br />
* GetLocalPlayerFaction() on the planet object has been removed, as that did some risky caching for multiplayer in general, and also was not really compatible with spectators.<br />
<br />
* Fixed a couple of errors where non-sim-but-background-fation-AI code was referring to the local player faction. It now refers to the first player faction.<br />
** Probably this would not have made much difference, unless the game switched hosts partway through or something like that.<br />
<br />
* The chat controls in the lobby now work, though there are some bugs in them still.<br />
<br />
* The correct name for each player faction now shows up for even for players who are in spectator mode.<br />
<br />
* Player factions in spectator mode now see in the lobby chat area that they are in spectator mode.<br />
<br />
* Both the lobby chat and main game chat now support more characters in their text -- basically anything that our "condensed" ascii format is allowed to display.<br />
<br />
== Version 2.112 Steam Networking Complete ==<br />
(Released July 31st, 2020)<br />
<br />
* The description of the Ensnarer Battlestation now explicitly mentions that it can use AI Great-Turrets<br />
** A number of people have reported this as a bug over the years, so hopefully that won't happen anymore<br />
<br />
* All of the Fallen Spire ships, including those in the Spire Railgun Shop optional mod, have had their health and shields doubled, but their firepower halved.<br />
** This should make battles with other mega-units last longer, which feels more appropriate, but keep their "damage over time" the same. <br />
** When these were going toe to toe with the AI Exogalactic War Front units, they seemed to disappear too quickly, making them feel weak. This should keep their effectiveness the same as before, but make the battles take about twice as long with those large ships, so that it doesn't feel like instant evaporation at least.<br />
** The one unit not adjusted is the Spire SuperDreadnought from the Spire Railgun Shop mod. That was already maxed out as a "kills everything and is basically invincible" sort of ship.<br />
** Thanks to a variety of players for weighing in on the feel of these units, and Badger for suggesting this adjustment.<br />
<br />
* Rather than having a slider for the number of planets in the galaxy map view, there is now a dropdown.<br />
** This prevents the intense "regenerate map spam" and lag that was inherent in using a slider, along with making it easier to choose a certain number of planets.<br />
** We have made it so that it only gives you multiples of 2 below 60, multiples of 5 below 100, and multiples of 10 above that. This makes it easier to quickly peruse the range.<br />
** Each entry has some commentary on what it will mean to the feel of the map if you are hovering over it in the dropdown with the number of planets expanded.<br />
** Actually, it wasn't even regenerating the map after you changed the number of planets, which was really confusing! You had to hit regenerate map. Now there is no confusion.<br />
** All of this is easier to use as a player in general, on top of being something that is easier to deal with in multiplayer for sync purposes, too.<br />
<br />
* Fixed a longstanding bug where dropdown selections that were open could persist when leaving the lobby or changing tabs within the lobby.<br />
** Thanks to MaverickPenkenn for reporting.<br />
<br />
=== Milestone: Steam Networking Integration Complete ===<br />
<br />
* Fixed an issue where multiplayer clients disconnecting from a host would try and fail to save the last settings from the lobby. Now it does not save the lobby settings from a session you are just a client of.<br />
<br />
* All of the networking frameworks have had their "send to anyone here and myself" code consolidated into the network authority, so when an interface is partially implemented it won't wind up stalling out waiting on the host.<br />
** Less code duplication is also always good, but it wasn't clear that this was a complete commonality until we got partway into the Steam framework implementation.<br />
<br />
* A new ArcenSteamClientConnection wrapper has been created to keep track of the Steam connection on servers.<br />
** This now properly is registered while the steam connection is alive, and all of the "waiting for player to connect" and "player disconnection" events now happen properly.<br />
** For some reason, we are not getting the "host has accepted you" callbacks on the client end, but that doesn't really matter. As we start actually having our challenge-response data sent via the higher-level networking code, that bit will become irrelevant as it establishes itself within part of one second anyway. It's just a curiosity, or potentially something that is only meant to trigger host-side. Frankly the documentation is sparse in points, both from the Facepunch C# wrapper and the Valve C++ baseline, so this might be working as intended.<br />
<br />
* Substantial progress on the Steam network transmission of data. Still not quite seeing it register yet, but we're getting close.<br />
<br />
* The full suite of network logging has been integrated into our steam networking wrapper, now.<br />
<br />
* When a Steam host shuts down the connection, the steam client computers now definitely notice and react to that. The inverse was already working from the start.<br />
<br />
* Figured out the missing information on how to get data from the facepunch steamworks wrapper (call Recieve() to trigger the other events), and are sticking with the derived classes methods rather than the interface method, since for relay connections it seems like the interface method is not fully implemented.<br />
** With this in place, we're now getting messages on the client machine, and they are properly decoded! The host for some reason still doesn't get messages back, but this is progress.<br />
<br />
* Fixed a bug in our connection status window code that was causing it to stop showing a timer on connection stages after the earliest ones.<br />
** With LiteNetLib, that all flashes past so fast we could not tell that was even happening. With Steam currently stalling out with the host not getting messages, it became apparent.<br />
<br />
* Previously it was possible for our socket mode to be off, and silently ignoring messages we were sending.<br />
** This was initially done to make it so that any lingering messages that would try to be sent after a disconnect would not cause visible errors, but in this case we've wound up with the socket state being off on the steam networking, despite it being active, and this thus resulting in client messages being composed but not actually sent. That was not obvious because of the lack of error messages.<br />
<br />
* Figured out a stupid mistake in our own code, indeed a single line of code, which was preventing the client from sending data properly back to the host.<br />
** Steam networking is now fully functional in terms of sending data back and forth. There is some sort of issue with the world data not getting across properly, but we have to now verify whether that's limited to Steam or also happens on LiteNetLib.<br />
<br />
* Added in a substantial amount of extra error tracking in our univeral and game-specific network message handlers.<br />
** This helps us to find out where errors actually are.<br />
** In the case of steam, right now we are getting some exceptions when the host tries to tell the client what their player profile number is.<br />
<br />
* Fixed a simple typo that was having us send a junk message via both frameworks to the client when they first connected.<br />
** In both cases, this led to the galaxy map not showing up properly on the very first world connect. But in the case of Steam networking, it also led to an exception because the byte array was too small.<br />
** This extra smallness is actually more accurate, and basically it was only not erroring with LiteNetLib because the buffer array was larger than needed because they are pooled.<br />
** This is an interesting difference between these two networking frameworks, but neither one is particularly "wrong. But it does make Steam slightly more sensitive to certain errors in a way that is useful, because it's an error in both cases that manifests in other places.<br />
** Anyhow, this seems to argue for us to internally use Steam as our main testing framework, additionally because that means we are round-tripping out through the internet and Valve's servers and back rather than having the speed of a LAN.<br />
** This also means that the Steam networking library is fully completely integrated, which is a very major milestone! Now it's all game logic, regardless of what is going on with the two networks.<br />
** Also worth noting that it's under 3 seconds to connect a client to the lobby in our test case, using the Steam relay servers, etc. On the LAN it is under one second, so that's pretty killer.<br />
<br />
=== More Multiplayer Work For All Frameworks ===<br />
<br />
* "Planet GalaxyMapVisuals in CenterGalaxyViewOnPlanet null!" will no longer happen. It was a thing relating to trying to center on a planet slightly too early, and the population of the galaxy map still having failed.<br />
** We are now bypassing that and using the raw internal transform offsets to calculate the correct camera position.<br />
<br />
* In response to the initial challenge from the host, the client no longer just sends their profile name. They now also send their list of installed and enabled expansions and mods.<br />
** The host then compares that list to its own installed and enabled expansions and mods. If there are differences, then it rejects the client connection and does a popup on the client and a chat message on the host side explaining why.<br />
** It also notes in there that both parties can enable or disable expansions or mods in the Game tab of the Settings menu to get things to match.<br />
** Please note that, yes, in some cases there will be mods that are enabled but which "wouldn't do any harm" because their functionality won't be triggered in the campaign in question. We don't have any way of knowing that, so we have to err on the side of caution.<br />
** When it comes to expansions, there are none that "wouldn't do any harm," because all of them add some ships and features to the game in general that all players need to have. For instance, the first expansion adds a bunch of new turret options that are available to choose from in any game you play with that expansion on.<br />
** At any rate, we've gone out of our way to make it easy for people to disable expansions and mods so that they can play with friends who don't have those same expansions or mods. The last thing we want is for the only solution to this sort of thing to be someone reaching for their wallet or having to faff about in the filesystem.<br />
<br />
* Low-level chat messages that are sent to everyone from the host are also now sent to the host themselves. Previously, they could not see messages of this sort, turns out.<br />
<br />
== Version 2.111 Initial Steam Connection ==<br />
(Released July 30th, 2020)<br />
<br />
* Fix a null reference exception in my new spire relic code<br />
** Thanks to Chuito12 for reporting<br />
<br />
* Nanocaust: Make the AI wait a bit longer before unleashing Exogalactic units on it. Remove some deprecated code<br />
** Also the exogalactic units won't hang around to kill the entire nanocaust, so there's a chance it can recover.<br />
<br />
=== Milestone: Initial Steam Networking Connection Between Client and Host ===<br />
<br />
* The Steam versions of the game now initialize relay access on startup, to make it so that the first connection using Valve's relay network will be extra fast.<br />
** If you wind up not playing any multiplayer, this is absolutely harmless. If suddenly it is flagging your firewall on game start on the Steam versions of the game, though, that might be why.<br />
<br />
* The basic connection through Steam's newer networking sockets connection is now in place, using their relay servers as recommended. This is the approach that absolutely bypasses NAT traversal and anything else of that sort, and in fact hides your IP address from anyone you are playing with. The claim is that their backbone is faster in most cases than the general internet one.<br />
** If need be, we can make a "Steam over IP" version that allows for their networking sockets stuff to run more directly over UDP, and only fall back to their relay servers if there is a problem. This would be a lot like LiteNetLib, except with much better NAT punchthrough making use of ICE and STUN and all those things.<br />
** For now we are sticking with Valve's recommended practices.<br />
** Beyond just getting the initial connection up, we don't have anything there yet, but on the server we can see the Steam username of the client who requested to connect and who forged the connection.<br />
<br />
== Version 2.110 AI Exogalactic War Front ==<br />
(Released July 29th, 2020)<br />
<br />
* Spire Relics now have additional text in their descriptions explaining either A. whether the relic is on route to a particular planet , or B. that this relic must build on this planet<br />
** Thanks to Lord of Nothing for suggesting<br />
<br />
* All of the units that were previously named "Galactic War [name]" are now just named "[name]"<br />
** However, in the tooltips for them, their faction should now say "AI Exogalactic War Front" in whatever the hunter fleet's color is, rather than saying the AI Hunter Fleet.<br />
** This lets us keep the shorter name, while making their sub-group and source a lot more clear.<br />
** This does need testing, so please let us know if it doesn't show up correctly somewhere. This is using a new xml feature called "override_faction_name", which lets us use a different faction name for some units in a faction, but without actually creating a new faction.<br />
** Thanks to Ovalcircle for leading the discussion that led to this.<br />
<br />
* Spending a ton of science will now increase a player faction's Overall Power Level very slightly.<br />
<br />
* Remove some inaccurate description text for the Rorqual Hejira<br />
** Thanks to GreatYng for reporting<br />
<br />
=== UI for Steam Networking ===<br />
<br />
* Added the new ArcenNetworkConnectionOption class, which we are using as a basis for things like lists of your Steam friends that you can connect to.<br />
** On the network authority, there is a new PotentialServerOptions, which is used to list out such things. This can be used for anything that we need to list a variety of to connect to, not just friends in Steam and GOG. This is in contrast to the "type in an IP" method that we use with LiteNetLib.<br />
<br />
* Started building out the Steam networking framework layer, currently based on the ISteamNetworking implementation that most games use.<br />
** We MAY opt to also start supporting the newer ISteamNetworkingSockets framework that Valve has rolled out more recently, but that would be an alternative networking framework in AI War 2 that you could choose between.<br />
** The fundamental premise of those two Steam networking setups is really different, and while the newer one would in some ways be easier for us to implement, it seems a lot less familiar to the average Steam player, involves IP addresses potentially, and is maybe less battle-tested, but who are we to say.<br />
<br />
* Previously it was still possible to have some exceptions happen silently in the Engine_Universal main loop, and they would log to disk but not show up in your face. Fixed.<br />
** It was also possible to get some silent errors when clicking buttons and other UI elements, turns out. This made the application just seem not to respond to the click, but now it properly shows the error if there was one.<br />
** Also it was possible for certain errors in the UI call stack to prevent the display of the error window.<br />
<br />
* When you try to connect to an IP address, or you change your active networking framework, the game settings now get saved immediately so that that is remembered even if you shut down the program right away.<br />
<br />
* There is now a screen that will be used for Steam and GOG connections, from the client side, and in Steam it now:<br />
** Shows a list of all your Steam friends, with ones that are in AI War 2 at the top, then ones that are online, and then the rest below that.<br />
** Lets you sort to just ones that are in AI War 2 or online.<br />
** Lets you refresh the list to check for updated statuses.<br />
** There is a connect button for each friend, but that is not functional yet. Just haven't gotten to that part yet.<br />
<br />
== Version 2.108 Galactic War Units And The Exostrike ==<br />
(Released July 28th, 2020)<br />
<br />
* Completely rework the way Exogalatic strikeforce leaders work, to allow per-AI-Type customization. No functional change right now, but intended to support some new AI types for DLC2<br />
<br />
* HandleHelperJournals() has been split out into a bunch of sub-methods, since they can error in rare cases and it would be nice to know where the error generally is.<br />
<br />
* Fixed an issue where we were not letting negative risk analyzer data be saved properly. Turns out that has a good reason to be negative at times.<br />
** Thanks to Badger for reporting.<br />
<br />
* Added a new UI feature that is a throwback to some of the functionality we had in various past games: the "center screen message"<br />
** This is basically a message that can show up near the top center of the screen, and stay there for a bit or for as long as needed.<br />
** It won't block the mouse, and it is over everything except modal popups and tooltips.<br />
** This isn't something we would want to use all THAT often, but for cases of things like "hey the server isn't responding, why is MP stalled," this is exactly the sort of UI functionality we need.<br />
<br />
* Fixed a harmless bug where, for the last few months since we've been doing multithreaded loading of camera xml files, the "PrivateVisExtensions" assembly would sometimes have annoying but unimportant errors appear on startup.<br />
** Essentially, it turns out that loading classes from a custom dll is not entirely threadsafe. Go figure. The fix for that is simple, and it doesn't slow things down, but now we know.<br />
** Thanks to GreatYng for the first report of this we'd had outside of ourselves running into it.<br />
<br />
* Fix a bug where macrophage achievements weren't triggering if you killed all the Telia<br />
** Thanks to GreatYng for reporting and StarKelp for the fix.<br />
<br />
* The in-game credits have been updated to include two more individuals who are key DLC2 testers.<br />
<br />
* Added new GetWasWorldStartedOnGameVersionOlderThan() and GetWasWorldStartedOnGameVersionAtLeastThisVersionOrNewer() to world, which let's people find out in a really efficient way if a world was started before some certain point.<br />
** We can't be accurate past a month or so ago, because we were not tracking the original savegame version back then. But it's useful for looking at saves older than the more recent ones and altering them if need be.<br />
** This is now used specifically to fix this macrophage disabled stuff only on older savegames than 2.108.<br />
<br />
* Fix a mispelling in the Mesopotamian planet names<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fix a typo, "reciever" to "receiver"<br />
** Thanks to Apthorpe for reporting<br />
<br />
=== UI Changes ===<br />
<br />
* In the Load Menu, campaigns are now sorted by 'most recent save game in that campaign' rather than alphabetically<br />
** Thanks to Puppet Master for the suggestion.<br />
<br />
* The default sort for the load menu is now by date.<br />
<br />
* Rename 'Exogalactic Strikeforce' to 'Exostrike' and 'Extragalactic War Units' to 'Galactic War Units' in UI. Having "ExoGalactic" and "ExtraGalactic" was a perennial source of confusion<br />
** Note that internally the code uses the old names for the moment<br />
** Thanks to a discord conversation involving relmz32, Oryutzen and NRSirLimbo<br />
<br />
=== Dyson Sphere Buffs ===<br />
<br />
* The Dyson Sphere's ships should now really level up after the hack<br />
** Thanks to GreatYng and zeusalmighty for the bug reports<br />
<br />
* Dyson Sphere hack descriptions now say "This hack will make the Dyson Sphere very unhappy with you for a while" to clarify the behaviour.<br />
** Thanks to Apthorpe for suggesting<br />
<br />
* The Dyson Sphere now gets additional income (ie it can build ships faster) that scales with AIP. As AIP goes up the Dyson and Antagonized Dyson get stronger<br />
<br />
=== Multiplayer Work ===<br />
<br />
* SendMessageToAllClients() has been split into two methods: SendMessageToAllClientsWhoAreFullyConnected() and SendMessageToAllClientsRegardlessOfConnectionStatus().<br />
** We really don't need heartbeats and frame auths and so on going to clients who are still connecting in.<br />
<br />
* Also added a GetCountOfClientsWhoAreFullyConnected() that lets us know if there are any clients who actually have gotten all the way in (and thus we should send world data)/<br />
** And added GetCountOfClientsNeedingWorldData() that lets us know we should make everybody wait for a bit until those people connect in. Otherwise everyone won't be on the same page.<br />
<br />
* Added a OnServer_IsAtPausedSpotWhereGameWorldCanBeSent() that lets us wait for a break in things happening (usually only 400ms or so at most) to then have a clean slate to send a world state to a connecting client without that state changing between them being sent the state and them getting it.<br />
** Along with this, if GetCountOfClientsNeedingWorldData() is more than zero, then it now pauses authorizing more simulation frames until the world is fully taken in by the new clients who are joining.<br />
<br />
* When a multiplayer game is stalled out for some reason, it now uses that central screen message to let you know what is happening, and if possible, why it is happening.<br />
** The game itself will have stopped having any action at this point, though you can still scroll around and look at things and give orders. But nothing is proceeding on the enemy side, so you don't have to worry about it being in your way.<br />
** When a client is first connecting into the lobby, it also uses this, to basically get the host and any other existing players to wait a moment before making more changes, etc.<br />
** On the host, this is already set up to give some context about the exchange under the hood that is happening with the new client.<br />
<br />
=== Multiplayer Transition To LiteNetLib ===<br />
<br />
* Okay then... we are switching network libraries when it comes to our non-Steam/non-GOG transport layer. Instead of FORGE Remastered, we'll be using LiteNetLib.<br />
** FORGE has grown a lot over the years, but the version we were using was from 2018...ish. We looked into updating our version of the code, but were not thrilled with how complicated it was going to be. Since we had working AI War 2 multiplayer on FORGE at least as recently as 2017 (in an alpha state), staying with the existing code made a certain amount of sense.<br />
** However, we started running into really long delays with something as simple as sending 10 bytes to say what our profile name was. This was taking upwards of 14-18 seconds between two machines sitting three inches apart and both within five feet of a powerful wifi router. We verified that the polling was happening hundreds of times per second, and that massive amounts of data was being sent via sockets. But in the internals of the old version of FORGE we have, it was taking it quite a very long time to assemble that into a full message, despite all the churn of hundreds and hundreds of data reads that were apparently all just empty headers and then noise. <br />
** Time for a new approach. It's worth noting that the current version of FORGE still lists all the most internal classes as "in development and lots of dire warnings," so that was another reason for switching up frameworks.<br />
** We chose LiteNetLib at this point, and within 40 minutes of dropping that in, we had the first successful connection between the machines on using this framework for the game. It was just a simple "hello client" message in basic unicode, but it arrived extremely instantly, as expected.<br />
** Next steps are going to be doing some cybernetic implants on LiteNetLib, rather like what we did on FORGE, to make sure that it integrates with AI War 2 properly and our network authority, and that it communicates as directly as possible with our own pre-formatted bitstreams. Most of that should be part of one day of work, at this point. We shall see. Then it's back to the actual larger "build out the multiplayer part of the game" work, but minus the lag that was tripping us up the last day or two.<br />
** It's also worth noting that, with this switch, we had to unfortunately also lose the awesome NAT punchthrough work that Doug Fields did for us with the FORGE interface back in 2018, but LiteNetLib has some of that of its own. And hopefully most people use Steam or GOG if they are behind firewalls of any complexity (since relay servers then become required, and that's where the free relay servers are).<br />
<br />
* NetPeer in LiteNet now inherits from ArcenNetworkClientConnection.<br />
** For now, we are using our own methods to generate the ConnectionIndex, rather than using the existing peer.Id. There may be some numeric conflicts, otherwise, but we can also change this later.<br />
** We also are initializing everything on the Arcen-integration side, keeping our own clientsOfServer list for quick access, and then calling the game-layer RespondToNewConnectionAcceptedByTransportLayer() that will kick things off.<br />
<br />
* PrepareMessageForSending() has become WriteLogOfSend().<br />
<br />
* Added a new SendToSpecificPeer() method onto LiteNet's NetManager. Not sure why that variant didn't seem to exist.<br />
<br />
* Wiring back up our LitNetSocket wrapper class:<br />
** SendMessageToHost_Inner() done.<br />
** SendMessageToAllClientsRegardlessOfConnectionStatus_Inner() done.<br />
** SendMessageToAllClientsWhoAreFullyConnected_Inner() done, using the new SendToSpecificPeer() method.<br />
** SendMessageToSpecificClient_Inner() done, using our own ConnectionIndices for now.<br />
<br />
* Booyah! Exclamatory phrases are not the norm in our patch notes, but this is an exciting moment. LitNetLib is sending messages, and doing so with speed and accuracy and a minimum of fuss. The username travels three inches in well under a second, as should be expected.<br />
** At first, I was getting some very strange data sent across, and I figured that this was going to be an endianness problem, but actually all of the .NET/Mono data is the same endianness from the look of things. Which makes sense, given that otherwise savegames would not work from computer to computer.<br />
** After spending the night with that rattling around in my brain, this morning I decided to definitely do some profiling of the data before I started messing with the #ifdefs.<br />
** First thing I noticed was that I'd chosen to use the RawData byte array, and immediately next thought was "I better check there's not a network header in there." Turns out, yes, there's a UserDataOffset. The first four bytes are not my data, and so of course it would give gibberish as if the endianness was wrong. Just starting my reads from the proper offset makes everything work instantly.<br />
** All of this is from a Mac to a Windows machine at the moment, but my I'll be testing three-way with my linux machine as well. Right now laptop is sitting closed under the Mac.<br />
<br />
* LiteNet logging now gets funneled to our own main logging pipeline.<br />
<br />
=== Continued Multiplayer Work ===<br />
<br />
* A fair bit of work has been done to make intentional disconnections from the client or server tell the other side more quickly.<br />
** This should help to avoid some disconnect-and-reconnect issues that are otherwise inevitable, and it just makes things feel more responsive.<br />
<br />
* Additionally, when you use the in-game controls to exit the program as a while, it now takes one extra half second to lets Steamworks and GOG actually do their exit logic properly, rather than rushing out the door.<br />
** This should hopefully help with any cases of the game still being thought to be running on Steam in particular after it closed.<br />
<br />
* When you exit the game, while it is doing its brief exiting stuff it now throws up a center-screen "exiting.." message.<br />
<br />
* Got rid of OnServer_WaitingOnConnectionIndices, as this was basically a duplicate of something we are doing better and more cleanly a new way, now.<br />
<br />
* UpdateDebugText() and all of its related variables have been removed.<br />
** This was the sort of thing that, in all of our prior games before Raptor and moving to 3D, you could hit F3 and get output information from. But it has never really been used in AI War 2 properly.<br />
<br />
* Got rid of WorldTransmissionMessageType, as it was needlessly complicated.<br />
** This was essentially us breaking the world transmission data into multiple parts and then sending those in parts. Historically there were two reasons for this:<br />
*** Back in AI War 1, we were using the Lidgren network library, and even though it was trying to work around the MTU (typicaly 1200 bytes) of various networks players might be on (or passing data through indirectly), it was often having bottlenecks and slowdowns with how it sent fragmented messages through the network card. Our theory at the time was that it was flooding the buffers of the NIC, rather than giving it data at a more reasonable pace. Network cards have grown enormously in the last 11 years, as have the OSes that control them, so that's not really a concern now. All of the newer network libraries that we would be using to send data should be able to handle 1MB of data without incident.<br />
*** Secondarily, for AI War 1 and for the A Valley Without Wind games, we were sending enough world data that you could see a noticeable wait time, and by handling this above the network transmission layer we could give you visual feedback on transmission progress (even though the whole act of that actually slowed it down). Eleven years later, we have networks that are vastly faster basically everywhere in the world, and the world savegames for AI War 2 are much more efficiently packed than AI War 1 was. So sending a file like this really is like a midsize image on any website you visit, now. Not really a progress bar sort of situation, especially if the progress bar itself causes slowdown.<br />
<br />
* ConnectionStage has moved from being just a UI-only element to being ClientConnectionStage as part of the ArcenNetworkAuthority, so that clients can better keep track of their connection status. Usually this is less than a second or so, anyhow, but we still need to keep track of it in case something goes wrong in particular.<br />
<br />
* The host now properly sends the world data to the client, for the first time in three years or so.<br />
** The client is having some trouble understanding it thus far, so now is a good time to build in error handling (it was just silently failing, until now).<br />
<br />
* Added a new SendLowLevelChatMessage() method on the network authority, which is used mainly for sending back and forth arbitrary messages from clients and the host to explain about the status of things. These can be echoed to all other clients or not, as the case warrants.<br />
<br />
* If the client fails to load a world sent by the host, then the host and any other clients all get sent a low-level chat message about that, the client gets kicked out (since they never made it fully in), and the client gets a nice error message on their screen and in the log.<br />
** This way we can solve whatever the problem is, and nobody is left sitting wondering why things are slow (when in fact they errored).<br />
<br />
* When you are loading a quick start, or loading a savegame as a template into the lobby, it now clears the chat log. This was definitely not information that needed to persist from a prior game to the new lobby!<br />
** These sorts of chat log messages, which are kept over the long term for the game (up to a limit), are no longer shown in the lobby at all.<br />
** Instead, we now are using LocalMomentaryDisplayLog, which is something that doesn't get sent with savegames, and which normally is just "stuff showing on your sidebar during the game for a little while."<br />
*** This is perfect for the lobby, and in the lobby we are just showing the last 100 of these, and not clearing them until you reach the game itself.<br />
*** These things are actually shown by timestamp, not by gamesecond (which isn't ticking yet), so that's just extra perfect for a lot of reasons.<br />
*** This also leads to privacy for people who were talking before someone new joined -- you only see messages that were sent after you were connecting -- although that's not hugely important in most cases.<br />
<br />
* Got rid of ArcenUI.Instance.CurrentNowUTC, since that was putting all of our lobby chat messages in the British time zone. We didn't use this anywhere else, and it was puzzling that we used it at all.<br />
<br />
* NatPunchEnabled is now true on the server and client for LiteNetLib. We'll see how well that works.<br />
<br />
* Added a new debug setting to the network section of the settings menu: Write Network World Serialization Logs<br />
** When sending a game world across the network to a client, write NetworkWorldSerialization.txt, and when getting one from a host write NetworkWorldDeserialization.txt -- both in the PlayerData folder (but on two different computers). The only real reason to turn this on is if a client is unable to join a host and gets an exception; this lets us do a diff of the two files and figure out what is different about what the host is trying to send and the client is trying to read.<br />
** Note these logs are often huge, sometimes hudreads of MB each. Compressing them into a zip or tarball and then uploading them somewhere we can download them to find out what is happening is a good idea. Hopefully as a player you will never need this, but this is basically a way for us to test the network world sync process, which otherwise can be incredibly opaque and take a lot of time to hunt down.<br />
<br />
* Used our new network world logging capabilities to fix an error in network world transfer where it needed to send the game version in a different format.<br />
** The client now looks at the game version very early on, and if it does not match it sends a message back to the host telling the host what the problem was.<br />
** Basically: If the client can't join because of a version mismatch, that gets shown and things happen properly.<br />
<br />
=== Milestone: World Sync Between Host And Client ===<br />
<br />
* Milestone! Initial transmission of the world data from the client to the host now works properly.<br />
<br />
* When a local player account is missing the following methods no longer throw errors:<br />
** SwitchViewToPlanet<br />
** OnClient_SendClientBatchToServer (actually still errors, because it's useful to have it do so).<br />
<br />
* PlayerAccount is now more strongly linked to the new ArcenNetworkClientConnection, and its connected status is now a method called OnServer_GetIsConnected().<br />
** There is some duplication of concepts here, but when you factor in the way that things like viewing of planets are synced in multiplayer, this is a worthwhile separation of concepts.<br />
<br />
* If two players with the same profile name try to connect to a game at the same time, it will now prevent the second one from joining and tell everyone why.<br />
** Bear in mind that these are AI War 2 profile names, not Steam or GOG or what have you. Everyone needs to have a unique AI War 2 profile name in the current game, but they can change up their names however they want and global uniqueness doesn't matter beyond the current game you are in.<br />
<br />
* In situations where a player 3 joins after player 2, and it's the first time player 3 has been in this particular world, player 2 now gets told by the host about player 3.<br />
** And of course all the more complicated permutations of this. It's the new FromServerToClient_SendNewPlayerProfile.<br />
** This is needed specifically so that all clients can know which planets are being viewed by other players, so that which planets are "tier 1" processing is honored and identical everywhere. Among other later needs.<br />
<br />
* Clients connecting to a host are now properly told what playeraccount they have been put in charge of.<br />
** This makes PlayerAccount.Local not null on their local machine, and lets them give orders and whatnot from their spot there.<br />
<br />
* Errors that happen during the main sim step will now be more visible in multiplayer contexts.<br />
<br />
=== Milestone: Initial Sharing Of Lobby Between Host And Client ===<br />
<br />
* Milestone: Clients are now able to load into the lobby, and they and the host both see most (but not all) changes that are made.<br />
** Clients are not yet assigned to any faction (making them just spectator-mode for now), and there are some specific bugs with certain data that isn't synced correctly just yet.<br />
<br />
* Map generation can no longer happen in the lobby except on the host.<br />
** We have no real way to be sure that map generation is deterministic between machines, so we need to do a world sync each time anyway.<br />
<br />
* When the map is regenerated on the host during a multiplayer lobby, it recreates all of the playeraccounts needed for each of the player connections that exist.<br />
<br />
* And when the map is regenerated on the host during a multiplayer lobby, it now re-syncs the entire world data to all of the clients so everyone is up to date.<br />
** This also solves the "authorized through frame number" issue, which was really just a smaller symptom of this larger issue.<br />
<br />
* Both the client and host are now verified able to add, remove, and edit factions and have that properly affect the world.<br />
<br />
* Window_ServerMultiplayerConnectionStatus has been removed, as we no longer use that. We've been using the new center-screen messages instead, or the chat sidebar, as needed.<br />
<br />
* In multiplayer games, the save button is now disabled and says: Cannot Save Game As Client<br />
** If you click it, it gives you this message: Unfortunately, only the host can save games in multiplayer. To save on bandwidth as well as on processing power between your machines, there is a LOT that is calculated only on the host machine. If you were to save a copy of the game on your client's end, loading it would lead to a lot of wrong and missing data.<br />
<br />
* Additionally, autosave is now something that does not happen on multiplayer clients. Just the host.<br />
<br />
* The header of the load quickstart and load saved game menus now make it clear if you are loading for multiplayer or single-player.<br />
** Also on these screens is a new "[Multiplayer Questions?]" bit of text up at the top that appears only on the multiplayer version, and which has some helpful mouseover text.<br />
<br />
* Rather than having an annoying explanatory popup to click through every time you open the various ways of hosting or joining a multiplayer game, it now puts that extra information under the "[Multiplayer Questions?]" section up at the top of those screens.<br />
<br />
* At the top of the lobby screen, it now says if you are joining as a client or a host to a multiplayer lobby, as well as having that same "[Multiplayer Questions?]" bit.<br />
** This includes the following new text in its mouseover text: Except for the host, all players are spectators by default. There is only one human player faction by default. Any number of players can share control of a single faction, or each player can have their own faction that they control on their own. You can mix and match as you like.<br />
<br />
* The connect by IP window has been completely reworked visually so that it matches the rest of the game and doesn't look like the old temporary style that we were using in 2017 (because that's what it was).<br />
** This also lets us put extra information on that screen to help anyone who might be confused.<br />
<br />
* The client connections status window is now patterned as a continuation of the connect by IP window, and it's nice and graceful and in the new style.<br />
<br />
== Version 2.106 Immortals and Unresponsiveness ==<br />
(Released July 23rd, 2020)<br />
<br />
=== Bugfixes ===<br />
<br />
* Put in field names for the risk analyzers saving, so if they have trouble serializing we can see which field it was.<br />
** Also then made it so that the total increase and net increase both are automatically clamped to 0 instead of a negative number so that they won't throw an exception when trying to save.<br />
** Thanks to GreatYng for reporting.<br />
<br />
* When stacks are split, they now have their "time on planet" and "time alive" set to be whatever the original stack was. Same with the amount of cloaking points they have lost, and the number of cloaking points they have left.<br />
** This prevents a variety of abilities from triggering, including the "invincible if only on this planet for x seconds."<br />
** We also made it so that dying to remains does not reset the "time have been alive or on this planet" counter, for similar reasons.<br />
** This keeps the vanguard hydra heads from being insanely impossible to kill, among other issues that are probably pretty much all in the player's favor to have resolved.<br />
** Thanks to crawlers for reporting.<br />
<br />
* Added some extra debugging information for the status of gamecommands that are queued, to see if there are clogs happening. At this point, we can't replicate any evidence of that, though we have some reports from multiple players of it. So maybe the problem either takes a bit to manifest, or is in a different area of the code than we expected.<br />
<br />
* AIP should no longer increase when things die to remains if you have the "ships of X type die to remains instead of dying entirely" galaxy map option on.<br />
** This is untested, but should work.<br />
** Thanks to crawlers for suggesting.<br />
<br />
* Found and fixed the core typo from a few builds back where remains that were being rebuilt were being set to have the cost of the rebuilder, not themselves. This was previously massively overcharging players for building most things, but then once we put on a band-aid to fix that, it started giving it to them for basically free.<br />
** Thanks to Lord Of Nothing for the report and save.<br />
<br />
* Fixed a bug from the last few versions that nobody seemed to notice, where the galaxy map was not centering on planets properly when you first went into the game after loading a savegame. This had to do with when we were calculating the position of the planet, and that not always being calculated before we tried to center on it.<br />
<br />
* Fixed a bug where it was possible that a client would send more commands to the host than it would tell the host about, and thus the host would not know to read the extra ones (or vice-versa). In single-player you are both the host and client, so it still applies.<br />
** This was happening because of multiple threads adding to the queues of commands at the same time that the queue was being drawn down.<br />
** This was actually something that probably could have happened since more or less forever, but it was substantially more likely in the last few versions because of some efficiency improvements we made.<br />
** Additionally, we have now switched to using a ConcurrentQueue for each of those collections, rather than a regular Queue. This should also help with potential contention.<br />
** There was also the possibility that we might not be able to get enough commands out of the list for some reason to then send more, and we are also now guarding against that.<br />
** Previously, this problem was manifesting as orders not being carried out when you gave them, sometimes or all the time. And things like "save my game" and "pause or unpause" not working anymore.<br />
** We were able to duplicate this in one savegame after some time, but no longer can. Given the intermittent nature of this sort of thing, we can't say for sure that it is solved -- but the logic of what was going on makes sense, and the fix we put in should hold that at bay. It's one of those "can't prove a negative" things, at the moment, so fingers crossed it just never shows up again.<br />
** The characteristics that we observed while this happens, if it happens to you and you want to see what you can tell us:<br />
*** In the escape menu, under the memory pooling performance, the number of raw commands were steadily climbing. One or two every few seconds. This should never happen in that way. Increases happen, but not a steady drain flow like that.<br />
*** In the escape menu, further down under the Commands Queued By Type, you may see some null warnings up at the top of that list, now. That wasn't there when we observed it, but it would be if it ever happened now.<br />
** Thanks to zeusalmighty, Puppet Master, Gdrk, and GreatYng for reporting and giving advice on how to reproduce it.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* In our copy of FORGE networking, we've removed some useless extra code that was for the UniversalWindowsPlatform framework, which we won't be ever using.<br />
<br />
* In our copy of FORGE networking, we also got rid of a very useless set of "pending" messages on the UDPClient and UDPServer, which were ostensibly to help with reliable messaging, but in reality was just doing some useless event handling and invocation, and some useless cross-threading locks. It just put the things in the basket and took them back out, never checking the basket or doing anything with it. Thankfully, there is a second basket for reliable UDP inside the UDPPacketComposer, so this was just extra redundancy.<br />
<br />
* Added a new ArcenNetworkClientConnection abstract class, which we now store on ArcenNetworkAuthority in a ClientConnections list.<br />
** These are connections, not yet correlated to specific players. But it lets the network pipe connect up a specific connection with a specific player (or reject that connection if it's not okay).<br />
** Each individual networking framework (ArcenSocket descendent class) is actually responsible for keeping track of these connections and populating them.<br />
** But the actual network authority does the job of authenticating them into a given game and handling the challenge/response work, figuring out a match to a player slot in the game, etc.<br />
** With this in place, we can now get rid of GetNumberOfConnections(), because that's now moved out of the socket and into the network authority.<br />
** This is a substantial refactor, in that it will really make Steamworks and GOG a lot easier for us to work with as networking frameworks, faster.<br />
<br />
* NetworkingPlayer in FORGE now inherits from ArcenNetworkClientConnection, and is the first version of a networking framework using this new pattern.<br />
** On NetworkingPlayer, rather than having a public { get; private set; } for some of the immutable connection things, we now use them as public readonly. This is both more efficient in performance (slightly), but also prevents sync issues between this class and its new underlying abstract class.<br />
** This class gives the information it needs to the base class, and doesn't bother registering the host NetworkingPlayer as an underlying client connection at all, keeping things simple.<br />
<br />
* A bunch of stuff with the FORGE networking logging has been replaced with wrappers around our own logs, so that if there are internal exceptions those don't just go nowhere invisibly anymore.<br />
<br />
* Trimmed out a bunch more old FORGE code that has been commented out for years from the look of things.<br />
<br />
* RespondToNewConnectionAcceptedByTransportLayer() is definitively game code, not part of the actual networking transport layer, and it has been moved into the central codebase and away from any specific networking framework.<br />
** "Hello friend, you've connected: what's your profile name you want to play under?" Etc.<br />
<br />
* A fair bit of the "initial chatter" of clients connecting to a host and the host responding are now logged to the debug log no matter what.<br />
** There really is not that much that is said, and this will certainly help someone at some point who is having some sort of connection issue.<br />
<br />
* When clients are connected to the host, now the host not only shows the number of clients, but also sees their profile names that they have chosen to connect with.<br />
<br />
* A bunch of event-driven stuff on the FORGE networking has been made a bit more inline, improving performance a bit and also reducing certain areas of complexity.<br />
<br />
* The initial challenge-response work, and "what's your name" work, is all functional again. This is stuff that will be identical regardless of the network framework.<br />
** The host can now properly see the profile name of the client, and is poised to send the client back all the world information.<br />
<br />
== Version 2.105 Selection Hotfix ==<br />
(Released July 22nd, 2020)<br />
<br />
* The game still loads various xml files asynchronously, and loads icons and music and sound in that fashion, but it no longer tries to load the ships, shots, or wormholes in that way.<br />
** This was just too unreliable, because of some issues in the unity engine. It didn't affect all players, and not all the time -- but enough that it majorly affected the stability of the game for some folks, and that's too much.<br />
** This also removes the potential for the really long (15-30 second) lag time when you are first opening a new game or the lobby if things didn't load during the loading period.<br />
** Thanks to Ovalcircle for the most recent set of reports.<br />
<br />
* Previously, the game was using a standard List<> object for keeping track of selected ships, and that sometimes ran into inefficiencies and cross-threading issues.<br />
** In the prior build, we tried to fix some of those cross-threading issues, but wound up making things not actually deselect properly.<br />
** To fix all of the above, we've now switched to the much more flexible and robust ArcenLessLinkedList<> object, and adjust the code to handle this. This is both more efficient (not that efficiency is a major problem here), and does not fall victim to the various cross-threading woes that the old style could. <br />
** And, naturally, as part of that, this also resolves the frankly infuriating selection issues in the most recent build of the game. Sorry about that one!<br />
** Thanks to ctl0ve, CRCGamer, Chuito12, and Burner for reporting.<br />
<br />
* Previously, the tech menu only showed techs that would actually benefit a ship you have at present, or which you could capture.<br />
** This was very confusing to a lot of players, as they would not see the entire tech tree and thus think that something was missing or broken.<br />
** In some other cases, possibly due to changes in the recent past, you CAN build something (like a command station), but since you have not done so yet, it would not show up.<br />
** All of the techs now always show up, but the ones that are for ships that would not benefit you right now still show up as red and not researchable.<br />
** Additionally, the tech color shows up as white when it benefits ships you have, gray when it benefits ships that you don't have right now, and lighter gray when it benefits ships that you could capture.<br />
** Please note that since citadel upgrades don't benefit battlestations anymore, the citadel tech not showing from the start was working properly.<br />
** Thanks to Strategic Sage and CRCGamer for reporting the confusion.<br />
<br />
== Version 2.104 Negative Build Percentage Hotfix ==<br />
(Released July 21st, 2020)<br />
<br />
* Somehow or other, it became possible for some self-building ships to go very negative in their build percentage (instead of counting up to 100%, they would be way in the negative percentages of building process). <br />
** This seems to be a new bug in the last day or so, based likely around some changes that we made to improve the cross-thread reliability of the game. The problem is, upon manual code review of the areas that would be relevant, we just can't see anything that looks like a bug.<br />
** Ultimately what is happening is that the SelfBuildMetalRemaining is getting absolutely giant in value, far larger than the original metal cost of the ship that is constructing. This was probably an integer overflow from it going really negative first, and then wrapping back around, but it's hard to be sure.<br />
** We've put in some extra defensive code to make sure that if it goes negative at all, it marks itself as complete. We've also put in protections so that if you "owe more than it is worth" in general, that it will assume that there was an overflow and just go ahead and finish it now. These two changes should help to keep the problem from happening again, and fix the cases where it was already in progress.<br />
** While we were already at it, we put in a small general improvement that prevents you from being overcharged for the last tiny percentage of constructing a ship. If you had a bunch of engineers building, and each frame cycle they normally would do 1.1% of the construction of a ship, and charge you accordingly, then you might wind up in a case where you had only 0.2% remaining work to do, and yet got charged the full 1.1% rate. It is now careful to only charge you for what you would owe, so the 0.2% rate in this example.<br />
** Hopefully there are no other errors in any of the metal flows, with things like drones building, anything engineers would claim or repair, etc. The code looks clean, but then again the code for the self construction also looks clean. In the next couple of days, please let us know if you see anything else that seems amiss with how metal is being charged against you. So far we can't duplicate anything like that anymore, now.<br />
** Thanks to CRCGamer, deso, and Puppet Master for reporting.<br />
<br />
* Some code from yesterday dealing with cross-threading protections let us unfortunately sometimes wind up with runaway DoForSelected loops. This is now fixed, and it has several kinds of self-repair in place to prevent this from happening now.<br />
** Thanks to Gunner for reporting.<br />
<br />
=== Multiplayer Connection Work ===<br />
<br />
* Reworked the NetworkTrafficLog.txt multiplayer output to actually be a lot more informative.<br />
<br />
* GetNumberOfConnectsCurrentlyActive has been replaced with GetNumberOfConnections, which lets the network framework tell us a lot more about the general status of things happening.<br />
** Instead of just a generic number of players that exist, we can see how many are disconnected, how many if any are the host, how many are clients, etc, etc.<br />
<br />
* In the lobby, the host now sees how many connected clients there are, and if there are any disconnected ones, how many disconnected ones there are.<br />
** Previously it just showed one number that included the host and also disconnected clients all wrapped up into one.<br />
** It still isn't detecting disconnects properly in FORGE, but we'll get to that.<br />
<br />
* The host now only bothers sending heartbeat messages if it has at least one non-host client machine connected.<br />
<br />
* Removed some old "desync detected" code that was not fitting with the new plans for multiplayer.<br />
<br />
* Figured out some of why the client was not detecting itself as properly connected, and so was not getting messages from the host at all in the last few builds after the connection.<br />
<br />
* The way that gamecommands are queued and then given out to player simulations for both single-player and multiplayer is now more efficient.<br />
** We're using queues now instead of lists, and this gives us a lower chance of accidentally losing a command, as well (not that we know of that ever happening before).<br />
** This has several performance benefits even for single-player when there are a lot of commands going around.<br />
<br />
* Added a new FromServerToClient_AuthorizeThroughFrameNoCommands in addition to the FromServerToClient_SendNextBatchOfCommandsToExecute, to slightly save on space (1 byte per message) and make the logs clearer.<br />
<br />
* The network log no longer has a time delay built in where it logs only 100 items at a time. It just immediately dumps items to disk.<br />
** Realistically there is only substantial traffic every 100ms or so anyhow, and the delay in logging was incredibly confusing as a programmer working with it.<br />
<br />
* The network polling interval has been updated from 20 times per second to 100 times per second. In practice it will actually be variable, but the polling is extremely lightweight (the part that is on the main thread), and having absolutely minimal delays in getting and sending messages is what will keep things moving smoothly.<br />
<br />
* To make network logging even more efficient and clear, the old ArcenNetworkLogEntry is now ArcenNetworkSendLogEntry, and is now a struct instead of a class. This runs lightning fast and doesn't affect RAM usage.<br />
** We also now are then logging data that is gotten in (which we call TAKE) along with data that is sent (which we call SEND).<br />
** This way we can see the conversation between several machines all interleaved on a single machine's log, and thus figure out why they are saying what they do, and if messages are getting there, etc.<br />
** Surprisingly, the way we were logging things previously really didn't lend itself to that, so it was easy to go down rabbit holes of wrong information (thinking data did not get to a machine when in fact it did).<br />
<br />
* Furthering clarity on the networking side, we're now ignoring loopback messages-to-self on the host in our logs, which previously we were not doing.<br />
** This way we don't get drowned in a sea of stuff that "I'm telling myself in order to be the same as everyone else," and we can just see what is actually passing between machines.<br />
** The loopback stuff has been demonstrably working fine since more or less forever, unless we broke it today, since single-player relies on that.<br />
<br />
* Fun fact, after all these logging changes, we can now actually see how well parts of the networking are already doing.<br />
** As one client connects, the host is able keep talking to itself and/or others without breaking stride, letting the potential connection wait for the challenge and acceptance (not yet reimplemented) before it loops in the new client to the rest.<br />
*** This is a great example of how we can keep people from accidentally messing with the sessions of friends by trying to join during a game, etc. It's the sort of thing that only matters among friends, but it keeps it clean.<br />
** On top of that, we can see now that the reason for the host not noticing when a client disconnects is because it's ignoring the client that has not fully gone through the challenge-response process yet, and so the mystery of how it was "sending messages that failed but didn't flag the client as disconnected" is easily solved (answer: it wasn't sending messages to that particular client yet, because it is smart).<br />
** In general, by improving our logging quite a lot we can see what is actually happening and make sure all of this works properly. The vast majority of this is network-agnostic, which is doubly great. These particular logs will look substantially the same between FORGE and Steam and GOG.<br />
<br />
== Version 2.103 Hotfix ==<br />
(Released July 21st, 2020)<br />
<br />
* Fixed a bug from the prior version where the dark spire serialization fix was making any savegames with dark spire in them -- new or old -- not able to load.<br />
** Thanks to valinor000 and stanazolol69 for reporting.<br />
<br />
== Version 2.102 Digression For Quality ==<br />
(Released July 20th, 2020)<br />
<br />
* Using the "Increase Max Dyson Strength" hack will now also increase the Dyson's general mark level<br />
* Some minor buffs to the Dyson's income, mostly at higher levels<br />
** Thanks to a discussion started by zeusalmighty<br />
<br />
* When picking music (through the debug menu), the hovertext will now give you information on most of the tracks saying the original source<br />
<br />
* Improved the speed of some dictionary lookups by precalculating the ArcenAssetBundlePath CombinedPath.<br />
** This also required us to change their member variables into properties, and in return that meant that the general string fill methods needed to be adjusted to new FillBundle and FillPath methods for xml reading.<br />
** This doesn't affect as much code as it sounds like.<br />
** We also adjusted the various debug logging points to use the combinedpath, which is cleaner and easier to read, but not much faster since that almost never happens.<br />
<br />
* Fixed a bug that could happen with entity order serialization in rare circumstances if threads were fighting over putting items back in or taking them back out.<br />
** Since multiple threads do in fact often use orders, at once, this is one of the few collections prone to that.<br />
<br />
* Fixed a variety of exceptions that could happen based on cross-threading bad luck during the exit of the game either to the OS or to the main menu, all in the metal expenditures code.<br />
<br />
=== Ship Behavior Improvements ===<br />
<br />
* Fix two problems related to shields recovering from being bumped by Astro Trains <br />
** Human Home Forcefield Generators can now recover from being bumped.<br />
*** Thanks to Lord Of Nothing for the bug report<br />
** If a forcefield generator is bumped twice in short order, it will now do a better job of returning to its original location. This isn't perfect, but it's a pretty intense corner case<br />
*** Thanks to Puppet Master for the bug report<br />
<br />
* If there are only non-combatant enemies on a planet, ignore any requirement in the targeting code that particular targets need to be combatants. This prevents ships in FRD from discarding reasonable targets incorrectly. <br />
** Thanks to ParadoxSong for the bug report<br />
<br />
* Actually support Targeting tracing now; you need to set Targeting tracing and the Debug setting that lets you set the PrimaryKey for the unit you want to follow, and you'll get some actual logging. <br />
** Not for the faint of heart; intended only for developers who want to get their hands very dirty.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fix a bug where the 'delete campaign' button wasn't giving the campaign name<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a rare and harmless (but annoying) cross threading exception that could pop up with argument out of range exceptions in RenderShip.<br />
** Thanks to CRCGamer for reporting.<br />
<br />
* Fixed a rare nullref exception that could happen in DoRemovalChecks() on shots, mainly a cross-threading thing.<br />
** Thanks to Lord Of Nothing for reporting.<br />
<br />
* Fixed two possible spots in DoForSelected() where cross-threading issues could sneak in and cause an exception in rare cases.<br />
** Thanks to Lord Of Nothing for reporting.<br />
<br />
* Fixed an issue when loading savegames that have a missing planet naming scheme. It will now default to the default naming scheme if it can't find the one that the world was started with.<br />
** Thanks to Oryutzen for a save that demonstrated this.<br />
<br />
* Fix a bug where the imperial spire wasn't Watching previously explored planets for you.<br />
** Thanks to Lord of Nothing for reporting<br />
<br />
* Fixed an error in TextMeshPro where it would still give us "Unable to use Ellipsis character since it wasn't found in the current Font Asset" invisible errors that would fill up the debug log even if warnings were disabled.<br />
** This was, in very long play, a memory leak as well as a performance drain, and it was generally invisible.<br />
** The ellipsis character was typically something it was trying to find specifically for purposes of showing cut-off text, and some fonts just don't have that in them. So no wonder we couldn't actually find the ellipsis character used in our own text files.<br />
** Thanks to Puppet Master for providing the log file demonstrating all this.<br />
<br />
* Fixed an issue where the stationsRemainingBeforeDepot on astro trains could go arbitrarily negative, thus causing an error on save. It now stops at 0, and thus seems not to cause the issue anymore. But on the change that an astro train does have a data exception during save anymore, it will now log what field is having the problem and we can fix it.<br />
** Thanks to Lord Of Nothing for the report and save.<br />
<br />
* The game has been updated so that the debug logging that is DoNotShow now ONLY goes to the ArcenDebugLog.txt, and not to the unity Player.log. The unity Player.log is kept in memory in a very unfortunate fashion, and in long gameplay this will be extra RAM used that should not be. Probably also extra slowness.<br />
** We added a new DoNotShowButSendToUnityLogEvenOutsideEditor Verbosity option that lets us have the old behavior of going to both of those logs, but we are not using that anywhere at the present time.<br />
** All of this is going to make it even more important that we have both kinds of logs from players if they have an outright game crash, now. But generally speaking, if it's an exception popup but not an outright crash, the ArcenDebugLog.txt has always been enough and will continue to be. It's only when the game crashes all the way to the desktop that we need the Player.log, typically, and now we'll just still need the ArcenDebugLog.txt in addition to that. However, any ShowAsInfo or ShowAsError logs to the main ArcenDebugLog will still appear in the Player.log, so potentially even that won't be true.<br />
** For a developer using the unity editor, it still logs everything to the actual unity log because that's for short testing cases and super useful to see output in realtime.<br />
** At any rate, we are trying to strike a balance between getting the logs we need, easily on the part of players, but without having any accidental extra usage of memory on very long play sessions.<br />
<br />
* All of the dark spire per-unit data is now saved in a format where we can tell which field is having trouble if one does.<br />
** The dark spire data "lastTimeAttemptedLocus" was trying to save as an int16 and would overflow any time a game saved that was more than about 32000 seconds in. Fixed.<br />
** Thanks to RockyBst for reporting.<br />
<br />
==== Memory Leak Fix From 2.099 ====<br />
<br />
* New setting on the debug menu: Show Pool Counts In Escape Menu<br />
** Used for searching for memory leaks, particularly between loads of a savegame. If pool counts keep rising after each load, then something isn't getting put back in the pool properly and is instead persisting lost in memory.<br />
<br />
* ArcenGameObjectResourcePools must all now have a unique name, and they register themselves in a central place that identifies how many of them there are.<br />
** These pools also now keep track of how many objects they have ever produced from themselves, so that if we are leaking objects from them we can tell. And we can tell if we are leaking pools themselves.<br />
** After seeing all of these in the new debug menu option above, we can clearly see that none of these are leaking and they are all behaving just wonderfully. Hmm. But we have a leak somewhere, so let's expand this...<br />
<br />
* Created a new CountedPoolBase abstract class that sits under the ArcenGameObjectResourcePool, and takes its counting capabilities and puts them there so that we can also use them for some other pool types.<br />
** This is also now used on a new "Shot Instance Renderer Pool Of Pools" so that we can tell if we are leaking there. And now ships and squads, too.<br />
** Also this is now used on LoosePool, which is the underlying basis for ship, shot, and squad visualizers (different from instanced renderers) now.<br />
** Despite all this, no memory leak was found in any of these pools. They are all working wonderfully efficiently.<br />
<br />
* ExternalizedPool now inherits from CountedPoolBase.<br />
** Same for TimeBasedPoolBase (and thus TimeBasedPool itself).<br />
** And same for BasicPool.<br />
** And holy cow, there's some sort of memory leak with the time-based pools, looks like, based on this. That makes sense, as we recently reworked some of their functionality to fix a bug with them. Apparently we introduced a new bug at the same time.<br />
<br />
* Added a new setting to the debug menu: Show Details Of Time-Based Pools In Escape Menu<br />
** Used for searching for memory leaks or other bad behavior on a certain very high-turnover series of pooled objects. If pool counts keep rising, or other numbers seem off, then we know we have a memory leak or a performance problem.<br />
** Thanks to Puppet Master, RockyBst, Lord Of Nothing, and NRSirLimbo for reports that led to us finding this.<br />
<br />
* Fixed a MAJOR bug from version 2.099 that was leading to a memory leak in general, and performance problems as well (the longer you played the slower it would get).<br />
** Our entire "time based pool" logic was not actually properly processing because we forgot a single line of code, go figure.<br />
<br />
==== Slow Load Or CTD Fix ====<br />
<br />
* Since we started using the asynchronous loading of asset bundle items using unity (the last few weeks), there have been some intermittent problems with certain random items not loading in properly. This is some sort of funky bug in Unity, we're pretty positive.<br />
** We solved that problem a week or so ago by checking the async request's asset property, and if it was not invalid, forcing it to finish loading even though it was stuck.<br />
** On most machines, this was causing a really annoying lag of 10-25 seconds while Unity did whatever it was doing to finish that load. That was really annoying, but only happened the first time you loaded a savegame or quickstart or custom lobby after starting the program, and not every run of the program, and not on all machines.<br />
** More recently, we discovered that the very act of checking the async request's asset property would cause an unrecoverable error deep in unity and an immediate crash to the desktop.<br />
** Killing two birds with one stone, we're no longer checking the async request asset property at all -- thus avoiding the crash -- and instead just do a normal synchronous load when we detect a failed load. This leaves the one async request in limbo kind of forever, but that shouldn't be a problem; if it ever decides to complete, it will see that it was already completed and just do nothing.<br />
** In the meantime, not only should this avoid the crash, but it should also avoid that awful lag spike that happened for those for whom it didn't crash.<br />
** The downside is that on our dev computers we haven't been able to replicate the error at all today, so we can't verify that this 100% works. It should work, and you should see in the arcen debugging log slightly differently that says "PrototypeObject failed async load and so loaded synchronously for [some stuff] (this is not a problem, but is odd)"<br />
*** If you're one of the people who were frequently seeing either the crash, or seeing the older "PrototypeObject fixed and loaded late for [some stuff] (this is not a problem, but is odd)" message, then we'd love to have a confirmation of you seeing the new message and all being well.<br />
** Thanks to Sol and RocketAssistedPuffin for reporting.<br />
<br />
== Version 2.101 Connection Status: Confirmed ==<br />
(Released July 17th, 2020)<br />
<br />
* Carriage returns and newlines are now supported by the "condensed" string format. This will prevent tutorial messages from turning those characters into question marks when they are dumped to the chat log. Note that this will only affect chat log messages logged in this version and on, not past versions.<br />
** Thanks to ParadoxSong for reporting.<br />
<br />
* The left and right click functions of the metal display have been switched to be more natural.<br />
** Thanks to Waladil and Galian Gadris for suggesting.<br />
<br />
* The "Spire Railgun Shop" mod that comes packaged with the game has been updated to use the icons from their new locations, and will no longer error.<br />
<br />
* We've reworked our "Window_PopupScrollingColumnButtonList" a bit to add some new handy features for us.<br />
** In the factions selection window, when you are adding new factions, it now still lets you see factions that you can't add because there is only one per galaxy, but now it shows them in red, doesn't allow you to select them, and explains why in the tooltip.<br />
** In the debug menu in the escape menu in the main game, the change music submenu now shows the current selection in red (with the note that you can't change to it because it is already playing), and it shows all of the options sorted alphabetically except for the current track, which it shows as the first item.<br />
*** Also fixed a bug where the music you selected to play would not actually be the track that played; it was choosing a random other track.<br />
<br />
=== Scourge Updates ===<br />
<br />
* The hovertext for the Scourge "Strength" in the game lobby now tells you what the strength does (more scourge ships/structures, and faster).<br />
<br />
* Add a "Sandbox: Extra Strong Mode" for the scourge<br />
** This is not balanced for regular play, but is intended as a sandbox thing.<br />
** Thanks to Avenger1649 for suggesting<br />
<br />
* Fix a bug where the scourge were periodically suiciding Defensive Fireteams into player positions.<br />
** Thanks to ParadoxSong for the save.<br />
<br />
* On intensities >= 5, the scourge can create cloaked "blockade running builders" if the player has tried to blockade the scourge into a small region of the galaxy<br />
** Thanks to ParadoxSong for the suggestion<br />
<br />
* On intensities >= 6, the scourge is intended to sneak a builder off to another part of the galaxy at the beginning of the game, to make it much harder for the player to blockade them in. This was not working on some map types, including the X type.<br />
** Thanks to ParadoxSong for the save that exposed this problem.<br />
<br />
* These changes should make the scourge much harder to deal with in general, and on the X map type in particular.<br />
<br />
=== Initial Multiplayer Connection ===<br />
<br />
* AllowOtherPlayersToConnect was a setting on the World object in the past, and thus something that was getting saved into savegames and that dictated how a lot of things worked for player connections.<br />
** We've removed this concept, and instead are making it based on the menu choices you make on the main menu.<br />
** We now have a DesiredMultiplayerStatus on ArcenNetworkAuthority, which lets us recall if you wanted to be the client, a host, or just left alone in single player.<br />
<br />
* The basic shells of SteamSocket and GOGSocket have been added to the game. The in no way function yet, but this will allow for them to be built out in the future.<br />
<br />
* The SpecialNetworkType has been moved into ArcenUniversal, and is now copied onto ArcenSocket along with the InternalName of the row that created the socket.<br />
** There is now a list of AllPossibleSockets on the ArcenNetworkAuthority to allow it to swap between sockets as needed, and particularly by type.<br />
<br />
* When you open the multiplayer menu, if you have that enabled, it will now set a default network framework for you based on the status of your game at that time.<br />
** If you are logged into Steamworks, it will set steam as the default network.<br />
** If that didn't work or wasn't true, and you are logged into GOG Galaxy, it will use that as the default network.<br />
** If none of those worked, then it will pick the first "other" network type, which in this case would be Forged.<br />
<br />
* All of the options in the multiplayer menu for hosting a savegame, quickstart, or custom game now properly do those things identically to as if it was the single-player menu, but put you into host mode first.<br />
** The single-player menu puts you into single-player mode, and makes sure that your ArcenSocket is set to NullSocket.<br />
<br />
* When you try to go into one of the client or host multiplayer areas from the multiplayer menu, it now properly activates your most recent chosen network framework, or switches to the first available one that actually can function right now on your system and gives you explanations for why it did that.<br />
** Essentially there is a fair bit of under the hood plumbing now for the frameworks to register themselves with the network authority class and explain about their availability.<br />
<br />
* If you are looking to connect to another machine, then the "connect as client" tooltip now gives you information about what to expect based on your currently-selected framework.<br />
** Are we connecting by IP? How much of a hassle will that be? Is it going to be by selecting a friend on Steam or GOG? Etc.<br />
<br />
* For IP-address-based networking frameworks, either starting a host mode or client mode event now pops up with a message explaining what information you need to give to the client players or get from the host.<br />
** This is not really the preferred networking method unless you're having a LAN party, and the game makes that clear, but it also goes out of its way to address the most likely areas of potential confusion for people who are using these frameworks.<br />
<br />
* Fixed a few bugs, and added a bit more debug logging clarity, so that the host can once again properly open a socket and wait for connection.<br />
** This was working up until a week or so ago, and was simply messed up a bit when we reworked things to support multiple networking frameworks. There were lots of lonely hosts never getting any client requests ever since the game has been in public beta.<br />
<br />
* When you quit out of the multiplayer lobby back to the main menu, it now immediately disconnects you as a host or client, to avoid confusion of lingering connections.<br />
<br />
* When you are in the lobby in multiplayer, the chat sidebar/log now appears again. At the top it says if you are hosting multiplayer or a multiplayer client.<br />
<br />
==== Choosing A Networking Framework ====<br />
<br />
* The main menu has been updated so that the "network" button at the top of the multiplayer menu now updates its text to show the current network.<br />
<br />
* The network button at the top of the multiplayer menu on the main menu is now fully functional. It shows available network frameworks, and gives you explanations for each one, as well as showing unavailable ones in red with an explanation for why they are not available right now. It lets you select from available ones, which then get set as your current socket when you try to host or join a multiplayer game.<br />
<br />
==== What Is My IP Address If I Need It? ====<br />
<br />
* In the networking section of the settings menu, it now has helpful informational displays of your local IP addresses and your public IP address.<br />
** To get your public IP address, we have to make a public call to the url http://checkip.dyndns.org, so this may flag your software firewall to ask permission when you go to the networking tab now.<br />
** Our goal is of course for you to not have to use your direct IP addresses at all in this game, but if you're playing on a LAN then that would be one great example of when you'd want to use this.<br />
** At any rate, each IP address is stored in a textbox that you can copy-paste from, which is very handy when sharing with friends.<br />
** There are also lengthy explanations about what the public IP address is for, and under what circumstances to use it, as well as the local IP addresses, plus special notes for any IPV6 addresses that it detects.<br />
** Getting this data is time-consuming for your computer, so you will notice micro-lags every few seconds while you are on the networking tab, now. This is normal and should not impair your use of the functionality.<br />
<br />
==== Milestone: Successfully Connecting A Client To Host ====<br />
<br />
* The old interface for network connections by IP address is restored and works again. We'll have a different one for connecting via friends list on Steam and GOG, later, but this is the one that gets used for Forge and any other IP-based network frameworks.<br />
<br />
* Connections are now able to be established from one computer to another, for the first time since 2018!<br />
** We added the ability to see how many clients there are connected to a host in the lobby (including the host), so you can see the connection tick up.<br />
** Next up is them actually exchanging enough information to get the client into the lobby and have them see shared world info and be able to chat and all that. But this is milestone one!<br />
<br />
== Version 2.099 Last Rabbit Holes ==<br />
(Released July 15th, 2020)<br />
<br />
* There is now a galaxy setting to grant players Watch vision for 1, 2 or 3 hops from all command stations.<br />
** Thanks to uhamster9 for inspiring this addition.<br />
<br />
=== Fixes And Tweaks ===<br />
<br />
* Improved the way that time-based pools are incremented in time, so that we're never having accidental cases where we miss one.<br />
** Also made it so that they actually work as intended when the world is being cleared (running 16 seconds' worth of time at once). This then keeps the pools smaller if you repeatedly load savegames.<br />
<br />
* On the escape menu, under where it shows you the various numbers of objects in memory, it now shows you the number of galaxy planets and planet links activated and in existence.<br />
** This lets us tell when these have a memory leak, if there ever is one with them.<br />
<br />
* Additionally, galaxy map links are now pooled for the first time ever, as the discarding of them was previously a definite memory leak. Normally this just happened between saves and loads, but it was also possible to happen when nomad planets moved.<br />
<br />
* In addition to the existing time based pools, we now have a new ExternalizedPool.<br />
** This is now used for the galaxy map links, and actually we have stopped the galaxy map planets themselves from using the super-old IArcenGameObjectResourcePoolable and they also now use this.<br />
<br />
* The way that planets for the galaxy map are initialized, and the way that their positions are set, is completely overhauled.<br />
** This is more efficient and properly uses pooling (which never was working properly before, it turns out).<br />
** It also makes the position of planets automatically react to them having moved in the game sim, without having to do anything special.<br />
<br />
* The arcencolors asset bundle has been removed, with its contents simply rolled into arcenui. Ultimately this is a bit faster to load, and saves a bit of disk space and RAM also.<br />
** Also removed the aiw2squads bundle, and the examples bundle.<br />
*** The examples bundle simply has its example content still there, but not in a bundle (it's to help aspiring models modders).<br />
*** The squads bundle is old data that we've not used in forever, and so has just been cleared out. It wasn't huge, but wasn't worth being there.<br />
<br />
* Starting to load a savegame (including for a quickstart or the last settings for a lobby) now writes to the log when you start the process, and at the end of the process writes how long it took.<br />
<br />
* Added a new debug setting: "Write Detailed Savegame Timings"<br />
** When loading a savegame, including the 'last settings' for the lobby or the basis for a quick start, keep track of detailed timing data and write that into the normal debug log so that it's clear what is taking longer and shorter amounts of time.<br />
<br />
* It turns out that chasing "why savegames now take 16 seconds to load sometimes" was a snipe hunt. The serialization sizes logging, when enabled, actually was causing that amount of slowness. With that off, it loads in about 2 seconds.<br />
** The extra instrumentation that we added for the savegame timings is still nice, but ultimately was not a useful bit of time spent at the current moment.<br />
<br />
* Fixed an issue that could happen in the lobby in particular where it could not properly save your prior settings because the fleet ID or speed group ID was lass than zero.<br />
** This pretty much could only happen if you already had another error first.<br />
<br />
* Fixed an exception in SeedNormalEntities that could happen if you rapidly tried to regenerate maps in the lobby in just the wrong way.<br />
<br />
=== Under The Hood Improvements For Icon Modding And RAM Usage ===<br />
<br />
* The last of the icons from the ExternalIcons folder have been moved into the unity project that generates the asset bundles, simply to dispel any potential confusion about the fact that they can be edited directly and that have some change on the game without recompiling asset bundles. This was a frequent modder confusion.<br />
** That said, the ones that were in the Official_1 folder are now in a CentralIconBits, and can now be used in the UI for the first time if we ever want to. That means things like health bars and whatnot could in theory be used in the ui if someone wanted to, whereas before they could only be used on gamespace-level icons.<br />
<br />
* Cleaned out a variety of unused icons from the arcenui asset bundle, and in general tidied up some of our organization of working files versus final files.<br />
** Also standardized the naming of certain things.<br />
<br />
* Broke the "official icon dictionary" out into six dictionaries:<br />
** One is for the "central bits" like health bars and so on, and would be the same for all ships.<br />
** Two are for the overlays, like for saying what kind of starship or guard post something is. There can be more than one of these, and the fact that these are split out like this demonstrate the modding capabilities and how things can combine.<br />
** Three are for ship icons and their borders, and there can be more of these modded in as well. As with the overlays, not only does this demonstrate how such mods would work, but it also has the side benefit of slightly less VRAM usage in a few cases.<br />
<br />
* The way that GUI icons are discovered from the xml based on their gamespace-icon counterparts is completely revised, and is now based on extra information in the ExternalIconDictionary entries.<br />
** This is a lot more flexible, and allows us to load icons from multiple asset bundles and/or multiple files within the same bundle.<br />
<br />
* The naming for finding icons is now much more complicated, in the sense that they don't all come from a single dictionary called "Official."<br />
** So there were over 1100 places in the base game and expansions where we've had to modify to point to the new dictionaries. Any mods would also need to be updated to point to the new places, unless they want to start using their own icons (once we put together a tutorial for that).<br />
<br />
* The external sprite dictionaries have been updated to be able to properly load in in multiple threads.<br />
<br />
* The game is now able to load the xml files for external icons from any mod or expansion, in:<br />
** Expansions/[ExpansionName]/GameData/ExternalIcons/[thefile].xml<br />
** XMLMods/[ModName]/ExternalIcons/[thefile].xml<br />
** XMLMods_NonDistributed/[ModName]/ExternalIcons/[thefile].xml<br />
** It's worth noting that these are xml files that are generated by Texture Packer, not xml that we create.<br />
** These files are referred to in the "ExternalIconDictionaries" xml as something along the lines of xml_path="Official_CentralIconBits.xml"<br />
*** It will then search the main game's folder (/GameData/ExternalIcons/[thefile].xml), then all the expansion folders, then any activated mod folders for a file with that name that was specified.<br />
** This allows for mods to be self-contained when it comes to their icons, and it allows expansions to have their own icons that are not packaged with the main game (not that we have imminent plans to do that).<br />
<br />
* On the icons used in the game, we previously were not using any compression, which made them absolutely massive in size (80mb for the main dictionary).<br />
** This was done in order to preserve quality, but we're also using GIANT icons in order to allow for really super-high-res displays of the future, as well as square ones to allow for ideal mipmaps, etc. So the lack of compression was hugely overkill.<br />
** We're now using compressed textures, which turns what was 80mb into more like 8mb. This has a very direct impact on performance and VRAM usage, so particularly on low-spec machines they will likely run far better.<br />
<br />
* The game now automatically constructs custom "gimbal materials" for the in-gamespace icons, in as many combinations as are needed for the things that it has drawn for you so far.<br />
** The total number of materials always in the past was "one," but it was using a single large dictionary and a lot more VRAM -- and it had a finite amount of space for things. There was a solid chance we were going to run out of space in that one dictionary as part of implementing DLC2. But either way, mods were not possible. The new number right now is 8, looks like.<br />
** Now it may make a handful of materials, depending on how many mods you have installed that have custom icons, and several for the core game and expansions itself. But these are vastly smaller, and while this does increase the number of "draw calls," each material is still mostly instanced together (there are a few mesh differences depending on if there are health bars shown or whatever), but the overall load on the GPU pipeline is lower.<br />
** All of this is automatically handled by the game in as efficient a pattern as possible, and if you're curious how many combination materials it has created, you can see that in the escape menu at the bottom of the list of memory pooling info.<br />
<br />
* A new debug setting, "Log Gimbal Icon Material Creation", has been added:<br />
** When this is on, any 'gimbal icon' material creation events will be logged as to what was created and how long it took to do so.<br />
** Turns out that this uses an immeasurably small amount of time for each material (less than 1ms each), so that's awesome.<br />
<br />
=== Under The Hood Improvements For Mods With Code ===<br />
<br />
* The game is now able to load dlls from mods or expansions, rather than just from the central game folder.<br />
** This works just like the external icon files, and basically looks for the dll in the central game folder first (/GameData/ModdableLogicDLLs/[thefile].dll), and then looks at expansions and then installed mods if it can't find them.<br />
** The paths are:<br />
*** Expansions/[ExpansionName]/GameData/ModdableLogicDLLs/[thefile].dll<br />
** XMLMods/[ModName]/ModdableLogicDLLs/[thefile].dll<br />
** XMLMods_NonDistributed/[ModName]/ModdableLogicDLLs/[thefile].dll<br />
** We really don't have a need to do this with expansions, but the flexibility is nice.<br />
** With mods that are more than just xml, however, this finally lets a modder distribute just a single folder that has everything in it, and not have to worry about putting some things in central game folders.<br />
** This is only partially tested, but should work.<br />
<br />
* It's worth pointing out that expansions and mods already did (and still do) have the capability to load asset bundles (icons, music, sound effects, models, textures, shaders, etc) from their folders.<br />
** The structure for those is /GlobalBundles/ in the main folder for anything not platform-specific, /AssetBundles_Linux/, /AssetBundles_OSX/, or /AssetBundles_Win/ for the things that are.<br />
** Inside the folders for expansions it is: Expansions/[ExpansionName]/[OneOfTheAboveFolders]/<br />
** Inside the folders for mods it is: XMLMods/[ModName]/[OneOfTheAboveFolders]/ or XMLMods_NonDistributed/[ModName]/[OneOfTheAboveFolders]/<br />
** None of this is new, but it's worth mentioning for now.<br />
** This is only partially tested, but should work.<br />
<br />
=== Larger Gamespace Icons And Fixed Galaxy Map Line Offsets ===<br />
<br />
* We also now have a non-billboarding version of our shader for purposes of our icons on the galaxy map.<br />
** Our core shader does on-GPU (read: hyper efficient) billboarding to always fully face the camera. This is very useful in the main view where you are moving around the camera a lot but always want the icons to face you.<br />
** The downside, however, is that with a largely-straight-overhead camera like the galaxy map uses, this billboarding would cause there to be a perspective shift where the icons for planets would get offset from the lines leading between planets no matter what we did. It also caused them to move relative to the text that was next to them.<br />
*** This offsetting of the lines to the planets was one of the largest "visual papercut" issues that we've had for a really long time, and it is finally fixed!<br />
<br />
* The ship icon scale has been adjusted from a default of 1.5 to 2.2, and will affect all prior settings files.<br />
** It's description has also been updated for the personal settings tooltip: For the icons in the main display area (not the sidebar), how large should they draw? Default is 2.2. If you go too large, it can be hard to see things because they overlap too much. If you go too small, they can get extremely blurry because of flipping to a lower mipmap. The larger your screen DPI, the smaller you can go without losing clarity.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Building Multiplayer]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Era_of_Discovery&diff=31596AI War 2:The Era of Discovery2018-09-07T16:38:10Z<p>Keith.lamothe: /* Version 0.768 */</p>
<hr />
<div>== Known Issues ==<br />
* The lobby interface is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help. Please tell RocketAssistedPuffin if you find anything you think needs changing.<br />
<br />
* The tutorial is currently a not as comprehensive as it could be.<br />
<br />
* '''Multiplayer is temporarily disabled''' while we focus on tightening up the single-player loop.<br />
<br />
* There are still a bunch of ships that we either want to re-implement, or new ideas that we want to implement for the first time.<br />
<br />
* There are a variety of ships/units that don't have proper graphics or reuse icons at the moment.<br />
<br />
* There is not an in-game way to see and edit the control bindings yet.<br />
** But you can go into the created bindings file inside the PlayerData folder to edit them in a text editor.<br />
<br />
== What's this phase all about? ==<br />
<br />
Initial thought process was described on Steam: [https://steamcommunity.com/games/573410/announcements/detail/1732082664630714967 "Retrieval of the Lost Arks" Plus an Essay, Apparently.].<br />
<br />
The short answer is that we hit a point where the game was fun, but super hard to balance. Rather than focusing on balance in a strictly-numbers sense, we thought it would be more interesting to add a procedural element into ships in order to make each game even more different.<br />
<br />
Along with that, we realized just how important the factions are becoming to the game, and how they give more of a sense of life to what is going on. With that in mind, and the since-forever-even-in-AIWC requests of players to make each planet have more unique "terrain" (per se), we thought it was time to start implementing things a bit differently.<br />
<br />
The TLDR is that we hit the point where it feels sufficiently like the first game in a really basic mechanics sense, and now it's time to make things unexpected again <br />
<br />
== Version 0.768 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Add notification for Enraged Macrophages attacking<br />
** Thanks to zeusalmighty<br />
<br />
* Decrease the strength of the Antagonized Dyson<br />
** Thanks to HeartHunter<br />
<br />
* Remove some no longer needed unit tags for the Dyson Sphere<br />
<br />
* Fix a bug where the player could no longer build command stations on any new worlds<br />
** Big props to malkiel for finding a fix to this one<br />
<br />
* Prevent the player from having multiple hacks simultaneously on a planet<br />
<br />
* A large amount of defensive code, as well as some better logging that doesn't gum up the entire system as it runs, has been added to the DoOnAnyDeathLogic section of the code.<br />
** Thanks to malkiel for reporting.<br />
<br />
* Fixed an issue where higher-mark docks were building higher-mark versions of their ships for players (oops!)<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Fixed the logic where ships in FRD mode, and AI ships, were trying to hug their enemies.<br />
** Thanks to HeartHunter7, RocketAssistedPuffin, Ovalcircle, and malkiel for reporting.<br />
<br />
* Added a new Zenith Shield Generator, which is mark 4 and very expensive and can be bought from the Zenith Trader.<br />
** Thanks to zeusalmighty for suggesting.<br />
<br />
* The metal tooltip now spells out exactly how much metal you have, versus the abbreviated version.<br />
<br />
* Fixed a couple of rather severe display bugs that would show when you had numbers in the millions, with things like 2.08m being written as 2.8m instead.<br />
** Thanks to malkiel for figuring this out!<br />
<br />
* Rather than processing every ship's re-evaluation of orders and targeting logic every sim frame, it now only checks them every 4 sim frames, divided up randomly by the modulus of the ship's primary key.<br />
** This has the side effect of making ships shoot not all in such big burst batches constantly, but in a much more attractive set of bursts that are ongoing. It looks far more like a battle now!<br />
** But the really big effect of this is that it almost doubles the performance of some hefty sections of the code. Woo!<br />
<br />
* Also put in a gate to only process the long-range-planning logic of the special faction logic every other sim frame rather than every frame. Doesn't seem to make any difference performance-wise right now, but you never know in the future.<br />
<br />
* Fixed the issue where when the AIP was > 999 it would go up off the top bar.<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
=== AI Tomfoolery ===<br />
<br />
* Made AI targeting more likely to actually kill remains rebuilders so that a sufficiently big turret/etc ball doesn't distract it indefinitely.<br />
<br />
* Now if a chunk of threat sees a hostile king unit in its list of potential target planets, it has a 80% chance of ignoring any potential target planet without a hostile king unit.<br />
** Translation: if it thinks it can get to your home command station, it will probably try.<br />
** It's not a 100% chance to avoid things being too predictable.<br />
<br />
=== Balance Tweaks ===<br />
<br />
*Gryn, The Void Home can now build units starting at Mark 1, instead of Mark 3.<br />
<br />
*Grenade Launchers and Flak Turrets now gain a 2x damage multiplier against anything with less than 65mm armour thickness.<br />
<br />
== Version 0.767 Newly In Stock, By Zenith==<br />
(Released September 6th, 2018)<br />
<br />
* Update the Macrophage Telium description to say "Be careful about killing this, it will enrage all the Macrophages"<br />
** Thanks to zeusalmighty for suggesting<br />
<br />
* The infrastructure menu can now be seen properly on enemy planets. Additionally, items within it that are not buildable on enemy planets -- like energy collectors -- should no longer show up. Now mobile builders are actually more useful!<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* The "Start with units Queued" option now works again. Turns out it was easier to fix than remove.<br />
** Thanks to RabidSanity for reporting.<br />
<br />
* Extremely long-ranged units will now have a reasonable kiting distance.<br />
** Units with extremely long-ranged weapons (sniper guns, etc) will no longer approach targets if they also have a shorter-ranged gun. This prevents the sniper starship from running up against enemies like it used to.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* It should now be impossible to have your stored metal go over your metal storage cap.<br />
** Thanks to malkiel for reporting.<br />
<br />
* When you can't afford mercenaries right now, it now shows that as the proper message rather than saying they can't be hired at the current planet. The incorrect message was super confusing!<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* The Rorqual Hegira now also has the Norris Effect, same as Gyrn does.<br />
<br />
=== More Targeting Work ===<br />
<br />
* Fixed a bug in the prior release that made it continue to use the old AI-style target priorities on ships in FRD mode.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* Updated the general targeting logic in TargetPlanning so that it now also makes use of the target priorities and pays attention to ranges, which should lead to more consistent behavior between that sort of targeting and the targeting from FRD mode. It also takes into account overkill, etc.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* Added some logic that prevents some thrashing when ships are chasing targets out of their current firing range. This leads to better ship behavior, plus a nontrivial CPU performance bump.<br />
<br />
=== Zenith Trader: New Wares In Stock ===<br />
<br />
* The Zenith Trader should now have some interesting wares to sell. They aren't tested yet, so may have some bugs.<br />
** Scrubbed Aberration<br />
** Scrubbed Abomination<br />
** Tamed Macrophage<br />
** Chained Dark Spire Eidolon<br />
** You don't have to have any of those factions enabled for these to be available.<br />
** Thanks to Ovalcircle for reminding us to give the Trader something to sell.<br />
<br />
=== Reinvented Units ===<br />
<br />
* Vorticular Cutlass has been adapted into the new Metabolizing Gangsaw.<br />
** Melee ships that damage themselves when they do damage, but also carves metal off their target to add to your income.<br />
<br />
* Needler Turret has become Pike Turret.<br />
** Exceptional against highly-armored ships, particularly those with high remaining hull health.<br />
<br />
* Multi-Needler Corvette has become Pike Corvette.<br />
** Exceptional against highly-armored ships, particularly those with high remaining hull health.<br />
<br />
=== New Units ===<br />
<br />
* New player-only turret: Ambush Turret<br />
** Specializes in destroying enemies new to the planet.<br />
<br />
*New AI-only Guardian: Widow Guardian<br />
**Scary, causes paralysis to victims with low mass.<br />
<br />
=== Balance Tweaks ===<br />
<br />
*AI Overlords have reduced health - bit more than half. Phase 2 now has 2 Archon Cannons, dealing 8000 damage every 2s, and Archon Missiles, firing 32 missiles at once, every 2s, with 200 damage each. Also has the Norris effect, so no more cheesing this by trapping it.<br />
**Thanks to Ovalcircle for suggesting the idea and the general weapons, and x4000 for the Norris Effect.<br />
<br />
*Macrophage Harvesters now have 90mm thick armour, to make them a bit easier to actually fight now.<br />
**Thanks to zeusalmighty for reporting, and Badger for the 90mm figure.<br />
<br />
*Sentinel Frigates and Sentry Starships now give sensor data for neighbouring planets.<br />
<br />
*Space Planes now take half damage from anything shooting them beyond their own weapon range.<br />
<br />
*AI Hunter Fleet starting budget is vastly reduced. This should hopefully stop it attacking you even in the first minute, and make the initial planet grab a bit easier.<br />
**An example of this is building the initial triangle of fleetships wasn't enough to deter the Hunter from attacking at difficulty 7, two minutes into the game.<br />
<br />
*Starting metal increased from 360k to 540k. This should mean you don't go into "Starving" just building initial fleetships, and will help the initial planet grab as well.<br />
**This is currently the exact amount required to build the initial triangle.<br />
<br />
== Version 0.766 Target Equilibrium==<br />
(Released September 5th, 2018)<br />
<br />
* Hopefully fix null reference in Hacking Notifications<br />
** Thanks to Ovalcircle for reporting<br />
<br />
* Hopefully fix game load problem due to Dyson Shpere<br />
** Thanks to HeartHunter for reporting<br />
<br />
* Improvements to the Nanocaust:<br />
** Improve detection of when a planet is capturable<br />
** Improve detection of fleet state (this was causing huge numbers of notifications to pile up)<br />
** Lots of improvement to nanocaust tracing<br />
** Some overall nerfs to the Nanocaust strength (HeartHunter's suggestion)<br />
** Make the Hack cost more hacking points<br />
** Hacked Nanobot Hives now show in the galaxy map<br />
<br />
* Improved the wording of a few things in the Tutorial.<br />
** Thanks to Ovalcircle for the critique<br />
<br />
* Fixed a bug introduced during the GameEntity split where defenses were never seeded at wormholes anymore. This was because one of the search flags for wormholes was only looking at Squads (which are, of course, never wormholes!), and not looking at Other. Now a new flag has been made for Other, where wormholes are, and it searches on that. It's not possible to make this error in the future, since the flags are not cross-compatible, which is good.<br />
** Thanks to zeusalmighty and Ovalcircle for reporting.<br />
<br />
* Fix a bug where Tertiary mercenary units were spawning secondary units instead<br />
** Thanks to RocketAssistedPuffin for reporting<br />
<br />
* Previously, things that said "less than" as a requirement really meant "less than or equal to." They now really mean "less than." Affects:<br />
** Engine stun gx, paralysis tx, reload slowing mm, gravity gx, tachyon albedo, tractor gx and albedo, and ion albedo.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Fixed our internal batch files to finally properly be able to compile with Unity 2018.2+.<br />
** It turns out that on Chris's machine, he was unintentionally still compiling with 2017.3p1 instead. After updating his path to properly point the right place, trying to debug this with Puffin, he was able to get the same error that Keith and then later Puffin were having.<br />
** The error in question was because something changed with the mcs.exe compilter used by Unity in their new version of .NET. What exactly was happening is still unclear, but simply switching to use %unityPath%Editor\Data\MonoBleedingEdge\bin\mcs.bat as the path fixes the issue.<br />
<br />
* Okay, a REAL fix to the compilation issue. We're simply now using the older compiler from 2017.3p1, same as has been done on Chris's machine for quite a long time. The newer compiler seems to have some sort of issue or requires some new arguments.<br />
** With this in place, we actually now don't even need unity installed on the developer machine at all in order to compile, most likely.<br />
<br />
* Fixed a typo when hiring mercenaries where it said things like "Cost: 2 of your 20 metal" instead of "Cost: 2 of your 20 hacking points"<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
* Fixed a nullref in pathfinding between planets when the target or source was null or identical.<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
*Mobile Space Docks now properly say V-Wing, Fusion Bomber and Concussion Corvette - this was missed when those ships were revamped.<br />
<br />
* Added a new DoOnSpawnsOnDeath method on the scenario and on the special faction implementations. This allows us to have central logic, or per-faction logic, for when an entity is spawned via another entity dying.<br />
** We're now using this on when a mercenary does this in order to copy to mercenary group affiliation from the parent to the child, thus preventing errors that otherwise happened.<br />
** Thanks to RocketAssistedPuffin and Ovalcircle for reporting.<br />
<br />
* Fixed an xml bug with tractor guardians where they had some tractor fields set up on their main weapon, leading to the interface not showing their tractor stats properly.<br />
** Thanks to malkiel for reporting.<br />
<br />
* Fixed a bug where if you were spending zero metal per second at the moment, it would not show your metal data properly in the tooltip over the metal field.<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
* Prevent OnDeath effects from firing when a unit is Despawning. This prevents some crashes when the Nanocaust is trying to take over HRF ships that are warping out<br />
** Thanks to ZeusAlmighty and the Puffin for reporting<br />
<br />
* Fix a bug where Dyson Hacking wasn't costing hacking points<br />
** Thanks to Ovalcircle for reporting<br />
<br />
=== Ship Targeting ===<br />
<br />
* Logic has been added to the game that should make the human forces always target enemies as if they are in FRD-mode, versus spreading damage around evenly. This requires further testing to make sure that we actually got the issue, though.<br />
** Thanks to HeartHunter7 for bringing up the various targeting issues.<br />
<br />
* Targeting weights for FRD units (on the player side) is now completely different from the targeting weights used by the non-player factions.<br />
** The AIs and humans simply have very different goals in how they fight, so letting them weight things differently makes a lot of sense.<br />
** Thanks to HeartHunter7 for bringing this up.<br />
<br />
* For every forcefield that a ship is protected by, it now gets its priority divided by 3 if it's a player doing the targeting, or by 5 if it's an AI doing the attacking.<br />
** This makes the AI in particular a lot less cheesable by sticking key ships under forcefields, and it makes your FRD units also behave more intelligently.<br />
** Thanks to RocketAssistedPuffin for suggesting.<br />
<br />
*AI Overlord Phase 1 now has very low priority instead of requiring manual target. This allows factions that don't take over planets to actually attack it, such as Enraged Harvesters from the Macrophage.<br />
**Thanks to Ovalcircle for reporting.<br />
<br />
=== Balance Tweaks ===<br />
<br />
*Macrophage Harvesters now have an engine GX of 19, to prevent them from being engine stunned forever by Spider units, including Guardians. This should let them do their thing...and not be immediately cheesed by a player with one spider turret.<br />
**Thanks to Ovalcircle for reporting this sad situation.<br />
<br />
* Command stations now SHOULD automatically capture harvesters and other neutral entities without you needing to have your engineers go running around manually. Requires testing, though.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* The Orchid Ark now has lost the ability to assist construction on other ships, but it's repair speed has gone up by 10x. This isn't a multi-repair ability, but it's such a superfast repair process that it should act very similarly to what is imagined. Let's see how that feels, anyhow.<br />
** Thanks to Malkiel for suggesting.<br />
<br />
*Carrier, Riot Starship and Tritium Sniper Starships are all bonus ships now. Siege Starships can now be built by default - so you'll have some pretty explosions.<br />
** Thanks to Malkiel for suggesting.<br />
<br />
*Siege Starships no longer spread their damage out, and instead deal full damage to at most 10 targets.<br />
<br />
*V-Wings gained 100 Hull, to 2000, and 200 Shields, to 2000. This is to help make it a Human counterpart to the Armor Ship of the AI. (Armors being tougher tanks, while V-Wings trade off for a slow debuff).<br />
<br />
*Armor Ship damage down from 206 to 120. This is so it isn't utterly wrecking everything while being more durable. These should now have the same DPS as V-Wings.<br />
<br />
*MLRS Corvettes now have the same hull and shields of Concussion Corvettes - these can now be demolished by Fusion Bombers.<br />
<br />
*Concussion Corvettes gained even more damage - from 60 to 80.<br />
<br />
*Sentinel Frigate cap halved and strength doubled for AI budgeting - they'll get less of these now.<br />
<br />
*Inhibiting Tesla Corvette cap halved and strength doubled for AI budgeting - they'll get less of these now.<br />
<br />
*Assault Starship now fires every 3s, down from 4. This is to help against Armor Ship masses.<br />
<br />
*Space Tanks now get a similar bonus against 90mm or greater thickness, like Assault Starships. This is to give a possible counter against Armor Ship masses.<br />
<br />
*Needler turrets now get a similar bonus against 90mm or greater thickness, like Assault Starships. This is to give a possible counter against Armor Ship masses.<br />
<br />
*Ablative Gatling cap increased from 120 to 180 - fear the swarm!<br />
<br />
*Lowered Scout tech costs drastically - should cost 600 for Mark 2, then 1200 for Mark 3.<br />
**Thanks to zeusalmighty for the suggestion.<br />
<br />
*Raiders now have an Engine GX of 18 - this makes them immune to almost all speed penalties - hope you have V-Wings in position.<br />
<br />
*Orchid Ark now has Vampirism in order to heal itself - 5 health for every 1 damage.<br />
<br />
== Version 0.765 Game Entity Split ==<br />
(Released September 4th, 2018)<br />
<br />
* Fix a bug in the mapgen code that could get in an infinite loop<br />
<br />
* Fix a few typos in Mercenary Descriptions<br />
** Thanks to Ovalcircle for reporting<br />
<br />
* Add a popup notification when the Risk Analyzers are close to firing<br />
<br />
* Add a 'primary_unit_must_survive_to_rehire' xml tag for Mercenaries. Setting this to false will mean that you can always rehire a mercenary group even if all its units die.<br />
<br />
* Don't allow the mercenary budget to go into debt when purchasing units; this will confuse modders.<br />
<br />
* Add a missing word in the description for Instigators<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fix a bug with self-attrition for drones. They now actually die at .1% per second, instead of 10% per second.<br />
** Thanks to Ovalcircle for reporting<br />
<br />
* Add in Science hacking<br />
<br />
* Fix null reference exception in Marauder code.<br />
** Thanks to Ovalcircle for reporting<br />
<br />
* Fix a typo on Cloaking hovertext<br />
** Thanks to malkiel<br />
<br />
* Mark 1 space dock cap increased from 2 to 4.<br />
** Thanks to Badger and RocketAssistedPuffin for suggesting.<br />
<br />
* The wormholes on player home planets will always now be extremely far out on the gravity well, so that there is plenty of room for the human home command station to be far from those wormholes.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* The Ark "Gyrn, the Voidhome" now also has the ability "Norris Effect":<br />
** Displaces enemy bubble-forcefield generators when moving into them.<br />
<br />
* Fixed a bug in the most recent version of the game where the map gen special seeding logic was even _worse_ than before, because we forgot one line of code.<br />
** Thanks to Badger for reporting.<br />
<br />
* Fixed an issue where ships would be able to repair other ships that just died, so long as they go to them in the exact frame that the ship died.<br />
** This made things like scrapping a unit go into infinite loops if engineers were around.<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
* Also fixed a bug where engineers could be set to assist space docks or similar that were blown to remains.<br />
<br />
* Fixed a bug where things that died to remains (or neutral) would still repeatedly explode even though engineers were not involved.<br />
** Thanks to Ovalcircle and crowebird for reporting.<br />
<br />
* Fixed a bug where after a ship was claimed, it would not switch to its proper claimed graphics until you tabbed out to the galaxy and back in.<br />
<br />
* There is now a new "ShotHitLogic" tracing option that will dump the data for all the ships that are hitting one another so that you can check for inaccuracies in math.<br />
** Thanks to RocketAssistedPuffin for reporting the lack of this.<br />
<br />
* When there is only a single unit in a stack that you are hovering over in the ships tab of the sidebar, it now acts as if you are directly hovering over that unit, thus showing a lot more specific info like its individual health, etc.<br />
** Thanks to Ovalcircle for suggesting.<br />
<br />
* Reorganized the campaign stats section a bit, and broadened the game performance section (as well as moving it down).<br />
** It now says if the game is paused or running, it says what the current frame is, the current entity count, the number of garbage collector calls, the total entities created, and the current command count (that last one is a rough estimate).<br />
** This helps even non-developers tell at a glance what might be going on if the performance is low (tons of commands, tons of entities created or present, it lags every time the garbage collector runs, etc).<br />
<br />
* The AI is now limited to at most 3 shield generators per planet (for now, anyhow).<br />
** Thanks to HeartHunter7 for reporting the crazy numbers of shields that were otherwise present.<br />
<br />
* Tutorial enhancements. The third planet is now just a Mark 2 planet. The player is told to use Scouts to explore it, then build Starships and upgraded Fleetships to capture it.<br />
* The Tutorial's AI has been significantly nerfed to make it much harder to lose to.<br />
<br />
* Fix a potential null reference in the Science Objectives<br />
<br />
* Weapon Renames for Macrophage and Nanocaust factions.<br />
<br />
* Fixed Anvil Securities mercenary group being called War Siegers.<br />
<br />
=== Splitting Our GameEntity For Major Performance Gains ===<br />
<br />
* Major internal refactor: GameEntity has been split into four classes:<br />
** GameEntity_Base provides the new abstract class that is underneath the other three.<br />
** GameEntity_Squad is for all of the ships.<br />
** GameEntity_Shot is for all of the shots, and is now vastly more lightweight than it used to be.<br />
** GameEntity_Other is for basically just wormholes, and is incredibly more lightweight than it used to be.<br />
** Despite all of these changes, old savegames still work.<br />
** The new data for shots is now faster to load into RAM when creating a firing shot, as well as much more lightweight when saving a game with a lot of shots in it.<br />
*** A savegame that has 14k squads and 29k shots previously took 9.61MB, but now only takes 6.66MB.<br />
** There are a few cases where code is now slightly more verbose, but overall the memory footprint is down notably, and the CPU footprint is down somewhat.<br />
<br />
* The changes to splitting out the shot data, and thus making it not remotely so heavy to initialize, makes it so that when there are thousands of shots being spawned in a second, it no longer causes lag spikes like it previously did. It was actively causing huge amounts of hitching before, simply as a part of creating all those new objects in memory, it turns out.<br />
** In our test case, with the prior version of the game it was hanging for about 3 seconds every 3-5 seconds, and it was running at something like 35% speed when not hanging. It now has no hitches in that same savegame, and runs at a solid 45% of full speed. This is even true as it progresses into having more than 45k active shots in the game at once, pretty much all of which are all on one planet (nightmare performance scenario).<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* When saving to disk, some of the fairly-temporary data having to do with the plan for the next frame (that has not happened yet) is no longer saved. It simply isn't needed on disk, but it is needed for sync between clients in multiplayer.<br />
** This brings the on-disk size of the large savegame that has 14k squads and 29k shots further down from 6.66MB to 5.29MB.<br />
<br />
* A new function has been put into our serializer, where it "compacts" down the Int64 variables that are used for GameEntityIDs, by simply renumbering them 1-x as they are added into it. This only happens when saving it to disk, but it has the effect of majorly reducing the filesize of long-running games (or those with a lot of shots in them over time).<br />
** This brings the on-disk size of the large savegame that has 14k squads and 29k shots -- which had had over 10 million entities in it since starting -- further down from 5.29MB to 2.68MB.<br />
<br />
=== Nanocaust Tweaks ===<br />
* Make Nanocaust hacking a bit tougher. <br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* Fix a variety of issues with the Nanocaust<br />
** Thanks to Ovalcircle for reporting. Note that these changes may well make the Nanocaust more aggressive toward the player. This seems like a good thing<br />
<br />
* Improve the Nanocaust notification and objective messages<br />
** Thanks to Puffin for reporting<br />
<br />
=== Dyson Sphere Tweaks ===<br />
<br />
* The Dyson Sphere now uses tracing to log events, which can be enabled or disabled during the game via the Debug menu.<br />
<br />
* Fix a bug where Antagonized Dyson Spheres weren't producing units, and also the Description on the Antagonized Dyson Sphere will tell you what is causing the Antagonization.<br />
<br />
* Allow Three hacks for the Dyson Sphere<br />
** One steals a Dyson Sphere ship design<br />
** One increases the Dyson Sphere's unit production<br />
** One decreases the Dyson Sphere's unit production<br />
<br />
=== Balance Tweaks ===<br />
<br />
* This whole section is thanks to RocketAssistedPuffin.<br />
<br />
* Anvil Securities Riot Ship made MK4, now get half as many.<br />
<br />
* War Sieger has been rebalanced - used to spread damage among targets, now it deals full damage to at most 10 in the blast radius. Weapon damage and firerate reduced to compensate.<br />
<br />
* Anvil Securities can be hired twice, if the Riot Starships survive. All others only hireable once.<br />
<br />
* Fixed Regenerator and Botnet Golems having half the range of their counterparts.<br />
** Thanks to Mckloshiv for reporting.<br />
<br />
* ShieldGenerator Priority 750 > 75, Shield Guard Posts given same priority (they have a gun, but their main purpose is to shield so gave them same).<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
* Guardian Health change to 1/4th what it was, and AI Guard Post Health 5x what it was. <br />
** Thanks to Badger for suggesting.<br />
<br />
* AI Overlord Phase 1 now requires manual targeting to attack - this avoids ships attacking it above hostiles that actually fight back. <br />
** Thanks to Ovalcircle for suggesting.<br />
<br />
* Ion Cannons health reduced to a third of what it was before.<br />
** Thanks to Badger for suggesting.<br />
<br />
* Assault Starship now gains damage multiplier vs targets with at least 90mm thickness, down from 100. This is to give the players something to fight Guardians and sometimes other starships with early on.<br />
<br />
*Fusion Bomber damage increased from 150 to 225 at Mark 1.<br />
<br />
*Concussion Corvette damage increased from 50 to 60 at Mark 1.<br />
<br />
*Scouts now have double the cloaking points at MK1, and only gain 1000 per Mark.<br />
** Thanks to Kesseleth and Badger for mentioning these.<br />
<br />
*Engine GX of Assault, Shield, Star and Carrier Starships increased to 16. This now makes them immune to Spider fleetships and Spider Turrets, but not Guardians. This was apparently *really* annoying. <br />
** Thanks to Badger for reporting this nuisance.<br />
<br />
*Spider Fleetships, Turrets, and Guardians now have a maximum stun of 10 seconds. This is to stop ships being stuck for a full minute and just being annoying, while being high enough to still be decent in combat.<br />
<br />
*Lost Spire Frigate has a much improved weapon on it, firing every 2s and dealing 20,000 damage. Shields improved from 100,000 to 150,000 to better represent their shielding technology.<br />
<br />
*The original Mercenary groups have received a general improvement - to cost, hire count, strength, etc. Descriptions also list how long they last.<br />
<br />
*MLRS Corvettes, Turrets and Guardposts now have a reload time of 6s, up from 2s. This is both a balance nerf and a minor performance increase - they were simply firing way too many shots per unit.<br />
<br />
== Version 0.764 Mercenary Surge==<br />
(Released August 30th, 2018)<br />
<br />
* Fixed a nullref that could happen in the nanocaust notification display.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* Put in better protection and notification for a nullref that could happen in GenerateDysonSphereObjectives.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* There is now a better check in findAIKing in the nanocaust function where it will throw a visible error if it can't find an AI king and the game is still going on. If the game is already won, then it just says nothing because that's A-OK.<br />
** Similar logic is now in place for dead humans.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* If the player has lost and there is no human king planet, the nanocaust now properly routes randomly.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* The "BUG: nanocaustInfectedPlanet, the planet passed in is null somehow" now will give line numbers if it gets triggered, since it is potentially a problem.<br />
** That said, several cases that could lead to that branch have now been fixed, as they mostly revolved around valid missing targets and needing to find a random target.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* It appears that the warning "Could not unlock ship line: [whatever] because it was already unlocked!" was being triggered because of duplicate claim calls to ARS units. That should now be fixed so that it doesn't throw the spurious error.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* A protection has been put in place to prevent ShipsDying from getting the same ship in it twice in the vis layer. This may not have even been a concern, but because of "MINOR BUG: ship killed is already on Dying list" popping up, it was worth looking at.<br />
** "BUG: ship killed is not part of target squad." is still on the loose, though, but quite rare.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* The big scary message of "During placement: Command station already here and placing command station!" is now replaced by a log-style message on the side, instead, like other non-bug-based error messages during placement.<br />
** Thanks to RocketAssistedPuffin and HeartHunter7 for reporting.<br />
<br />
* The big scary message of "During placement: entityDoingThePlacing == null!" is now replaced by something much better.<br />
** The new message is: "Construction source died prior to construction start -- cannot build this now."<br />
** Thanks to Badger for reporting.<br />
<br />
* Put in better logic that will show us what is really going on when you try to hover over a macrophage harvester whose special faction doesn't have the proper implementation type: it will say what the faction and implementation type actually is as an error in the tooltip, now.<br />
** This was the "System.InvalidCastException: Specified cast is not valid" in Arcen.AIW2.External.HarvesterDescriptionAppender.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* Fixed the "data.PerPlanet[X] is null" error from the Dark Spire, which was essentially a race condition and something that we could work around easily once we knew it was there.<br />
** This may have been something that interfered with background thread execution, but it's hard to be sure. Most likely it was not.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* Fixed the "BUG: Harvester on [X] has null hdata" issue, which has a less-clear cause but probably was also a race condition of some sort.<br />
** At any rate, simply lazy-initializing this data is harmless and solves the problem, since there is no important data in MacrophagePerHarvesterData that can't be initialized at the time it is needed.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* Under the hood, the map generator now logs to your debug log anytime it generates a new map. It logs the type and the seed, but not all the other settings. It also logs when it's complete. So we can see from a log how long something takes if it is slow, which is useful, and if something doesn't complete because of a deadlock or similar. In those instances we'll have the map seed and such so that we should be able to duplicate your settings and remove whatever the deadlock is. It won't cause the map thread to come back from a deadlock, but since those are hopefully going to be incredibly rare that shouldn't be an issue. Main thing is that this will let us test and fix them quickly.<br />
<br />
* The internal variable GalaxyCenter has been renamed to GalaxyMapOnly_GalaxyCenter, to make it super clear that this is only for galaxy map generation.<br />
** This was erroneously being used in mercenary code that is planet-based, and thus was putting mercenaries outside the grav well.<br />
** This should have been using Engine_AIW2.Instance.CombatCenter, which is the center for planets.<br />
** However, this didn't actually cause any issues, since it was being overriden anyway.<br />
<br />
* Mercenaries that spawn in now do so at 90% of the grav well radius instead of all the way on the border (being all the way on the border causes them to sometimes get stuck on the border).<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Fixed an issue with the mercenaries data table where it had a MercGroupName that was being pulled in instead of using the underlying InternalName and DisplayName.<br />
** Related to this, all the display_name fields were blank, so in places that used DisplayName instead of MercGroupName, the mercenary name showed as blank.<br />
** Now everything uses the built-in fields, and the xml files have been updated to include the mercenaries fine.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Fixed a bug where the savegame metadata file would fail to save if certain setup data was missing (such as the map type). This would then cause the game to stall out and give you the "wrong frame for command" error after autosaves attempted.<br />
<br />
* The term "Cloaking Points" has been shortened to just "Cloak" in order to prevent its text from running into the next item.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* Fixed an index out of range exception that could happen in GetPlanetForInstigatorBase if there were no valid target planets found for whatever reason.<br />
<br />
* Fix a bug with risk analyzers<br />
<br />
* Fix a bug calculating the strength of secondary units to spawn for Mercenary Groups<br />
** Thanks to RocketAssistedPuffin for the bug report<br />
<br />
* Mercenaries were never actually set up to charge the player for their services, heh.<br />
** They now not only charge you, but they give a message when you try to hire them but can't afford them.<br />
** They also show what their costs are in their tooltips, which they previously did not do.<br />
** When they are hired, all players also now get a message saying who was hired, for where, and for how much.<br />
** Mercenary names now show up as red if you can't afford them.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Mercenaries are now only marked as summoned if they actually were successfully summoned.<br />
<br />
* If the Hunter Fleet has obtained a usurper (for example, player defends from a reconquest wave but the usurper gets away. Then the usurper joins the hunter fleet), make sure that it claims any planet in the name of an AI faction, not the Hunter Fleet. Also prevent the Nanocaust from claiming usurpers, since otherwise it would wind up claiming Nanocaust planets for the AI.<br />
** Thanks to OvalCircle for bringing this to my attention<br />
<br />
* The tooltips for mercenaries now specify what kind of planets they are willing to work on, and if they're willing to be hired on the current planet or not.<br />
<br />
* The mercenary hiring header now includes a count, has a better tooltip, and is more clear when there are no mercenaries around.<br />
<br />
* Fixed the bug where all the mercenary options were displayed stacked on top of one another.<br />
<br />
* The list of mercenary groups that can be hired now only includes a single copy of each mercenary outfit, rather than a copy for each discovered communicator that can hire them.<br />
<br />
* Add the ability to have mercenaries controlled directly by the player. To use this, add the field 'donate_to_player=true' to the mercenary XML. <br />
** Currently untested. Let me know if it works<br />
<br />
* Added a new SingleMercenaryGroupState that is now serialized on the central MercenaryGlobalData, replacing the old data strucutre that was previously serialized per-communicator.<br />
** Now mercenaries have a properly-global status instead of it being per-communicator.<br />
<br />
* The Mercenary data structures in general have been majorly rewritten in order to be fully mod-compatible (using InternalName instead of a manual groupID that is more likely to have conflicts), among other improvements such as making the mercenary status global for each mercenary group instead of tied into the communicator that is able to call them.<br />
<br />
* Fixed the bug where in the tooltips the cap of ships was being shown wrong.<br />
** Thanks to Ovalcircle, RocketAssistedPuffin, and zeusalmighty for reporting, and Badger to finding the fix.<br />
<br />
* The cap for space docks is now per-planet instead of galaxy wide, and it's now 2 instead of 30.<br />
** Space Docks can now be upgraded for tech cost to get more dock ship cap, make them build faster, have more health, etc.<br />
** It's not a particularly good investment, but it's something that in certain circumstances could be really useful, so this is technically "candy tech."<br />
** The metal cost for Space Docks has also increased from 600 (!?!?) to 35000, which is more in line with other similar ships.<br />
<br />
* The shield generator per-planet cap has been dropped to 1 from 2, which makes it so that when you get to high-level versions of these you can't have so very many of them per planet. These are really meant to be scarce. Their max mark level is also now 3 instead of 7, for players only.<br />
** In existing savegames, the AI shield generators will wind up being capped at mark 3 retroactively, as well, but in new savegames that won't be the case.<br />
** Thanks to zeusalmighty for reporting the imbalance here.<br />
<br />
* Fixed a bug where mark 2 of ships that have a cap of 1 at mark 1 would still have a cap of 1, but then it would jump to 3 at mark 3. Now it properly goes to 2 on mark 2.<br />
<br />
* The game now properly limits what kind of planets mercenaries are willing to spawn on.<br />
<br />
* The "modder game command" is a lot more powerful now, with a faction and context being passed in so that you can create ships directly during it.<br />
** Mercenary ships are thus now directly created when you request them, which means that requests can work while you are paused.<br />
<br />
* Finished replacing all references to merc communicators instead now being merc beacons.<br />
<br />
* 5 beacons now seed per galaxy, instead of 3.<br />
<br />
* Fixed an issue where immobile ships could become mobile under certain circumstances since two versions back.<br />
** Thanks to zeusalmighty, Badger, and RocketAssistedPuffin for reporting.<br />
<br />
* Protections and logging have been put in that should solve the problem of nullref exceptions after a mercenary unit spawns another mercenary unit on death.<br />
** This hasn't been tested, so if it still breaks in the next version then we'll need a savegame, but that wasn't possible prior to now.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* The mapgen seeding of special items and faction goodies is vastly improved.<br />
** Factions that are major (Dyson, nanocaust, etc) should never seed on the same planets as each other anymore.<br />
** The places that these objects will seed is no longer just in the inner part of each planet system, but is specified in mapgen (most are "anywhere" now). This makes things a lot more varied-feeling.<br />
** The actual logic for doing the seeding is now much faster, and does not allow for placing duplicates of the same type on one planet (such as 3 mercenary beacons on a single planet).<br />
<br />
* You can now see what mercenary groups a beacon can contact BEFORE you hack it.<br />
<br />
=== New Mercenary Factions By RocketAssistedPuffin ===<br />
<br />
* New Mercenary factions by RocketAssistedPuffin!<br />
** War Harvesters<br />
*** Purchase a group of War Harvester bots from a fellow resistance group. These bots harvest metal from their targets and grant it to you. These are put under your command.<br />
** War Siegers<br />
*** Purchase a group of War Sieger bots from a fellow resistance group. These bots wield dual mini-plasma cannons for long range devestation. These are put under your command.<br />
** Automated Firesupport<br />
*** An abandoned drone factory will supply you with a temporary force of sniper units, if given construction material. These will fight to the death. Lasts 10 minutes.<br />
** Automated Shredders<br />
*** An abandoned drone factory will supply you with a temporary force of Cutlass and Vampire units, if given construction material. These will fight to the death. Lasts 10 minutes.<br />
** Automated Construction Swarm<br />
*** An abandoned drone factory will supply you with a temporary force of modified construction bots, that spawn smaller copies on death, if given construction material. These will fight to the death. Lasts 10 minutes.<br />
** Anvil Securities<br />
*** Before the current war, they used to be a defense contractor. Now, for a price they'll help defend nearby friendly and neutral planets with their Riot Starships and Spiders. Leaves after 10 minutes.<br />
** These came with the following new units:<br />
*** War Harvester, War Sieger, Automated Sentinel Frigate Drone, Automated Sniper Drone, Automated Vorticular Cutlass, Automated Vampire Claw, Automated Construction Bot, Mini Automated Construction Bot, Anvil Securities Spider.<br />
** Obviously huge thanks and kudos to RocketAssistedPuffin!<br />
<br />
== Version 0.763 Supersized Ship Caps==<br />
(Released August 29th, 2018)<br />
<br />
* Fix a bug with the Devourer notifications, a bug with astro train hovertext and a type in Fleetships xml.<br />
<br />
* The Sniper fleetship now gets its damage bonus against ships with 1350 speed and up rather than 1800 and up.<br />
** Thanks to RocketAssistedPuffin for suggesting.<br />
<br />
* The in-game tooltips now clarify that you have to have no cloak points before any cloaking regen will happen.<br />
** Thanks to RocketAssistedPuffin for suggesting.<br />
<br />
* The cloaking points lost by ships should now properly round up instead of down, which should make it 5 shots to decloak instead of 6. Needs to be re-tested, though.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Tractor fields can no longer grab cloaked units. They're considered more of an active ability, whereas gravity fields still slow anything in range.<br />
** If something is already tractored and then cloaks, it will probably stay tractored.<br />
** Thanks to RocketAssistedPuffin for suggesting.<br />
<br />
* Fixed a bug where drones would likely sometimes not get created inside their parents. Wasn't likely happening yet, but could have bit us in the future.<br />
<br />
* Put in a change that should make it so that drones spawn out of their parent with the same mark level as the parent, OR with the max mark of the drone if that is lower than the mark level of the parent. It was supposed to already be doing that, but apparently was not; it now definitely works.<br />
** Thanks to Badger for reporting.<br />
<br />
* Fixed the display of the strength units on the astro train descriptions so that they are of the right visual magnitude. Will need to be tested to be sure it's right, though.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Fixed a bug where the gravity multipliers from turrets were being applied twice, plus having another clamp that was inappropriately lowering things.<br />
** Also made it so that there is now a cap on how slow ships can be knocked from gravity sources that is speed 80 (can be tweaked in external constants with min_move_speed_for_mobile). Engine stun can of course make them slower than that.<br />
** Thanks to Badger for reporting.<br />
<br />
* FINALLY and definitively fixed the screen flashing bug, which was an issue with the scale of gimbals getting massive on death when their squad would zoom off to ArcenPoint.OutOfRange.<br />
** This is now capped so that the icons can't ever get that huge, and you should just see the icon flash big in the center of your screen if it were to have the issue now (from some other source of the squad zooming off inappropriately).<br />
** But more importantly, we also fixed the underlying issue with the squads zooming off out of range. This was probably the culprit in some other cases, too.<br />
** Thanks to Badger for a savegame where we could recreate this 100% of the time, and thus were able to hunt it down. And thanks to Ovalcircle, HeartHunter7, RocketAssistedPuffin, and others for reporting the issue.<br />
<br />
* Fixed an exception that could happen on astro train notifications.<br />
** Thanks to Ovalcircle for the save.<br />
<br />
* Fixed some exceptions that could happen in the ships sidebar.<br />
** Thanks to Ovalcircle for the save.<br />
<br />
* Fixed some exceptions that could happen in the escape menu, thus preventing saving.<br />
** Also fixed it so that any future exceptions there can't absolutely halt the game, and will give us better debugging info.<br />
** Thanks to Ovalcircle for the save.<br />
<br />
* When ships cloak, no longer show an Explosion. The ships weren't blowing up, it was just playing the explosion animation<br />
** Thanks to RocketAssistedPuffin for the bug report<br />
<br />
* Don't show galaxy map link colours during the game lobby<br />
** Thanks to RocketAssistedPuffin for reporting<br />
<br />
* Put in some protection logic for preventing nullrefs in UpdateSquadStatusFromEntity, and code that will give us a better idea where the nullrefs are if we didn't get them.<br />
** Same for UpdateEntitiesShownAtPlanetInternal on galaxy map planets.<br />
** Thanks to Badger for reporting.<br />
<br />
* Carrier starships can now build far more drones, and build them faster at each mark level the carrier goes up.<br />
** The astro train carrier also builds more drones now, and the non-carrier-style astro train no longer tries to build drones.<br />
** The marauder outposts also now build drones faster at higher mark levels.<br />
<br />
* Allow the Nanocaust to still find targets after the AI king is dead<br />
** Bug report by HeartHunter<br />
<br />
* Fixed it so that now the human home command stations in the REAL GAME actually spawn away from wormholes. In the prior release's update, we only corrected that for the tutorial map generation!<br />
** Thanks to RocketAssistedPuffin for reporting and providing detailed saves.<br />
<br />
* Fixed a bug where cloaking points would actually regenerate even while the ship was not fully decloaked yet.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* The wording on the Raptor special spawn-camping ability is now more clear.<br />
** Thanks to HeartHunter7 for suggesting.<br />
<br />
* Wormholes can now spawn between 25% and 75% of the way to the outside of the gravity well, rather than 30% to 90% of the way to the outside.<br />
** This prevents issues with scouts that want to run to the outside of the gravity well upon entering a planet not being able to get very far, and it also makes travel distances between planets slightly smaller on average.<br />
** Thanks to RabidSanity for reporting.<br />
<br />
* When entities have attack orders, hovering over them will now show what they are set to attack in the tooltip. If they are just auto-firing, it won't show anything, though.<br />
<br />
* If a ship is autotargeting other ships, you can now see what it's doing in the tooltip hovering over it. Up to two of the ships it is targeting.<br />
<br />
* Add some new optional XML fields for Mercenary groups: primary_strength_aip_multiplier, secondary_strength_aip_multiplier and tertiary_strength_aip_multiplier. So if you define (say) a group to summon 500 primary strength with a 10 AIP multiplier then you get 500 + currentAIP * 10. This allows summoned mercenaries to be scale as the game goes on. Otherwise it's very hard to make Mercenaries useful in the late game but not ridiculously strong in the early/mid game. If you are balancing your own Mercenary company, I would suggest putting more of the strength budget into the AIP multiplier.<br />
** Added in particular for the fastest puffin in the west, since noone else has assumed the mantle of Mercenary Maker<br />
<br />
* As sometimes happens with multithreading issues, we're not really sure WHY this was happening, but we know that it was and we're pretty positive we fixed it.<br />
** Basically, ships could wind up being told to autotarget ships that were on the wrong planet, and then would shoot at them. This led to many odd behaviors, as well as a lot of wasted CPU.<br />
** This may have mostly been from ships moving between planets, it's hard to say; in those instances, it now recognizes the disconnect and simply stops targeting the ship that's now on another planet. This is a valid case that gets done away with.<br />
** The other issues may have been some cross-thread mixing of array data somehow, and we've simply rearranged the code some to try to prevent that sort of thing. That seems to have worked, although we weren't super successful actually catching it in the act anyway. At least it's easier to read, now, either way.<br />
** We're also no longer persisting ship autotargeting data to disk, although we are still persisting it across network syncs (of course). This should make savegames a slight bit smaller in some cases.<br />
** Anyhow, this may have been one performance issue in certain long-running savegames, we're not sure. It's an improvement, either way.<br />
** Thanks to Ovalcircle for reporting and for the super useful savegame that let us constantly repro this.<br />
<br />
=== Balance ===<br />
<br />
* A TON of balance work has been done, making ships in general do about 10x less damage than they did before... except for a lot of the fleetships, which were already a lot lower than the larger ships. These now do something like half or two thirds of what they did before, or in a few cases very close to what they did before.<br />
** Overall the idea is that battles should actually last more than an instant now, and in particular the Tesla Turrets have been heavily nerfed so that they don't eat everything.<br />
** This is probably an appropriate range for ships in terms of how fast they kill fleetships, but it may be that starships and other large structures now last too long. Not really sure, we'll see. Hopefully the game doesn't become too slow-feeling from this, but rather just slow-feeling in spots that we can correct.<br />
** This may have even further marginalized snipers, it's hard to say. If anyone wants to fiddle with their balance, please feel free to tell us what you find.<br />
** Thanks to Badger, HeartHunter7, and RocketAssistedPuffin for various reports leading to these changes.<br />
<br />
* The squad caps for all of the player fleetships have been tripled.<br />
** This doesn't affect the AI at all, or other factions, but it gives the player a LOT more to work with in terms of churning out lots of ships that cost metal and can do damage, etc. It should make progress far easier to make than before, even with the lowered damage amounts on ships. Players just had too few ships, period, before.<br />
<br />
* Player ships will no longer downgrade themselves to the "current" mark level of the player's ships if somehow the player has a higher-mark version of them.<br />
** This is particularly relevant for drones that are spawned, but also for zombies, etc. This changes a lot in terms of power on the player side (doesn't affect AIs or other factions, since they don't use this logic anyway).<br />
** Thanks to Badger for reporting and for the save.<br />
<br />
=== No More Savegame Breaking For Now ===<br />
<br />
* When deserializing a world fails, it now gives a better error message, and also makes sure to clean out WorldDeserializingErrors.txt before writing to it.<br />
<br />
* Added a new LookupSwap feature to our core engine, which lets us change the names of game entities without breaking old worlds... so long as an entry is made in the LookupSwaps folder for them.<br />
** The xml files are stored in GameData\Configuration\LookupSwaps.<br />
** An entry for renaming a GameEntity might look like this:<br />
*** <swap name="Fortified TeslaTurret" new_name="FortifiedTeslaTurret" /><br />
** If you rename an entity, then all its systems also need to have swap entries that rename the entity-based parts of their name, like so:<br />
*** <swap name="Fortified TeslaTurret_TeslaCoil" new_name="FortifiedTeslaTurret_TeslaCoil" /><br />
** And hooray, now we're no longer locked into specific xml entry names if we have typos or in general want to rename ships!<br />
** Because of this addition, at this point we are probably not going to break savegames anymore after all. Certainly not casually. Too many good savegames for testing and bug repros have been coming in, anyway!<br />
<br />
== Version 0.762 Spreadshot ==<br />
(Released August 28th, 2018)<br />
<br />
* '''Savegames should be okay in this one, actually. We just were working on bugs and balance.'''<br />
<br />
* Fix a null reference when enabling auto-kite. <br />
** Thanks to HeartHunter and rocket assisted puffin for the bug reports.<br />
<br />
* Finally give the user some feedback when they win the game. It's not great feedback, but it's something, and the game now plays the Victory music. There are still some issues with this, for example the "You Won the Game" text in the resource bar scrolls off the edge of the screen.<br />
** A lot of people have complained about this one<br />
<br />
* The game now properly takes into consideration damage reductions based on ships being further away from their targets when there is an incoming damage modifier of that (such as the fortified tesla turrets, etc).<br />
** Previously, ships would just sit outside the range and not actually shoot at them, but that should no longer happen.<br />
** Thanks to Zharmad for reporting.<br />
<br />
* Now the game will complain about various types of AttackDistance based damage modifiers if they are set up in a way that will bork the AI or make for targeting paradoxes. Nothing was actually set up that way, previously, but it's just future-proofing for modders (and ourselves if we forget).<br />
<br />
* Fixed a bug with incorrect overkill detection against squad-based ships since the start of the era of discovery.<br />
<br />
* Fixed some lack of clarity with a few variable names that are shot-specific but could be confused as being more generalized. Target is now Target_IfIAmAShot and so on.<br />
<br />
* Added post-deserialization logic tree that drives all the way down to entity orders, thus letting us belatedly link up some things.<br />
<br />
* The game now keeps track of the amount of attacker damage incoming for a given entity, rather than the count of attackers.<br />
** This is now used in order to prevent massively overkilling targets, and is now used in place of the "even out attackers" logic to make it so that it's "even out damage" instead. Or in the case of priorities, evening out the damage after choosing not to overkill.<br />
** It does this in a rolling fashion that won't let stale data in there.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* AI update: the AI ships will no longer retreat if there's a king unit present on the planet they are attacking unless they are outnumbered like 20:1. This makes them much more persistent at winning the game if they're not after you with overwhelming force at the time.<br />
<br />
* Show current Hull/Shield values in the tooltip, not always the max hull/shields. Otherwise you had to try to calculate what (say) 35% of 40K is in your head quickly, which isn't much fun.<br />
<br />
* Fixed a bug where it would throw an xml exception on load anytime we adjusted the default_should_override_saved_if_older_than_version on keybindings.<br />
** Thanks to Ovalcircle, Badger, RocketAssistedPuffin, and windgen for reporting.<br />
<br />
* Altered the game to use Ctrl+Num instead of Shift+Num for setting control groups. Aka to be like every other RTS, including AIWC.<br />
** Thanks to chemical_art, Draco18s, Badger, and zeusalmighty for suggesting.<br />
<br />
* Fixed up the tooltip for the control groups button in the dock so that it tells you the correct keybinding to use even if you've rebound the keys.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Fixed a bug where queue-based ship production was being limited by whether or not the planet of the dock/constructor was hostile or not. It would prevent mobile docks from building stuff on enemy planets, for instance.<br />
** Thanks to zharmad for reporting.<br />
<br />
* Selecting a hacker will now open the Hacking Menu instead of the Science menu<br />
<br />
* Fixed a bug where all ships (yours and the AIs) were mistakenly able to target each other even when they were cloaked, thus leading to ships chasing cloaked ships. Now they can't target them, and lose target on them if they already had targeting on them.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Fixed the selection ring scale for all the various Arks to be what they were pre-pivot. It was woefully undersized in the current version, leading to them being very hard to select.<br />
** That is what the size_scale attribute does, if anyone else is seeing ones they want to tweak further.<br />
<br />
* Added a constructor name and description for Gyrn.<br />
** Also made the constructor names for the other constructors more brief.<br />
<br />
* Any ships that have the ability to build via build menus now show up as constructors that will make them appear on the sidebar.<br />
** Thanks to RocketAssistedPuffin for reporting the need for this.<br />
<br />
* Fixed the BuildingShipsInternally metal_flow to be properly on the actual entity definition for Gyrn, rather than accidentally under its weapon system. This had been preventing it from working properly, previously, as well.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* When hovering over a constructor in the docks menu, it now shows you the BuildingShipsInternally speed in metal per second there, too.<br />
<br />
* When the throughput of BuildingShipsInternally is missing or less than 0, the sidebar now skips showing you what would otherwise be a builder (useful for those things that become builders at higher marks, like Gyrn).<br />
<br />
* Fixed a bug where pausing construction queues gave a message saying it was re-enabling the queue.<br />
<br />
* Fixed the spacing of the second column in the tooltips so that shields values larger than 9 million can show without overlapping Armor. Also gave a bit of extra room for the hull column.<br />
<br />
* Fixed a bug where you could drive yourself into negative metal using matter converters.<br />
** Thanks to RocketAssistedPuffin for inadvertently showing us his sneakiness on this. ;)<br />
<br />
* Matter converters now stop producing energy while your stored metal is zero.<br />
** This is true for any ships that have a negative metal production.<br />
** It also now shows the icon background for it having a problem on its gimbal when this is the case.<br />
<br />
* When a ship is disabled, the reason for that is now shown in red at the bottom of its tooltip; before it wasn't always clear why it was disabled.<br />
<br />
* Put in better debugging for any sort of modder command errors that might pop up, and also made it so that they won't execute over and over.<br />
** Note that this hasn't actually solved the core issue yet, but it will help us find it next release.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* Raid Starships (human and AI) now use Fusion Bolts instead of Plasma Bolts for their weapon. This is giving them a bomber-like ability to bypass the personal shields of enemies, making them actually good at what their name states they are for.<br />
** There are still more changes needed for the raid starships and many other ships; those are a work in progress. But this is a step in the right direction.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Tachyon Sentinels now have vastly less hull health and a bit less personal shielding. Bombers and raid starships and similar will take them out quite fast now, but other ships will still take a while (not SO long, though).<br />
** Thanks to zeusalmighty for suggesting.<br />
<br />
* Wormhole Sentinel range cut from 12000 to 3200 to better match what its description says.<br />
** Thanks to RabidSanity for reporting.<br />
<br />
* MLRS Turrets, Corvettes, and Guard Posts have all had their base damage reduced quite a bit, to make them not so overwhelming.<br />
** The descriptions on the turret and guard post now match that of the corvette, and they also now have the picking-off-stragglers bonus ability.<br />
** Thanks to RocketAssistedPuffin for reporting the balance issue with corvettes.<br />
<br />
== Version 0.761 A Badger And A Puffin ==<br />
(Released August 27th, 2018)<br />
<br />
* '''All savegames are going to be broken in this one, too, just a warning!'''<br />
** '''We're just going through a very change-heavy period in the short term. Thanks for bearing with us!'''<br />
<br />
* Turn the Control Group Rally green when active<br />
<br />
* Some minor tweaks to the tutorial<br />
** Thanks to RocketAssistedPuffin and RustyBucket for the suggestions<br />
<br />
* Enable auto-kite, or something like it. This is available as a Setting<br />
** Add new "Kite Master" fleet type to both Hunter and Warden fleet. Their units will auto-kite against you<br />
<br />
* Using the "select build tab" (B key) no longer selects all the builders, since there's no reason to do that. Same with the tech and hacking tabs.<br />
<br />
* Units that cannot move can no longer be engine-stunned, and units that have no weapons can no longer be reload-slowed. These cluttered up the UI as well as making for useless work on the CPU (though a trivial amount).<br />
<br />
=== Bugfixes ===<br />
<br />
* Don't allow Hacking Points to be obtained from an AI planet<br />
** Thanks to RocketAssistedPuffin for reporting<br />
<br />
* Fix a bug with Dark Spire Vengeance Strike notifications<br />
** I think Puffin mentioned it?<br />
<br />
* Human Command Station Home Cores no longer spawn automatically, to avoid confusion. We'll later make a "do you want to continue" dialog that lets you spawn one on a planet of your choice that is player-controlled or neutral, or formerly your planet.<br />
<br />
* Shield Generators are now buildable<br />
** Thanks to RocketAsssistedPuffin for contributing this fix<br />
<br />
* Fix a bug where units could heal to > 100% health<br />
** Thanks to RabidSanity for reporting<br />
<br />
* Fix a bug where endless reconquest waves were spawning.<br />
** Thanks to Ovalcircle (and possibly others) for reporting<br />
<br />
* Hacking points used against this faction is now tracked in the Faction object, since minor factions can also be hacked<br />
<br />
* Fix a number of bugs in the reconquest wave code.<br />
** Prevent truly enormous reconquest waves from spawning, due to a bug where each reconquest wave was never clearing the previous budget<br />
** Fix an exploit where the player could deliberately leave a low-mark planet undefended, let the AI reconquer it, then clear out the planet again. When done repeatedly this could deplete the AI's reconquest budget. Now put a cap on how frequently the AI will try to recapture a given planet (no more than once every 10 minutes).<br />
*** Thanks to a number of people for reporting this.<br />
<br />
* Make nannocaust hacking cost hacking points<br />
** Thanks to RocketAssistedPuffin for observing<br />
<br />
* Don't show two raid starships in the Tech menu anymore<br />
** Thanks to RocketAssistedPuffin for reporting<br />
<br />
* The Ark can now be upgraded, as can your metal generators.<br />
** Thanks to RocketAssistedPuffin for doing all the work/sleuthing for Ark upgrades<br />
<br />
* The AI can now actually build its Raid Starships. Previously it had a built_by of the human starships bag, but it needs to be in a built_by that the AI uses (in this case BasicGuardianDrawBag). Not all AI ships have to be in a built_by category, but if they aren't directly pulled by either that or by "tags," then they won't ever appear.<br />
<br />
* Adjusted the ModderCommand game code to take a string instead of an integer/enum, because that's the only way that modders can add things to the game truly obliviously of one another. Before the system was going to make them share a central enum, but that would have led to an inability to compile when there are multiple complex mods, and them having to use our same central DLLs. The strings approach is great so long as something that is suitably unique is used, and so long as modders don't make any frequent commands have absurdly long strings.<br />
<br />
* If the assistance range is blank on an entity that has a metal flow set up that needs an assistance range, it now throws an error on startup so that the modder or developer knows they forgot that bit.<br />
<br />
* The visuals for AOE effects like lightning attacks should now scale up properly to actually match the scale that is being used in-game. Been meaning to do this for a long time.<br />
** Have not been able to test this yet, though, so if it's wonky please let us know.<br />
<br />
* If the AOE size of something that detonates immediately is smaller than the firing range of the same unit, then it will now complain on startup so that you know to fix this, because it leads to strange results.<br />
** Thanks to RocketAssistedPuffin and Ovalcircle how useless the Lightning units were when those values were incorrect.<br />
<br />
* Fixed some ships that were supposedly able to claim neutrals but really were not; now they don't even pretend they can.<br />
<br />
* Fixed a bug where only things that were specified as NOT being able to be built on enemy planets could be built there; whoops.<br />
** Thanks to RocketAssistedPuffin, Ovalcircle, and HeartHunter7 for reporting.<br />
<br />
* Put in a fix that definitely prevents the sudden migration of wormholes when you swap between planets, and which might prevent the same with turrets and similar immobile ships.<br />
** However, if you still see ship icons moving unexpectedly around, a savegame and repro case would be very welcome.<br />
** Thanks to HeartHunter7, Badger, Ovalcircle, and RocketAssistedPuffin for reports.<br />
<br />
* Give Carrier Starships drones to spawn again. Currently they get V-Wings and Fusion Bomber drones<br />
<br />
* Previously, the cloaking system was not explained on ships! Now it explains it like any other system, and shows how many cloaking points it has, etc.<br />
** Thanks to TheVampire100 for reporting.<br />
<br />
=== Balance ===<br />
<br />
* Balance pass: Nerf fleetship damage to give turrets/Starships a stronger differentiation. Significant nerfs to MLRSs. Buffs to Starship damage.<br />
** Thanks to a number of people for tipping me off about various OP units, including (but not limited to) RocketAssistedPuffin, Zeusalmighty, ovalcircle, zharmad, TheVampire100, and others whose names have doubtless escaped me<br />
<br />
* Nerf the armor penetration of Concussion Corvetters to be more effective against fleetships than guardians. May need further nerfs<br />
** Thanks to Zharmad for pointing this out<br />
<br />
* Make more Dark Spire ships spawn on an attack<br />
** Thanks to someone on Discord for pointing out that Dark Spire was boring.<br />
<br />
* The human home command station now gives 50k energy instead of 30k, to make energy less tight at the start of the game. Please let us know if it's still too tight.<br />
** Thanks to Vinco for suggesting.<br />
<br />
* Give the Dyson Sphere its own unique units, and redo the spawning logic<br />
** The Dyson Sphere now has 4 units. 2 Fleetships, the Sentinel and Defender (unlocked at all intensities). 1 Medium starship, the Bulwark (intensity > 4), and 1 Large starship, the Bastion (intensity > 7).<br />
** The spawning logic is more similar to AIWC, where it just will throw units out when it has the resources to do so.<br />
** Almost certainly needs some balance<br />
<br />
* Give Scout Starships cloaking again<br />
** Thanks to Mcloshiv for the bug report<br />
<br />
* Give the Rorqual Hegira bubble shields<br />
** Thanks to RocketAsssitedPuffin for the bug report<br />
<br />
* New logic has been introduced into map generation that now keeps the human home command station much further away from wormholes if at all possible.<br />
** Thanks to Vinco for suggesting.<br />
<br />
* Engineers now have about 5x as much repair speed as before, and same on construction-speed-boost.<br />
** Additionally, the range from which they and rebuilders can do their work has increased over 5x.<br />
** Also, both engineers and rebuilders now have about 1.5x as much move speed.<br />
** Rebuilders are also now able to increase in mark level, like the engineers do.<br />
** And lastly, starting at mark 3, engineers and rebuilders now gain cloaking, making them a lot more buff. The question is... is it worth that science cost to you?<br />
** Thanks to Mckloshiv for all these suggestions.<br />
<br />
* Fixed the Orchid Ark's assistance range being set to 0, and thus it not working at allo for assistance purposes.<br />
** Also triple the speed at which the orchid does its repairs and whatnot, which makes it the equivalent of a mark 4 engineer now on mark 1 of the orchid.<br />
** Thanks to RocketAssistedPuffin for suggesting.<br />
<br />
* The assist range of the mobile space dock and merc engineers have been increased.<br />
<br />
* Marauder outposts no longer pretend that they can repair the engines of friendlies (they never could).<br />
<br />
* All of the ships with tesla coils now have a smaller range of 2800, but a much larger AOE range of 2800 instead of the prior 500. Now when they fire, they should actually hit their targets.<br />
** Thanks to Ovalcircle and RocketAssistedPuffin for reporting.<br />
<br />
* Ships are now allowed to have zero multipliers on their damage modifiers; making them entirely immune to damage under certain conditions, for instance.<br />
<br />
* Dark Spire Eidolon now also has the weapon jammer ability on its tesla coil.<br />
<br />
* Military Command Stations of the player now have missile launchers.<br />
** Thanks to TheVampire100 for suggesting.<br />
<br />
=== Ships Reinvented ===<br />
<br />
* Lightning Guardian is now the Fortified Tesla Guardian.<br />
** Close range brawler that prevents enemies from hitting it if they are out of its range.<br />
** Basically it has what used to be called Radar Dampening.<br />
<br />
* Lightning Turret is now the Fortified Tesla Turret.<br />
** Very short range AOE blast, but protected against attacks from outside its range.<br />
** Exact same thing as the guardian.<br />
<br />
* Lightning Corvette is now the Inhibiting Tesla Corvette.<br />
** Crowd control meets fire suppression.<br />
** It has the new Weapon Jammer ability, with 8 seconds at mark 1 and +2 seconds per mark higher, on ships with armor of less than 101mm.<br />
<br />
* Sniper Turrets are now Tritium Sniper Turrets.<br />
** Designed to obliterate ships with low radiation shielding from any distance.<br />
** These have a pathetic base damage, but then a major multiplier against anything with an albedo of at most 0.3.<br />
** Thanks to TheVampire100 for inspiring this change.<br />
<br />
* Sniper Starship has become the Tritium Sniper Starship.<br />
** Designed to obliterate ships with low radiation shielding from any distance.<br />
** These have poor base damage, but then a major multiplier against anything with an albedo of at most 0.3.<br />
** These ALSO now have a secondary ballistic cannon, which is on the weak side for a starship but good for giving it some close-in protection.<br />
** Thanks to TheVampire100 for inspiring this change.<br />
<br />
* Sniper Guardian has become the Tritium Sniper Guardian.<br />
** Designed to obliterate ships with low radiation shielding from any distance.<br />
** These have poor base damage, but then a major multiplier against anything with an albedo of at most 0.3.<br />
** These ALSO now have a secondary missile launcher, which is on the weak side for a starship but good for giving it some close-in protection.<br />
** Thanks to TheVampire100 for inspiring this change.<br />
<br />
* Scout Starships are now Sentry Starships.<br />
** Provides scout-style intel, and plays a massive role in hunting down cloaked enemies.<br />
** The tachyon fields these generate is now 10x larger than it was before.<br />
** These also now have a ship cap 3x larger than before.<br />
** Their speed was a bit on the high side, though, and has been cut down to a bit more than half of what it was before.<br />
** These have been renamed to reflect the fact that they're really much more than just scouts at this point, and occupy the main decloaking role.<br />
** Thanks to zharmad for suggesting.<br />
<br />
== Version 0.760 Only The Start of Discovery ==<br />
(Released August 24th, 2018)<br />
<br />
* '''All savegames are unfortunately broken because of the extreme number of changes that have been made to the structure of the game.'''<br />
** '''With a lot of the changes, old savegames would not have made much sense anymore, anyway. Goodness we will stop doing this at some point before Early Access!'''<br />
<br />
* Exogalactic Strikeforces have been redone to make them closer to AIWC style Exos. The budget for an Exo is now split across Fleetships, Guardians or ExoLeaders (giant scary units).<br />
** Exos no longer stack all their units on top of eachother<br />
** Broken Golem Exo Strikeforces now start much weaker<br />
<br />
* Add Shark options for the AI. Shark Options give the AI a bonus when they take one of your command stations (only the AI, not any other faction), so once you start losing the AI is much more able to finish the job.<br />
** Shark A grants AIP to the AI when they kill a command station<br />
** Shark B grants the Hunter Fleet reinforcements on command station death.<br />
<br />
* Nerfs to the Dark Spire to prevent the Dark Spire from casually conquering the galaxy under the right (wrong?) circumstances<br />
<br />
* Added 232 new planet names, mostly from older science fiction literature.<br />
** Removed two planet name duplicates that we had, now leading us to a total of 713 possible planet names.<br />
<br />
* Realistic and Simple map types now have their planets a bit more spread out.<br />
<br />
* Base-Oriented Warden Fleets are now constrained to camp at a Warden Fleet Base and to get reinforcements at a Warden Fleet Base. So if you can destroy nearby Bases then they will have to come from further away to fight you.<br />
<br />
* Marauders that are allied to any particular faction (ie player allied or ai allied) are no longer allowed to build Mark 3 outposts (and thus Raiders) on planets owned by their allies. So for player-allied marauders, if you want to help the Marauders build a fleet then it will require you to take more planets (and thus have higher AIP).<br />
** Taking a planet with Mark 3 outposts will downgrade those outposts to Mark 2.<br />
<br />
* If you have unit remains on a planet without enemy units, allow them to be repaired immediately.<br />
** Thanks to HeartHunter7 for the suggestion.<br />
<br />
* A few balance taps for Devourer, Nanocaust, Macrophage, and Dyson Sphere to make them at least marginally usable right now. Nothing disappoints like watching the Devourer die in 40 seconds.<br />
** Much more work will need to be done, but these aren't obviously broken out of the box now.<br />
<br />
* Reconquest waves only get launched if they are strong enough to capture their target. So if there are lots of weakly/undefended planets, the AI will rapidly launch a series of strikes to take the planets back. If you are turtling and all your planets are heavily defended, the AI will save up until it thinks it can break your defenses.<br />
<br />
* Dark Spire Vengeance Generators can now be hacked to cause a Vengeance Strike (wherein every Vengeance Generator in the galaxy will simultaneously attack). So if you want to cause chaos in the galaxy, this is a good way to do so.<br />
<br />
=== Tutorial ===<br />
<br />
* The tutorial works again. It's not complete for all features, but it's functional!<br />
<br />
=== Objectives Tab ===<br />
<br />
* There is finally an objectives display again! Though it's not as complete as it was before, we're going to be adding to that soon.<br />
<br />
* New core data has been added to the game regarding objective categories, and then objective generators.<br />
** This is all data-driven, and lets us as well as modders add custom objectives into the game that will be seen by players as context dicatates.<br />
** Essentially this lets us keep our complete freedom of how to define objectives using as complex and arbitrary of code as we like, but then also makes it no longer tightly-coupled to our central codebase.<br />
** The new setup is a lot like the map types, essentially.<br />
<br />
* The objectives tab now tells you about the following things, in categories:<br />
** PrimeObjectives<br />
*** Destroy Known AI Kings<br />
*** Find Undiscovered AI Kings<br />
*** Scout unexplored planets<br />
** Critical Capturables<br />
** Critical Destructibles<br />
*** Explore Galaxy To Find Instigator Bases<br />
*** Destroy Instigator Base on [planet]<br />
** Resources<br />
*** Collect Science on [planet with science you can collect]<br />
** Beginner Tips<br />
*** Capture a few early planets for resources (if you have < 3 planets)<br />
*** Defend [planet] from Waves (for each planet with an adjacent Warp Gate)<br />
*** Instructions on Gate Raiding (if you have >= 3 planets with adjacent Warp Gates)<br />
*** Spend Science (if you have > 8K science)<br />
** New Fleetships<br />
** New Starships<br />
** Golems For Capture<br />
*** Explore Galaxy To Find Broken Golems<br />
*** Repair Broken Golem on [planet]<br />
** Mercenary Beacons<br />
*** Explore Galaxy To Find Mercenary Bases<br />
*** Contact Mercenary Beacon on [planet]<br />
** Other Factions<br />
*** Find Nanocaust<br />
*** Destroy Nanocaust Hive on [planet]<br />
*** Fight Nanocaust Invasion<br />
*** Explore Galaxy To Find Lost Spire Frigate<br />
*** Rescue Lost Spire Frigate on [planet]<br />
*** Explore Galaxy To Find Dyson Spheres<br />
*** Free Dyson Sphere on [planet]<br />
** Other Capturables<br />
*** Explore Galaxy To Find Risk Analyzers<br />
*** Handle Risk Analyzer on [planet]<br />
*** Capture Zenith Power Generator on [planet]<br />
*** Reclaim Ark on [planet]<br />
** Other Destructibles<br />
*** Explore Galaxy To Find Astro Train Depots<br />
*** Destroy Astro Train Depot on [planet]<br />
*** Sensor Scramblers<br />
** With every objective, and category, it gives you advice on how to proceed in a generalized fashion as well as potentially some tips for your specific circumstances.<br />
<br />
=== An Entirely New System of Units of Measurement ===<br />
<br />
* A new system of units of measurement for statistics on every craft has been created: https://wiki.arcengames.com/index.php?title=AI_War_2:_Units_of_Measurement<br />
** As a player, you don't even need to read that page, nor do you need to understand each unit of measurement.<br />
** However, as a modder or developer it helps you to come up with appropriate values for each field for each ship so that they will behave as expected in-game.<br />
** For our more science-minded players, this page also provides a handy reference with real-world numbers behind it that properly addresses any lore questions that would otherwise be glossed over or seem inconsistent if you didn't know that the mass scale was logarithmic, for example.<br />
<br />
=== Revised Mechanics ===<br />
<br />
* Implemented the new "8 main physical stats" for all ships: https://wiki.arcengames.com/index.php?title=AI_War_2:_Units_of_Measurement<br />
** Balance on these is preliminary at best, right now.<br />
** These are not actually utilized super heavily by the game mechanics yet, since a lot of the new game mechanics are not yet in place to take advantage of these.<br />
** Main new ones all over the place are armor, engine, albedo, and mass.<br />
<br />
* Created new wiki pages to explain:<br />
** The way special mechanics are supposed to work: https://wiki.arcengames.com/index.php?title=AI_War_2:_Modding_Special_Mechanics<br />
** The way to mod/develop them: https://wiki.arcengames.com/index.php?title=AI_War_2:_Special_Mechanics<br />
** How to mod sub-nodes of entities, as a related topic: https://wiki.arcengames.com/index.php?title=AI_War_2:_Modding_Sub-Nodes_Of_Entities<br />
<br />
* Cloaking and tachyon mechanics have been revised in a new way that is very similar to what was in the game last version, but a little more refined and using the new physical stats.<br />
** Completely untested, so far.<br />
<br />
* Tractor beam mechanics have been revised in a new way that is very similar to what was in the game last version, but using the new physical stats.<br />
** Completely untested, so far.<br />
<br />
* Gravity field mechanics have been revised in a new way that is very similar to what was in the game last version, but using the new physical stats.<br />
** Completely untested, so far.<br />
<br />
* Bubble forcefields has been revised to be basically identical to what was in the game last version, but using the new physical stats.<br />
** That said, all forcefields now have regen on them.<br />
** Completely untested, so far.<br />
<br />
* Personal shields have been implemented as a major new mechanic, based on the same underlying logic as the bubble forcefields for the most part.<br />
** These have even faster regen on them, making them kind of like shields in The Last Federation.<br />
** Completely untested, so far.<br />
<br />
* Engine stun has been implemented as a completely overhauled concept of what engine damage/health used to be last version and in AIWC.<br />
** The new version uses the physical stats, and is designed to give a more nuanced range of results from engine damage without the game-breaking nature of engine effects that caused so many ships to have infinite engine health in the first game.<br />
** Completely untested, so far.<br />
<br />
* Paralysis has been revised almost completely, as well, with much the same goals and moving it into using the physical attributes, too.<br />
** Completely untested, so far.<br />
<br />
* Ion damage has been absolutely re-concepted from the ground up. The same mechanics can be created, more or less, based on how you set up the xml values for this system. But it's a lot more flexible than before, and less on/off. A lot more weapons other than just the big bad ion cannons might actually want to use this in a different fashion at some point in the future. Mainly secondary weapons, probably.<br />
** Completely untested, so far.<br />
<br />
* The underlying nature of hull health and how it relates to multiple subsquads has been revised.<br />
** This also affects vampirism, self-damage, and repairs to ships to some extent, though fairly mildly on each.<br />
** Mostly untested, thus far.<br />
<br />
* All of the immunity-to-this-and-that attributes have been removed from the game and from all ships, except for one: immune_to_all_damage.<br />
** That one isn't used at the moment, but is useful if we want to create an immortal object for some reason, so it stays.<br />
** All the rest of them are now redundant and handled either by the physical properties of ships, or by special abilities in a few rare cases (passing through forcefields, for example).<br />
<br />
* The concepts of "defense type" (structure, polycrystal, whatever) and of weapon bonuses against specific defense types (bombers get 10x vs structures, etc) are all now gone.<br />
** The physical properties take the place of this, although thus far most of the mechanics that will take full advantage of this are not implemented yet. So in the very short term this got more bland, but we'll be fixing that up asap. One step at a time, though, and the first was getting the data in there and converting all the existing special mechanics to use that data.<br />
<br />
* shield_points are no longer an optional xml attribute of ships, but they can still be zero.<br />
<br />
* Given that the nature of how metal is produced has changed entirely from the last public version to now (before it was not literally taking the amounts from ships, but instead generally basing it off some planet stats), we've had to rebalance metal quite a bit to get it back into the same ballpark it was before. The way that units generate metal, and how much they generate relative to one another, seems about right now, but will need further tuning.<br />
** As an aside, with this change it really makes it so that losing your home human settlement or cryo pods HURTS. A lot of metal production in the early game comes from them, which is by design.<br />
<br />
* Given the huge number of changes in how we're storing damage values (as of the last version of the game, down below, internal release only), we had to make up completely new balance numbers for shot damage.<br />
** A lot of the reason was that when we tried to normalize out the old data (which came from several different sources including some xml and some AIWC spreadsheet values), we got wildly incorrect data because something was up with our algorithm. Balance wasn't exactly super refined before, anyway, and we're changing so many mechanics that it's even less so now, so we just made up new best-first-guess numbers so that ships will kill one another in a reasonable amount of time, but not overly fast or slow. Most battles between two squads of identical units should take about 10 seconds for the smaller ships.<br />
<br />
* The AI Home Command Station is now properly called the AI Overlord.<br />
** The AI Overlord now has a Phase 2 that is mobile that it should spawn immediately on death. This is much like the Avenger plot from AIWC, but it's built in as a core thing here.<br />
<br />
* There is now a Human Home Command Station Core that gets spawned if you lose your home command station, even in single player.<br />
** This is based on the concept from multiplayer in AIWC, but works the same in both games now. It lets you keep playing after you lose, if you wish, but with some penalties.<br />
<br />
* A variety of the civilian ships and docks can now be built on enemy planets, thus making beachheads viable.<br />
** There was previously a bug making EVERYTHING buildable on enemy planets, so it was viable previously anyhow. Since that bug is fixed, if there are any missing things that need to be buildable in enemy territory, please let us know.<br />
<br />
* Hacker unit has been added, finally, under the infrastructure section along with engineers and science labs and the like.<br />
** This lets you gather hacking points, as well as perform hacks against the enemy.<br />
<br />
* Mechanic change: now when a ship has a multi-shot or multi-beam attacks, it cannot focus-fire multiple shots into a single target. Each shot must have a unique target, or else it simply fires fewer shots in that salvo.<br />
** This shift helps make these units stand out more from their single-shot brethren; rather than simply having a fixed amount of DPS that they can optionally divide into multiple targets, they instead have a DPS that is greater when more targets are present. This helps to legitimately establish a more interesting role for these ships.<br />
<br />
* Shots now move dramatically faster, and don't "home in" on targets anymore. A shot that is fired is still going to hit unless the target moves off of the current planet, though.<br />
** As part of this, the visual tails for shots are never quite so over-dramatically long anymore.<br />
** This change is primarily for purposes of making things visually look better, but it definitely does also affect balance as well since it prevents ships from getting off so many salvos before incoming shots hit them. This is also by design.<br />
<br />
* Metabolization has been added as a new ability in the game. This is a lot like the Zenith Reprocessor ability in AIWC.<br />
** If you deal enough metabolic damage to a ship when you're killing it, you get 10% of its metal cost immediately added to your own stores, maximum 5000 per death.<br />
<br />
* A new count_to_spawn_on_death can be paired with spawns_on_death in order to create AIWC-Hydra-style units.<br />
<br />
* Added a new immune_to_all_damage_for_seconds_after_creation tag for entities that allows for them to be completely immune to damage for a while after being created.<br />
** This is now used to give the Human Home Command Station Core a full four minutes of invincibility after your Home Command Station (or another Core) collapses into this.<br />
** This way you have some time to try to get things back on track and to get your command station out of the hot spot it's in, but we don't have to do anything funky in AIWC like moving you automatically to an ally's planet (and in solo play, here, you may well not even have an allied planet of course).<br />
<br />
* A new max_engine_stun_seconds has been added to ship systems, which lets us have engine-slowing ships that make targets slower without outright stopping them.<br />
** This will be used by V-Wings, and is different from what the Spiders do.<br />
<br />
* There is a new Weapon Jammer ability that can be given to ships, which lets them add extra seconds onto the reload speed of ships that they hit.<br />
** The overall maximum extra reload seconds that can be added is 20, but that number can be set to be lower with the max_enemy_weapon_reload_slowing_seconds on the weapon that has this ability (and it probably should be, in general).<br />
** The ability is defined with base_enemy_weapon_reload_slowing_seconds_per_shot and added_enemy_weapon_reload_slowing_seconds_per_shot_per_mark.<br />
** The ability has a further enemy_weapon_reload_slowing_to_armor_mm_less_than field, which makes it only work on enemies with certain armor thicknesses.<br />
<br />
* Added a new Fusion Reaction ability:<br />
** Shots from a weapon with this do X% of their damage directly to the hull of their target, bypassing any personal shields.<br />
** Uses: base_percent_damage_bypasses_personal_shields and added_percent_damage_bypasses_personal_shields_per_mark<br />
<br />
* Mercenary Beacons must be hacked before they can be used<br />
<br />
* A new system has been implemented where you can specify outgoing damage modifiers on weapons, and incoming damage modifiers on ships, using the nodes outgoing_damage_modifier and incoming_damage_modifier, respectively.<br />
** There is a huge amount of flexibility in this system, but if you're modding just do bear in mind that not everything possible makes the most sense.<br />
*** For instance, stacking too many bonuses on ships is probably not a good idea. One, at most, ought to do plenty fine! Not everything even needs one! It's a matter of whether or not we can increase the interest of a ship's role with this, not whether we can make yet more stuff to read and more mental gymnastics for the player using them.<br />
*** Also of note, it's possible to have both penalties and bonuses that you put on these. People tend not to like penalties unless it's on an enemy target, it's a psychological thing, so avoiding that when possible is a good idea. Trying to keep outgoing multipliers > 1 and incoming multipliers < 1 means bonuses.<br />
*** There are a variety of things you can check on the incoming damage side that simply make no sense to be there. Why would we care how far much armor the attacker has, for instance? Mostly these stats should be used for outgoing damage, partly for this reason, but also just because it's easier to keep track of.<br />
** Criteria that can be checked using the based_on xml attribute:<br />
*** MaxHull: how much max hull health the defender(outgoing)/attacker(incoming) has<br />
*** CurrentHullPercentage: what percentage (0-100 as integer) hull health the defender(outgoing)/attacker(incoming) has<br />
*** MaxPersonalShield: how many max shield points the defender(outgoing)/attacker(incoming) has, but it reads as 0 if it's a bubble forcefield<br />
*** CurrentPersonalShieldPercentage: what percentage (0-100 as integer) shield points the defender(outgoing)/attacker(incoming) has, but it reads as 0 if it's a bubble forcefield or there are no personal shields<br />
*** AttackDistance: how far apart the attacker and target are at the time of shot impact<br />
*** CurrentSpeedIfMoving: current speed of the defender(outgoing)/attacker(incoming), or 0 if not moving<br />
*** Armor_mm: armor of the defender(outgoing)/attacker(incoming)<br />
*** EnergyUsage: energy consumption of the defender(outgoing)/attacker(incoming)<br />
*** Albedo: albedo of the defender(outgoing)/attacker(incoming)<br />
*** Mass_tX: mass of the defender(outgoing)/attacker(incoming)<br />
*** Engine_gx: engine strength of the defender(outgoing)/attacker(incoming)<br />
*** TimeAtPlanet: how long the defender(outgoing)/attacker(incoming) has been at this planet.<br />
** They can be compared based on the comparison_type xml attribute:<br />
*** LessThan is just <<br />
*** GreaterThan is just ><br />
*** AtMost is a nicer way of saying <=<br />
*** AtLeast is a nicer way of saying >=<br />
** The damage multiplier can be applied selectively using the applies_to xml attribute:<br />
*** Everything: the default, and it's just how much damage is sent over in general.<br />
*** HullOnly gives no bonus against shields of any sort, just against the hull<br />
*** PersonalShieldOnly: gives a bonus against personal shields only, not bubble forcefields or hulls.<br />
*** AllShields: gives a bonus against personal shields and bubble forcefields.<br />
** You provide a floating-point comparison number in the xml attribute compared_to:<br />
*** This is the thing that you're comparing, for example, the max hull points of the target against.<br />
*** If the [based_on] value from the ship being examined does not pass the [comparison_type] check against that number, then it applies no damage modifier here, basically.<br />
** And lastly, the "multiplier" float xml attribute states what the actual damage multiplier should be, assuming that the checks passed.<br />
*** There is also an added_multiplier_per_mark attribute that lets you increase or decrease that multiplier per mark level.<br />
<br />
=== Revised Ships ===<br />
<br />
* Bombers are now Fusion Bombers, with the following description:<br />
** Unique to the forces of humanity, fusion bombers are excellent at damaging targets with low hull health and high personal shields. This usually means structures.<br />
** They now start out with 60% of their damage bypassing personal shields, and that number goes up by 5% per mark level of the bombers.<br />
<br />
* All of the other bomber-like ships, including the Nanocaust Anomaly, have also been updated to use the fusion reaction ability.<br />
** This may well be swapped around in the future, but it fits for now.<br />
<br />
* Fighters are now V-Wings, with the following description:<br />
** V-Wings are a fighter-type ship particulary equipped for screening longer-ranged forces from incoming hostiles, thanks to their engine-slowing ability.<br />
<br />
* Missile Corvettes have been turned into Concussion Corvettes, with the following description:<br />
** Specialists at wrecking thin armor, but extremely poor against higher-armor ships.<br />
** Note that these do not remotely form a "core triangle" anymore, unlike in the prior versions or in AIWC. These, Fusion Bombers, and V-Wings are all now human-only anyhow, so it's a matter of how they handle their workloads and not how they fight one another.<br />
<br />
* Raptors have been updated so that they now have a bonus against ships that have been on the current planet for at most 8 seconds, making them excellent wormhole campers.<br />
<br />
* Snipers have been updated so that they have a massive bonus against fast-moving targets that are actively moving.<br />
<br />
* Laser Gatlings are now Ablative Gatlings, with the following description:<br />
** Incredibly dangerous against high-albedo ships, using their own absorptive power against them.<br />
<br />
* MLRS Corvettes now also have a bonus against ships with less than 20% of their hull health remaining, making them excellent for picking off stragglers as well as crowd control.<br />
<br />
* Infiltrators have now become Agravic Pods, with the following description:<br />
** Ridiculously dangerous against ships with high-powered engines. Use to shore up locations where such ships can otherwise slip past gravity and tractor fields.<br />
<br />
=== Ship Icon "Gimbal" Updates ===<br />
<br />
* Ships now show little circles around themselves when they are selected, making them FINALLY actually visible on the icons when you select them. This is, ironically, how AIWC did it.<br />
<br />
* All of the various "flair" statuses for things like attack-move, defend, etc are now little backdrops behind the ship icon instead of strange tags above them.<br />
** This is a lot more attractive and more readily visible and readable than before.<br />
** These all have a black border, but when selected that border goes white. Making the selection status on this pretty similar.<br />
<br />
* Ships now properly show their status on their icon when they are in hold-fire (or otherwise paused) mode.<br />
<br />
* Ships that have not yet been fully claimed now show properly on their icons with a building background.<br />
<br />
* Ships now have a separate health bar for their shields, so you can actually tell better what is happening during a battle now.<br />
<br />
* Attack-move now shows up properly in the statuses of ships, like FRD and so forth do.<br />
<br />
* Immobile ships, and ships that can't either shoot or assist, no longer show FRD status.<br />
<br />
=== UI Updates ===<br />
<br />
* Ship tooltips now show their shield health separately from their hull health.<br />
<br />
* The percent sign was not showing up properly throughout most of the interface because the font we were using -- Michroma -- did not support it. We're now using a different font -- Titillium Regular -- that looks very similar but does support that, and in fact has more readable text (numbers in particular) in general.<br />
** The search for a revised font was pretty exhaustive, and the improvement is notable.<br />
<br />
* Updated the font in the lower left part of the UI as well.<br />
<br />
* Updated the natural sizing and kerning offset of the strength icon, hacking icon, energy icon, etc, in their font so that its size does not have to be overriden every time and instead it fits in more naturally with text.<br />
<br />
* Updated the various places that use text to "use extra padding," which makes the text more crisp.<br />
<br />
* Updated the button font to be AudioWide instead of Exo2. This is more thematic and still plenty clear.<br />
<br />
* AudioWide font now used for popup headers, as well.<br />
<br />
* Quantico italics font used for credits screen, and that initial loading font, and the paused notice on the top bar.<br />
<br />
* Geometry Soft Pro Regular A is now used on the sidebar for headers, etc.<br />
<br />
* Fixed an annoying issue where tooltips would often overlap one another rather than properly only ever showing one tooltip at a time.<br />
<br />
* Tooltip backgrounds are no longer semitransparent, and now look much more attractive and modern.<br />
** We still have plans to add some bits of extra fanciness on these, though.<br />
<br />
* The confirmation screens now use better graphics, similar to the tooltips.<br />
<br />
* The background of the resource bar header is now fancier and stretches the entire width of the screen, too.<br />
** It also includes new little inset sections where the numbers and text go, which in particular makes it more clear that the metal display isn't just sized oddly.<br />
<br />
* The bottom left bar has also now been updated visually, although it in particular is scheduled for some more visual tweaks to make it really feel right.<br />
<br />
* The four tabs of the sidebar, which previously were above the sidebar, have been split into seven tabs along the side instead.<br />
** This is actually a lot less overwhelming than the other approach, because it splits out hacking and science, and docks and direct construction.<br />
*** Previously it was pretty hard to find hacking, and the build menu was a giant mess, visually.<br />
** Additionally, this renames Ops to be Mercenaries, since that's all we have planned for that anyhow and Mercs are going to become more important.<br />
<br />
* Updated the visuals of the sidebars to be vastly more attractive, including much better scrollbars among other things.<br />
** We do expect to do even more with this, but we're off to a good start with it already.<br />
<br />
* Updated the bottom-left menu to be less wide by removing the ping and reset camera buttons (which were always "coming soon" anyway).<br />
** This then lets us move that entire menu to be below the left sidebar, and along with that lets the tooltips move down so that they are almost flush with the bottom of the screen. This makes a HUGE difference in how obstructing the tooltips are/feel.<br />
** This also has a mild side effect of removing some slight distracting clutter from that bottom bar. It makes the more critical components of it a lot more noticeable.<br />
<br />
* Updated the planet hover tooltip to be more attractive, have easier to read formatting, have icons and colorization by resource color, and so on.<br />
<br />
* The information that was displayed about individual units that you could build when you hovered over them on the sidebar was really sparse before. It now shows the full information that you get after a unit is built, but plus also some other construction-specific items.<br />
** Additionally, it was never showing a per-planet cap properly on the build menu's tooltips. It now does, and makes it very clear if something is a planet cap or a regular cap.<br />
<br />
* Rather than the DPS being shown as a singular number, it now shows the damage per shot and the shot reload times separately.<br />
<br />
* The tooltips for ships now show all of the actual information about what is directly on the ship in terms of abilities -- how much of a resource is generated, what special abilities do, and so forth. This is done in a somewhat-narrative form, with highlighting for the key numbers, and with inline upgrade indicators for changes when looking at a potential tech upgrade. This is very different from the first game, where it just had a lot of techie-sounding markers on ships, and you had to consult the wiki to really know what they meant.<br />
** In the context of this game, ships in general should not have so many different things on them that their tooltip becomes a problem, anyway. If we start running into problem cases, we can re-evaluate some of this and potentially have a condensed view or something.<br />
<br />
* The system menu (when you hit escape in-game) has been completely redone, visually.<br />
** The buttons are finally larger, easier to click, and attractive.<br />
<br />
* On the system menu, there is now an About This Campaign scrolling window that currently shows you a list of factions and then some stats for each human faction.<br />
** We'll be expanding this over time.<br />
<br />
* You can now also see the numbers for the status effects on ships/squads when you hover over them, which is pretty useful so that you know what the heck is going on with something that is negatively affected at the moment.<br />
<br />
* The game will now prefer to report the number of squads rather than ships in the UI, though the number of ships will still be mentioned where possible. The game is balanced at the Squad Level, not the ship level, in any case.<br />
** Example: Instead of reporting 800 Missile Corvettes, it will now say something like "40 squads of Missile Corvettes (800 ships)"<br />
** Thanks to Bummeri and RocketAssistedPuffin for reporting<br />
<br />
* When a Hack is ongoing you will get a notification for it with the time left for the hack.<br />
<br />
=== Bugfixes And Structural Bits ===<br />
<br />
* Give the AI more turrets and fewer non-turret defenses per planet<br />
<br />
* Correctly reinforce only "Alerted" planets, aka those adjoining enemy (or at least, non-AI) planets<br />
** This seems to alleviate the "Fields of Tachyon Sentinels" problem<br />
<br />
* Put in a fix to prevent a nullref exception that could happen every 30-60 minutes based on a thread race condition.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* A bunch of scaffolding work has been done to allow for multiple AIs in the game. Having multiple AIs is currently not available because the UI does not allow for it yet. <br />
<br />
* The export of the balance stats csv file works again, and now gives a bit different data.<br />
<br />
* There is now a special entity type of GuardPost, and all the guard posts are assigned to that (and no longer have the tag of "GuardPost", since that is now redundant).<br />
** Guard posts are now reinforcement points, and guardians no longer are.<br />
<br />
* Fix a few null reference exceptions in the vis code<br />
<br />
* HumanKingUnit has been replaced as a special type with HumanHomeCommand, which is a lot clearer (that it doesn't mean the Ark anymore, which is now a different special type).<br />
** Related to this, we found a number of places where HumanKingUnit was still being used in an Ark-like way (as a hacker, as a fleet leader), and those are all now fixed.<br />
<br />
* Adjusted the "external data" to never initialize right from the start anymore, but instead to initialize only the first time it is used on an entity.<br />
** This dramatically cuts down the size of savegames (less than half what it was before from a brand-new save -- 4.3MB down to 1.8MB) and also saves RAM and some CPU when new entities are created.<br />
** This was only going to get dramatically worse over time as more factions and other custom modded pieces were added into the game, but now that's not an issue.<br />
<br />
* As one might expect in a savegame format with lots of optional fields, a TON of the data per savegame is actually blank. We've now updated the way blank data is stored to be roughly twice as efficient, thus dropping a savegame of size 1.8MB to just 1.01MB.<br />
** This makes saving faster and more efficient, and saves space on our webserver relating to mantis bug reports, as well as making it so people don't have to zip their savegames just to get them up.<br />
<br />
* The last of the savegame file size improvements is now in place. This brings us down from 1.01MB to 0.875MB -- or really, finishes bringing us down from 4.3MB at the start of this version down to 0.875MB now.<br />
** This new update stops using direct strings embedded throughout the savegame files for entity internal names and system internal names and similar, and instead writes an array of strings at the start, then writes integers instead of strings later on in the actual writing of the file. It's just a mapping lookup, basically. It's fully future-proof with adding and removing entities types to the same degree that the prior method was.<br />
** The savings of this system will actually go up dramatically the more entities there are in a given game. The example that we have here is right after game start, but it would be far more than 20% savings in a late-game save.<br />
<br />
* Fix a bug where the Sidebar and Notifications were reporting different numbers of ships on a planet<br />
** Thanks to HeartHunter7 for reporting<br />
<br />
* Fix a bug where army selection with "M" wound up being additive when it should not have been, which meant that you could wind up issuing unexpected orders<br />
** Thanks to HeartHunter7 for reporting<br />
<br />
* Fix a bug where control-group-rallied units could wind up endlessly rallying to each other in a circle.<br />
<br />
* The core piece of ship autotargeting logic, ReevaluateUnitOrders, has been moved into a new external open-source class called EntitySimLogicImplementation.<br />
** Thus more people can contribute to it, if they wish.<br />
<br />
* Right now the logic inside of EntitySimLogicImplementation.FillPotentialTargets() is quite simple, as Badger noticed. To help move towards being able to spruce that up, we've added the following:<br />
** priority_as_target is now on every entity, with a value from the GameData/Configuration/Balance_PriorityAsTarget xml required.<br />
** priority_to_protect is now on every entity, with a value from the GameData/Configuration/Balance_PriorityToProtect xml required. <br />
** priority_as_target is now used for AI's with difficulty > 4 (and everything that isn't an AI) when choosing targets. priority_to_protect is currently not used yet though.<br />
*** Ideally we can later separate out some of that logic onto a permanent background thread with no particular timetable on it like we did in AIWC, and then have it issue commands through the GameCommand interface just like a player does. But for now we can simply make everyone's autotargeting better.<br />
*** There is an importance_metric integer field on the priorities that can easily be used to determine a general level of priority for entities (higher is a higher priority, 0 or negative means ignore). However, these also have names such as ShieldGenerator or IrreplaceableAIPIncreaser and so forth, which means that the AI can actually key off of the priority names if they wish to do specific activities like take down shields or drive up the AIP or something.<br />
*** Having this separated out into separate defense and targeting priorities reflects the different ways that we think about these things. Sometimes a ship is very important to take out if you're attacking, but it's considered expendable if you're defending because it's just another piece of defensive hardware and its job is to fight until it dies. At any rate, the way things are designed right now, the people defining the xml and the people writing any AI logic both have some loosely-coupled good options on both sides.<br />
*** One reminder for anyone doing AI code: never _just_ choose the best option. Always choose from among the top 85% or so of the options, and very rarely lower than that, because that keeps the humans on their toes and is what leads to unexpected moments of "brilliance" on the part of the AI. That wiggle-room is the secret sauce that makes AIs seem alive.<br />
<br />
=== Hey Testers! We Have Some Questions ===<br />
<br />
* Questions for testers (now that we're breaking everything):<br />
** How is ship damage in general? How about health?<br />
** Do tractor beams work?<br />
** Does cloaking work? And tachyon beams?<br />
** Does engine damage and repair seem to work?<br />
** Does paralysis work?<br />
** Can command stations be upgraded?<br />
** Does the Human Home Command Core work? (Does it get created and then does it work?)<br />
** Does the AI Overlord Phase 2 spawn after the AI Overlord is destroyed, and does this keep the game going until it dies?<br />
<br />
== Version 0.759 Break The Sky ==<br />
(Released Internally Only August 8th, 2018)<br />
<br />
* A variety of the starship lines now are unlocked via the Advanced Research Station instead of being available for unlock directly at the start of the game.<br />
<br />
=== Minor Faction Updates ===<br />
<br />
* Fix some Dark Spire bugs where the Wards were self destructing, Locuses were spawning too early, etc...<br />
* Dark Spire units now spawn next to their Vengeance Generators instead of at the center of the planet.<br />
* The Dark Spire can now perform "Vengeance Strikes", where all the Dark Spires in the Galaxy will launch a simultaneous attack. This will happen every few hours.<br />
** Vengeance Strikes will give you a 10 minute Notification heads up. <br />
* If you have vision of the Devourer, you will recieve a Notification with its current location <br />
* You will get a notification for every Astro Train on the map. Note that it won't tell you the location of the Train or the Depot unless you have vision of them.<br />
* If the Zenith Trader is on one of your planets you will get a Notification.<br />
** A Notification for all of these factions is a popup like a Wave Notification<br />
<br />
* The Marauders will only attack "Sometimes" now. This is less a nerf and more a "Make the Marauders really unpredictable" tweak. <br />
<br />
* Marauder Raiders will now aid adjacent allied planets that are under attack<br />
<br />
* Mercenaries are Always Enabled now<br />
* Allow Astro Train Depots to have per AIP multipliers on strength, which allows Depots to start out weaker but get stronger as the game goes on (as you also get stronger)<br />
<br />
* Dyson units now spawn at the Dyson Warp Gate, not at the center of the planet.<br />
<br />
==== Nanocaust Changes ====<br />
<br />
* Reworked the way Nanocaust ships are created to allow for real balance adjustment<br />
* Add notifications when the Nanocaust is attacking<br />
** These are notifications like the Wave notifications<br />
* The Nanocaust has the ability to strategically generate bonus strength for waves<br />
* Fix a bug when saving games with the Nanocaust<br />
** Thanks to OvalCircle and RocketAssistedPuffin for reporting<br />
<br />
==== Instigators ====<br />
* Add AI Instigator faction. This is a minor faction that's just "part of the AI" from the player's point of view, though their units are tagged "AI Instigators" not "AI". Instigators are Always On and there is no mention of them in the Game Lobby.<br />
* This faction will create a base every hour or so. These bases will provide the AI with an ongoing bonus effect (at the moment, buffs to various budgets or "Spawn units that just kamikaze at the player"). You can ignore these bases or go try to kill them.<br />
* The goal is to give the player periodic new mini-quests and objectives.<br />
<br />
=== Balance Changes ===<br />
<br />
* Adjusted the balance for Mark V, VI, and VII ships/structures. They were progressively getting weaker compared to their lower tiers, which generally increased at a higher rate.<br />
** Mark II is 2x as strong as Mark I, for instance, but Mark V was only 1.25x as strong as Mark IV. Now Mark V and up are each 1.5x as strong as the mark that came before them, which matches how much stronger IV is than III.<br />
** We can of course change this with ease again in the future, but it seems like a good plan for now.<br />
<br />
* Metal costs for ships go up by 1.5x per mark level, rather than following the strength/hull power trend line. This makes mark II ships a particular value compared to mark I ships, incidentally. The deal of power-to-metal-cost ratio gets progressively worse as you go up in mark levels, but always remains quite positive (aka it's always a good idea to upgrade, but you get more bang for your buck upgrading something low than something high, assuming all else is equal -- which it is not, heh).<br />
<br />
* All of the player command stations now increase the speed of all allied units within their system, as was the case in the first game. Home court advantage returns!<br />
<br />
* The energy cost multiplier for higher mark levels has been removed. Ships cost the same amount of energy (per squad) at each mark level, now.<br />
** Otherwise, particularly with the auto-upgrade effects that are now here, you could end up browning yourself out by upgrading a squad. Previously you could have ships inexplicably not upgrading, so that was not really improved.<br />
** Don't worry, your energy needs increase anyhow because of ship caps going up with higher mark levels.<br />
** That said, we will probably need to spend some time on balance with energy in general to make sure that you actually start to feel pinched every so often on it during gameplay.<br />
<br />
* Planets now have a constant amount of hacking and science points on them.<br />
** We might change that in the future, but it would be planet-background-themed and use different math if we did.<br />
<br />
* There are now always 5 metal production points on player homeworlds, and between 3-8 points on other planets, making them vary in quality just like in AIWC but in a fully visual way that differs from AIW2 so far.<br />
** The idea here with the base planet is to keep it from players re-rolling to get a better immediate start.<br />
<br />
=== Ships Removed ===<br />
<br />
* Tachyon Microfighters and Bulletproof Fighters have been removed as distinct entities. These will soon be things that are randomized variants or upgrades.<br />
<br />
* The AIWC-style concept of mercenaries, which we've been calling Auxiliaries, has been removed for now.<br />
** This simply wasn't very exciting and felt like clutter at the moment. If late-game metal buildup becomes a problem again, we have some more flexible ideas for dealing with that.<br />
<br />
* Advanced Factories and Advanced Starship Constructors are going away for now. We'll be bringing back a different mechanic in this general area, so stay tuned. There's a better way to do this, though.<br />
<br />
* Stealth tachyon arrays have been removed as a distinct unit. Instead, their stealth ability kicks in when you upgrade a regular tachyon array to mark IV or higher.<br />
<br />
=== Ships Reinvented ===<br />
<br />
* Fighters, bombers, and missile frigates are the three core triangle ships... but only for humans, now! The AI and other factions no longer get them at all. The marauders have their own version of these ships as drones, which is actually pretty unique for them. But the AI and other factions use different ships as their baseline, now.<br />
** These ships (the base ones by the player, anyhow -- not the drone marauder-based ones) are now going to be getting some balance changes and new abilities really soon.<br />
<br />
* The basic fleetships for the AI are now the Raider (in place of the Fighter), Armor Ship (in place of the Bomber), and the MLRS Frigate (in place of the Missile Frigate).<br />
<br />
=== Ships Added ===<br />
<br />
* Logistical and Economic command stations have been rebalanced a bit, and Military command stations have been added.<br />
** The new military command stations increase the attack power of all allied ships in their system.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fixed a bug in the macrophage where they were not using their health_change_per_damage_dealt value, since it was spelled health_change_per_damage_dealth.<br />
<br />
* Fixed a variety of other bugs where things were not acting as they were supposed to since the pivot. That said, undoubtedly broke even more things than we fixed.<br />
<br />
* Fixed up a few ship ranges that were set to low or negative values because we couldn't properly see them before. The Arks all had very very short gun ranges, for instance.<br />
<br />
* Probably fixed the bug with you being able to upgrade your home command station and thus lose the game instantly because of that.<br />
<br />
* Fixed a bug where killing Warp Gates was not correctly stopping incoming waves from that Warp Gate<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Structures can no longer be captured on AI planets<br />
** Thanks to RocketAssistedPuffin for reporting<br />
<br />
* Certain text throughout the interface, such as on the net energy display, would show really strange and wrong if you had a negative number there. Fixed.<br />
<br />
* Fixed a longstanding issue (that we just uncovered) where attribute reading from xml could silently fail even if it was supposed to verbalized failure.<br />
** The issue was if a non-default value was passed into the Fill() methods, but then the attribute was missing. It was supposed to complain if it was default OR missing, but it was only complaining if it was default.<br />
<br />
* Fix a bug where Astro Train Depots that were supposed to give bonuses to various AI Budgets were in fact doing nothing.<br />
<br />
* Fix a bug where losing vision on a planet caused all ships there to visually explode<br />
** Thanks to x4000 for reporting<br />
<br />
* Improve engineer logic when deciding which units to repair, or which constructors to assist in building units. We now factor in how many other engineers are working so as to ensure we don't have all the engineers working on a single unit at a time.<br />
<br />
=== Technical Jargon ===<br />
<br />
* A new does_not_use_multipliers_from_mark_level tag has been added.<br />
** If this is set to true, then the mark_level="Mark5" (or whatever level) tags are just ceremonial -- they show up visually to show a player how scary the unit is, essentially.<br />
** Normally there are multipliers for the health, strength, shields, attack power, etc, etc that come from mark levels. This skips those, in other words.<br />
** The reason for this is that sometimes you have very unique entries at each mark level (such as with the Dark Spire) that you want to have display the mark level, but which in no way inherit stats. This way, instead of having to know the multipliers and then divide all your values by them, you can just set the stats directly.<br />
<br />
* The option to hide mark levels on ship icons has been removed, since now you can just set them to be markless and set their stats to be whatever. It's much cleaner than having two ways to do one thing.<br />
<br />
* The structure of how ship data is stored in xml for the game to read in has been overhauled quite a bit.<br />
** A lot of fields were previously wired up in such a way that they referenced other xml files extensively, so you'd have to know what a lot of hidden values meant in order to make sense of it at all.<br />
*** Now this is done a bit, but only for things that are easy to remember (range) or not frequently used (engine health). Basically in places where this is easier to read for purposes of understanding a scale (is 100 a big number of a small number for this field? etc).<br />
** A lot of fields also were based around multipliers to unseen base values, again making it hard to know what the actual values would be.<br />
*** In general, things are a lot more direct now. Higher mark levels still multiply a bunch of things in order to simply be descendants of the lower mark levels, but this is less severe of something to have to learn.<br />
** And lastly, ship systems (guns, etc) were stored in a separate file, then referenced. This had the advantage of fewer definitions (by a bit), but the big disadvantage of being harder to read a single ship or modify that ship.<br />
*** Now the system entries are actually sub-entries of the ship nodes directly, so you can see everything about a ship right in one screen, essentially, and thus make changes way easier to it.<br />
** Overall these changes make it harder to make sweeping balance changes to the game (more repetitive work is required now), but it makes it far easier to modify individual ships, which is far more common of a task.<br />
*** Basically we were not having many modders for ships, and even Badger and Chris were kind of shooting in the dark and Keith was mostly just basing his work around what was in AIWC lately, so the prior system wasn't really working out for practical purposes. The new system was designed to take what was good about the old system, make as few changes as possible, and become more usable.<br />
<br />
* Made it much easier to see what sub-nodes are having xml issues when you're seeing xml errors from your modding.<br />
<br />
* The properties on GameVersions are now different, since we're breaking old savegames anyway.<br />
** Rather than saying which versions are valid for the settings, world, and profiles, it now says which is the first one that was valid. Those markers can be moved around in the versions file as needed.<br />
<br />
* All of the old serialization gates have been removed, and in general a lot of deserialization cruft that built up while we were not breaking savegames.<br />
** Kind of related, we made a tutorial on how to use serialization gates: [[AI_War_2:_Serialization_Gates]]<br />
<br />
* The last inclusions of Power in the code are now gone. Also power distribution nodes.<br />
<br />
* There are now some V1 and V2 copies of a few ship types that look pointless in the xml, but which are a chance to have multiple randomized variants on one team, coming up. This is particularly true for things like the Abomination, etc.<br />
<br />
* There are also some faction-specific tagged versions of various ships that are copied now, too. The tags make it more obvious what the purpose is, and you can see that built_by="Unused" is being set to zero to make sure that these variants don't show up in player build menus or random AI waves.<br />
<br />
* Build menus no longer have the same structure as before (with all the columns, etc), and are now defined on the ships themselves.<br />
** This makes it easier to keep track of where ships are used, although not what uses what ships. But that's fine, because we also don't want ships referenced in multiple files like this directly if we can help it (this again helps with modding, allowing modded-in ships to be inserted into build menus automatically).<br />
** Also worth noting, we've removed some build menus for things like specific AI types, since that concept would no longer work anymore. Rather than certain AI types preferring specific ship types, they'll be getting specific bonuses or penalties more frequently from the randomizer, soon.<br />
<br />
* Mark levels and techs as they were previously defined in the xml and code have been removed. There's a new system that is a lot simpler that does the same thing on the front-end, but is less typo-prone, requires less xml in general, and will long-term be less bug-prone.<br />
<br />
* The concept of a "shared cap" is now gone, since we no longer have to share cap between multiple mark levels.<br />
<br />
* Added a new max_mark_level tag in the entity xml that lets us specify that the unit is only able to be upgraded to a given mark level and no further.<br />
** Most of the time, units can be upgraded all the way to mark 7, but it gets progressively more prohibitively expensive.<br />
** It's also worth noting at this time that the mark_level tag now means "first mark level." If something has a mark level of 2, then it will never be present at less than mark 2. This is mainly used by some minor-faction-specific ship variants.<br />
** Lastly, if something is set to be markless, then it can't be upgraded at all (mark-level-wise).<br />
<br />
* Engineers no longer upgrade units, it just happens automatically (for the player). This was a waste of time for the engineers, and extra complications on our side, too.<br />
** This does create the common situation where you'll be in battle and can upgrade your units immediately to save their health or whatever, but this isn't the worst thing; lots of RTS games do this.<br />
** Player units are now automatically kept at whatever the highest mark is that their type has unlocked, whereas AI units start out at some mark level (from their planet mark level, or their wave mark level) and then never change it.<br />
** Note that this is a departure for structural-type buildings such as command stations. You can't have multiple mark levels of economic command station in the galaxy at once, anymore, for instance; they'll all share the highest mark, now.<br />
*** Note that this does NOT affect the AI or minor factions; they can do what they like.<br />
<br />
* In the test chamber, you can now specify a mark_level entry to choose what mark the ship is at. It will automatically correct itself to the nearest in-range mark level if you set something out of range for that unit.<br />
<br />
* The build menus and tech menus are now combined into one thing that is called build menus, and this includes the following entries for the moment.<br />
** Note that these get assigned to entities by the built_by tag, in a comma-delimited list. What lists the ship is in determines how it can be used, and by whom.<br />
*** Further note that a few ships don't use built_by at all, but still do appear in the game. These ships are instead looked up by the tag property, usually for purposes of a faction or the AI doing something unusual with them (for instance, Usurpers being in the waves AIs send to retake planets).<br />
** Unused: assign ships to this if you have are using copy_from on a ship that you then want to be in no lists (aka that ship will be looked up by tag after the copy).<br />
** FleetShips: ships that the player can build at space docks.<br />
** Starships: ships that the player can build at starship constructors.<br />
** FleetShipUnlocks: currently unused.<br />
** StarshipUnlocks: currently unused.<br />
** StarshipAndFleetshipUnlocks: Advanced Research Stations will choose from ships in this list when deciding what to make available to players.<br />
*** Note that for the result to actually appear in the space dock or starship constructor, you ALSO have to include FleetShips or Starships in the built_by list.<br />
** Infrastructure: non-combat things that the player can directly place. Engineers, space docks, etc.<br />
** Defenses: combat-oriented things that the player can directly place. Turrets, shields, etc.<br />
** ZenithTraderUnits: whatever the Zenith Trader might sell you.<br />
** CommandStations: whatever the colony ship has available for you to build.<br />
** CommandStationUpgrades: any command station lines that can be upgraded in the tech menu. Pretty much identical to CommandStations for now.<br />
** BasicWaveDrawBag: ships that the AI can send at you in waves (assuming it has the line unlocked, as with everything around here).<br />
** BasicReinforcementDrawBag: ships that the AI can plop around its planetsn during reinforcements spending.<br />
** BasicGuardPostDrawBag: guard posts for the AI to place.<br />
** BasicTurretDrawBag: turrets the AI is allowed to place (assuming line is unlocked).<br />
** BasicNonTurretDefenseDrawBag: other non-turret defenses the AI can place, but not shields.<br />
** BasicShieldDrawBag: shields the AI can place.<br />
** BasicShieldGuardianDrawBag: shield guardians the AI can use on occasion.<br />
** BasicSentinelDrawBag: things that guard wormholes for the AI.<br />
** BasicGuardianDrawBag: regular guardians, not including shields, that the AI can use.<br />
** BasicDireGuardianDrawBag: unusually scary guardians that only get used in special circumstances and core AI planets.<br />
<br />
* There is a new xml tag called ship_line_must_be_unlocked that can be set to one of three different values:<br />
** LineUnlockedFromStart (default) means that anyone can use it right from the start IF it is in the "built_by" lists that the faction has.<br />
*** For instance, this default is set for Fighters and Bombers and such, but the AI still doesn't get those because the built_by does not include BasicWaveDrawBag, BasicReinforcementDrawBag, or any of the others.<br />
*** And on the other hand, various other ships for minor factions don't include FleetShips or Starships, so the player space docks and starship constructors can't construct these things.<br />
<br />
* Balance_TechCost is now being used in a new tech_cost tag on entities.<br />
** Any entity that isn't markless must have this assigned.<br />
*** If the entity isn't used by players (such as AI-specific or faction-specific stuff) or otherwise isn't something players will see in their science tab (such as drones), then just set it to NeverPlayerControlled for the sake of clarity.<br />
** The rest of these values are organized around the same general costs that we had previously, but without needing to have tech definitions as an intermediate step.<br />
** These also define all of their science costs in just a single list that is planets_worth_of_science_by_ordinal, rather than having many entries for each cost type. The list starts with ordinal 0 (markless), and goes up from there to presently mark 7.<br />
*** The scaling factor on these is intentionally uneven, so they're set directly. Some things are cheaper at first and then get progressively more expensive, others are more linear, and all of them get vastly more expensive starting around mark 4 or 5.<br />
** This also now lets us define ark_upgrade_point_costs_by_ordinal directly for the Arks.<br />
**** The costs on these have been massively increased compared to what they were in prior versions of the game.<br />
** And lastly, this lets us set destruction_point_costs_by_ordinal directly here, too.<br />
*** Previously, this was just used by a couple of things like the mobile builder and the auxiliary space dock. Now it isn't used for that at all.<br />
*** Now, starting at mark 4, all of the lines start costing some amount of this. So even if you get a ton of science, you also have this other limiting factor on the very high-mark entity unlocks.<br />
*** It's also worth pointing out here that you can now simply upgrade your ships and structures all the way from mark 1 to mark 7 (or whatever their top cap is) at any time, without capturing anything. It's just very, very expensive.<br />
**** The concept of temporarily having mark IV ships available thanks to an advanced factory is gone. That was awkward and there are better things we can do.<br />
<br />
* There is now a min_mark_level_to_function and max_mark_level_to_function set of tags that can be applied to systems. Simply set this to 0, 4, or whatever ordinal number.<br />
** This lets us do things like only have certain systems turn on after a ship reaches a certain mark level -- the tachyon array gaining the ability to cloak at mark 4, for instance, or the Thanatos Ark gaining it's zombification gun at mark 4.<br />
** This gives a lot of compact flexibility.<br />
<br />
* Added a VERY IMPORTANT new CurrentGeneralMarkLevel on the Faction object.<br />
** It isn't used at all by player factions, but for the AI and other factions, ships will by default come out at that mark level unless told otherwise (or unless clamped otherwise by starting and max level).<br />
** This is something we'll be incrementing for the AI so that its waves get stronger over the course of the game, and other factions are free to use this as well (though most don't really need to at the moment, since their ship levels are controlled by other things).<br />
** For the AI, if this number is higher than the mark level of the planet a reinforcement is at, then it will use this mark level. Much as in AIWC.<br />
<br />
* On the GameEntityTypeData class, there are now very important new MarkFor() and MarkStatsFor() methods that should be used when considering mark levels for entities that don't yet exist.<br />
** Essentially, when an entity is to be created, we don't really know at what mark level it should be created at. Depending on if it's a player, an AI, another faction, for a wave, for a planet reinforcement, for a drone out of a specific ship... all of those cases result in potentially different mark levels.<br />
** Thus all of that is simplified by you simply doing a few different things, and you can call these with a Faction or a PlanetFaction for added brevity of the call.<br />
** The stats version returns the GameEntityTypeData.MarkLevelStats for the mark level, whereas the other version just returns the int for the ordinal of it. Again for syntax brevity.<br />
** There's a version where you just pass in a faction, and it gives you the general mark level it should be. This is for things like anything to do with a player, or an AI wave or CPA, etc.<br />
** There's another version where you pass in the faction and a planet, and for non-players that will give you the appropriate mark level for if the ship is being added to a planet as a reinforcement. Aka, the mark level of the planet, and the general mark level of the faction, both influence it. For players it is business as usual, basically the same as the other method.<br />
** There's another version where you just pass in the mark level you want, and it clamps it if need be and hands it back to you. This is useful for drones being produced by ships, since the drone probably should be the mark level of the thing producing it (but in some cases we have something like a markless hive golem producing mark 5 hive drones, so it would try to be mark 0 but clamp to mark 5 instead).<br />
** And lastly there's a version that is WithAdded(int) that basically says "if I had this many marks added, what mark would I be, including any clamps." This is useful almost exclusively for predicting upgraded stats on the tech tooltips.<br />
<br />
* There are also now MarkStatsFor() methods on the EntitySystemTypeData class, matching those of GameEntityTypeData in function and form.<br />
** This makes it much more concise and easier to get the proper data about theoretical systems that might be added in a given context. This is mostly just for the gui for placing new units, things like that.<br />
<br />
* UnlockedAIDesigns has been removed from the AI's external data, and now it simply uses faction.UnlockedShipLines like all the other factions do. Logic is all the same.<br />
<br />
* The metal production and energy production on planets is now more direct straight from the units that produce them, rather than being based partly on the quality of the planet.<br />
** This is a lot more like AIWC.<br />
<br />
* Squads with multiple subsquads were firing a shot per subsquad, all stacked on top of one another, which was needlessly heavy on the CPU and the GPU at all levels.<br />
** It was a nice idea, and made sense to do, but ultimately was too heavy and too hard to spread out. It was mainly a visual thing, but since they were stacked you couldn't tell anyway, so it's clearly not needed from that standpoint.<br />
** The other element of it was that squads would get weaker as they had fewer subsquads in them, but that actually wasn't fully correctly being handled in terms of shot planning and whatnot with ship DPS, etc. So dropping this function actually makes some of the ship AI slightly better.<br />
<br />
* The game now explicitly complains if for some reason it is unable to fill a draw bag for putting entities into a given context. This would be an example of bad xml, typically, and thus a helpful debugging aid for modders and the like.<br />
<br />
* Improved the logging on AI draw bag reading, for if there are emtpy entries ever. This will let us know when there are issues in the xml, or outright logic errors.<br />
** In the short term this has helped us fix some code issues that were internal to this release, but longer-term it will help when there would otherwise be invisible strange behaviors from the AI. Invisible incorrectness is not so hot. :)<br />
<br />
* AIs now properly check their effective AIP against the RequiredAIPLevel of each mark level listing. Assuming that the effective AIP is greater than or equal to that, it increases its mark level to that value. The AIs never go down in effective mark level.<br />
** So even if you use data centers to bump the AIP back down, the effective mark level is higher for good. By design, as with the first game. Some gates just shouldn't be un-trippable.<br />
<br />
* There is a new takes_on_color_of_the_first_ai_faction field on SpecialFactionData. When this is set to true, then the faction in question will take its color from whatever the first AI faction is set to.<br />
** This is how the Instigators faction is now set up to work.<br />
<br />
* There is a new takes_on_current_general_mark_level_of_the_ai_factions field on SpecialFactionData. When this is set to true, then the faction in question will increase its CurrentGeneralMarkLevel to match the highest AI CurrentGeneralMarkLevel. These factions won't ever decrease their CurrentGeneralMarkLevel.<br />
** This is now used by all of the "I'm part of the AI but implemented as a separate faction" factions. Everything from instigators to astro trains to the warden and hunter fleets. This keeps the growth of all the parts the same across the game.<br />
<br />
* Starships, guardians, arks, and fortresses now scale up in visual size per mark level based on a new large_ship_scale_multiplier tag on the mark level definitions.<br />
** The scaling was previously handled per-entity-type and done by hand in the xml, leading to often inconsistent results.<br />
** This scales the ship up visually, as well as scaling them up in their actual physical radius, which affects collisions, etc.<br />
<br />
* The old Flagships special entity type has been removed, and a new Starships one has been added instead and is now assigned to all the starships.<br />
<br />
* The game now checks for xml attributes that are in present in the xml but never requested by the front-end.<br />
** This is basically typo-proofing, more than anything else. And it also helps us clear out older cruft in other cases.<br />
** This will NOT help you find unused xml nodes, so if there's a major typo in the name of those you're out of luck and just have to notice it yourself. Node = <node> Attribute = <node attribute1="val" attribute2="val">.<br />
<br />
* We cleared out a lot of cruft and corrected some typos, based on this. Thus fixing a few bugs we didn't even know we had just yet.<br />
<br />
* Removed the dps multipliers from death effects (which were not even being used), and also removed the death effect defenses (which also were not being used).<br />
<br />
=== UI Improvements ===<br />
<br />
* When you unlock a tech, it now shows a message saying what you unlocked.<br />
<br />
* You can now see the metal costs of things on the tech tooltips (what the old cost was and the new cost will be).<br />
<br />
* The galaxy map tooltip for planets now shows how much science and hacking is LEFT at a planet, versus what its total was.<br />
<br />
* Updated the controls for the plus and minus keys to match the defaults that are in the interface. They now adjust the frame size instead of the frame frequency (this speeds things up without causing extra CPU load, making it ideal for quick speedups when you want things to move faster).<br />
<br />
* Updated the interface display for larger frame sizes to say "2x Sp." or whatever the amount is rather than "C*2", which was debugging-like and unclear. (Granted this probably was originally for debugging, it's hard to remember).<br />
<br />
* Previously, DPS was being reported per visual thing in a squad (so DPS was divided by 20 for fighters), which was super unhelpful. It now shows DPS per squad in all cases.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: The Pivot]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Era_of_Discovery&diff=31595AI War 2:The Era of Discovery2018-09-07T16:02:42Z<p>Keith.lamothe: /* Version 0.768 */</p>
<hr />
<div>== Known Issues ==<br />
* The lobby interface is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help. Please tell RocketAssistedPuffin if you find anything you think needs changing.<br />
<br />
* The tutorial is currently a not as comprehensive as it could be.<br />
<br />
* '''Multiplayer is temporarily disabled''' while we focus on tightening up the single-player loop.<br />
<br />
* There are still a bunch of ships that we either want to re-implement, or new ideas that we want to implement for the first time.<br />
<br />
* There are a variety of ships/units that don't have proper graphics or reuse icons at the moment.<br />
<br />
* There is not an in-game way to see and edit the control bindings yet.<br />
** But you can go into the created bindings file inside the PlayerData folder to edit them in a text editor.<br />
<br />
== What's this phase all about? ==<br />
<br />
Initial thought process was described on Steam: [https://steamcommunity.com/games/573410/announcements/detail/1732082664630714967 "Retrieval of the Lost Arks" Plus an Essay, Apparently.].<br />
<br />
The short answer is that we hit a point where the game was fun, but super hard to balance. Rather than focusing on balance in a strictly-numbers sense, we thought it would be more interesting to add a procedural element into ships in order to make each game even more different.<br />
<br />
Along with that, we realized just how important the factions are becoming to the game, and how they give more of a sense of life to what is going on. With that in mind, and the since-forever-even-in-AIWC requests of players to make each planet have more unique "terrain" (per se), we thought it was time to start implementing things a bit differently.<br />
<br />
The TLDR is that we hit the point where it feels sufficiently like the first game in a really basic mechanics sense, and now it's time to make things unexpected again <br />
<br />
== Version 0.768 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Add notification for Enraged Macrophages attacking<br />
** Thanks to zeusalmighty<br />
<br />
* Decrease the strength of the Antagonized Dyson<br />
** Thanks to HeartHunter<br />
<br />
* Remove some no longer needed unit tags for the Dyson Sphere<br />
<br />
* Fix a bug where the player could no longer build command stations on any new worlds<br />
** Big props to malkiel for finding a fix to this one<br />
<br />
* Prevent the player from having multiple hacks simultaneously on a planet<br />
<br />
* A large amount of defensive code, as well as some better logging that doesn't gum up the entire system as it runs, has been added to the DoOnAnyDeathLogic section of the code.<br />
** Thanks to malkiel for reporting.<br />
<br />
* Fixed an issue where higher-mark docks were building higher-mark versions of their ships for players (oops!)<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Fixed the logic where ships in FRD mode, and AI ships, were trying to hug their enemies.<br />
** Thanks to HeartHunter7, RocketAssistedPuffin, Ovalcircle, and malkiel for reporting.<br />
<br />
* Added a new Zenith Shield Generator, which is mark 4 and very expensive and can be bought from the Zenith Trader.<br />
** Thanks to zeusalmighty for suggesting.<br />
<br />
* The metal tooltip now spells out exactly how much metal you have, versus the abbreviated version.<br />
<br />
* Fixed a couple of rather severe display bugs that would show when you had numbers in the millions, with things like 2.08m being written as 2.8m instead.<br />
** Thanks to malkiel for figuring this out!<br />
<br />
* Rather than processing every ship's re-evaluation of orders and targeting logic every sim frame, it now only checks them every 4 sim frames, divided up randomly by the modulus of the ship's primary key.<br />
** This has the side effect of making ships shoot not all in such big burst batches constantly, but in a much more attractive set of bursts that are ongoing. It looks far more like a battle now!<br />
** But the really big effect of this is that it almost doubles the performance of some hefty sections of the code. Woo!<br />
<br />
* Also put in a gate to only process the long-range-planning logic of the special faction logic every other sim frame rather than every frame. Doesn't seem to make any difference performance-wise right now, but you never know in the future.<br />
<br />
* Fixed the issue where when the AIP was > 999 it would go up off the top bar.<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
* Made AI targeting more likely to actually kill remains rebuilders so that a sufficiently big turret/etc ball doesn't distract it indefinitely.<br />
<br />
=== Balance Tweaks ===<br />
<br />
*Gryn, The Void Home can now build units starting at Mark 1, instead of Mark 3.<br />
<br />
*Grenade Launchers and Flak Turrets now gain a 2x damage multiplier against anything with less than 65mm armour thickness.<br />
<br />
== Version 0.767 Newly In Stock, By Zenith==<br />
(Released September 6th, 2018)<br />
<br />
* Update the Macrophage Telium description to say "Be careful about killing this, it will enrage all the Macrophages"<br />
** Thanks to zeusalmighty for suggesting<br />
<br />
* The infrastructure menu can now be seen properly on enemy planets. Additionally, items within it that are not buildable on enemy planets -- like energy collectors -- should no longer show up. Now mobile builders are actually more useful!<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* The "Start with units Queued" option now works again. Turns out it was easier to fix than remove.<br />
** Thanks to RabidSanity for reporting.<br />
<br />
* Extremely long-ranged units will now have a reasonable kiting distance.<br />
** Units with extremely long-ranged weapons (sniper guns, etc) will no longer approach targets if they also have a shorter-ranged gun. This prevents the sniper starship from running up against enemies like it used to.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* It should now be impossible to have your stored metal go over your metal storage cap.<br />
** Thanks to malkiel for reporting.<br />
<br />
* When you can't afford mercenaries right now, it now shows that as the proper message rather than saying they can't be hired at the current planet. The incorrect message was super confusing!<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* The Rorqual Hegira now also has the Norris Effect, same as Gyrn does.<br />
<br />
=== More Targeting Work ===<br />
<br />
* Fixed a bug in the prior release that made it continue to use the old AI-style target priorities on ships in FRD mode.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* Updated the general targeting logic in TargetPlanning so that it now also makes use of the target priorities and pays attention to ranges, which should lead to more consistent behavior between that sort of targeting and the targeting from FRD mode. It also takes into account overkill, etc.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* Added some logic that prevents some thrashing when ships are chasing targets out of their current firing range. This leads to better ship behavior, plus a nontrivial CPU performance bump.<br />
<br />
=== Zenith Trader: New Wares In Stock ===<br />
<br />
* The Zenith Trader should now have some interesting wares to sell. They aren't tested yet, so may have some bugs.<br />
** Scrubbed Aberration<br />
** Scrubbed Abomination<br />
** Tamed Macrophage<br />
** Chained Dark Spire Eidolon<br />
** You don't have to have any of those factions enabled for these to be available.<br />
** Thanks to Ovalcircle for reminding us to give the Trader something to sell.<br />
<br />
=== Reinvented Units ===<br />
<br />
* Vorticular Cutlass has been adapted into the new Metabolizing Gangsaw.<br />
** Melee ships that damage themselves when they do damage, but also carves metal off their target to add to your income.<br />
<br />
* Needler Turret has become Pike Turret.<br />
** Exceptional against highly-armored ships, particularly those with high remaining hull health.<br />
<br />
* Multi-Needler Corvette has become Pike Corvette.<br />
** Exceptional against highly-armored ships, particularly those with high remaining hull health.<br />
<br />
=== New Units ===<br />
<br />
* New player-only turret: Ambush Turret<br />
** Specializes in destroying enemies new to the planet.<br />
<br />
*New AI-only Guardian: Widow Guardian<br />
**Scary, causes paralysis to victims with low mass.<br />
<br />
=== Balance Tweaks ===<br />
<br />
*AI Overlords have reduced health - bit more than half. Phase 2 now has 2 Archon Cannons, dealing 8000 damage every 2s, and Archon Missiles, firing 32 missiles at once, every 2s, with 200 damage each. Also has the Norris effect, so no more cheesing this by trapping it.<br />
**Thanks to Ovalcircle for suggesting the idea and the general weapons, and x4000 for the Norris Effect.<br />
<br />
*Macrophage Harvesters now have 90mm thick armour, to make them a bit easier to actually fight now.<br />
**Thanks to zeusalmighty for reporting, and Badger for the 90mm figure.<br />
<br />
*Sentinel Frigates and Sentry Starships now give sensor data for neighbouring planets.<br />
<br />
*Space Planes now take half damage from anything shooting them beyond their own weapon range.<br />
<br />
*AI Hunter Fleet starting budget is vastly reduced. This should hopefully stop it attacking you even in the first minute, and make the initial planet grab a bit easier.<br />
**An example of this is building the initial triangle of fleetships wasn't enough to deter the Hunter from attacking at difficulty 7, two minutes into the game.<br />
<br />
*Starting metal increased from 360k to 540k. This should mean you don't go into "Starving" just building initial fleetships, and will help the initial planet grab as well.<br />
**This is currently the exact amount required to build the initial triangle.<br />
<br />
== Version 0.766 Target Equilibrium==<br />
(Released September 5th, 2018)<br />
<br />
* Hopefully fix null reference in Hacking Notifications<br />
** Thanks to Ovalcircle for reporting<br />
<br />
* Hopefully fix game load problem due to Dyson Shpere<br />
** Thanks to HeartHunter for reporting<br />
<br />
* Improvements to the Nanocaust:<br />
** Improve detection of when a planet is capturable<br />
** Improve detection of fleet state (this was causing huge numbers of notifications to pile up)<br />
** Lots of improvement to nanocaust tracing<br />
** Some overall nerfs to the Nanocaust strength (HeartHunter's suggestion)<br />
** Make the Hack cost more hacking points<br />
** Hacked Nanobot Hives now show in the galaxy map<br />
<br />
* Improved the wording of a few things in the Tutorial.<br />
** Thanks to Ovalcircle for the critique<br />
<br />
* Fixed a bug introduced during the GameEntity split where defenses were never seeded at wormholes anymore. This was because one of the search flags for wormholes was only looking at Squads (which are, of course, never wormholes!), and not looking at Other. Now a new flag has been made for Other, where wormholes are, and it searches on that. It's not possible to make this error in the future, since the flags are not cross-compatible, which is good.<br />
** Thanks to zeusalmighty and Ovalcircle for reporting.<br />
<br />
* Fix a bug where Tertiary mercenary units were spawning secondary units instead<br />
** Thanks to RocketAssistedPuffin for reporting<br />
<br />
* Previously, things that said "less than" as a requirement really meant "less than or equal to." They now really mean "less than." Affects:<br />
** Engine stun gx, paralysis tx, reload slowing mm, gravity gx, tachyon albedo, tractor gx and albedo, and ion albedo.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Fixed our internal batch files to finally properly be able to compile with Unity 2018.2+.<br />
** It turns out that on Chris's machine, he was unintentionally still compiling with 2017.3p1 instead. After updating his path to properly point the right place, trying to debug this with Puffin, he was able to get the same error that Keith and then later Puffin were having.<br />
** The error in question was because something changed with the mcs.exe compilter used by Unity in their new version of .NET. What exactly was happening is still unclear, but simply switching to use %unityPath%Editor\Data\MonoBleedingEdge\bin\mcs.bat as the path fixes the issue.<br />
<br />
* Okay, a REAL fix to the compilation issue. We're simply now using the older compiler from 2017.3p1, same as has been done on Chris's machine for quite a long time. The newer compiler seems to have some sort of issue or requires some new arguments.<br />
** With this in place, we actually now don't even need unity installed on the developer machine at all in order to compile, most likely.<br />
<br />
* Fixed a typo when hiring mercenaries where it said things like "Cost: 2 of your 20 metal" instead of "Cost: 2 of your 20 hacking points"<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
* Fixed a nullref in pathfinding between planets when the target or source was null or identical.<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
*Mobile Space Docks now properly say V-Wing, Fusion Bomber and Concussion Corvette - this was missed when those ships were revamped.<br />
<br />
* Added a new DoOnSpawnsOnDeath method on the scenario and on the special faction implementations. This allows us to have central logic, or per-faction logic, for when an entity is spawned via another entity dying.<br />
** We're now using this on when a mercenary does this in order to copy to mercenary group affiliation from the parent to the child, thus preventing errors that otherwise happened.<br />
** Thanks to RocketAssistedPuffin and Ovalcircle for reporting.<br />
<br />
* Fixed an xml bug with tractor guardians where they had some tractor fields set up on their main weapon, leading to the interface not showing their tractor stats properly.<br />
** Thanks to malkiel for reporting.<br />
<br />
* Fixed a bug where if you were spending zero metal per second at the moment, it would not show your metal data properly in the tooltip over the metal field.<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
* Prevent OnDeath effects from firing when a unit is Despawning. This prevents some crashes when the Nanocaust is trying to take over HRF ships that are warping out<br />
** Thanks to ZeusAlmighty and the Puffin for reporting<br />
<br />
* Fix a bug where Dyson Hacking wasn't costing hacking points<br />
** Thanks to Ovalcircle for reporting<br />
<br />
=== Ship Targeting ===<br />
<br />
* Logic has been added to the game that should make the human forces always target enemies as if they are in FRD-mode, versus spreading damage around evenly. This requires further testing to make sure that we actually got the issue, though.<br />
** Thanks to HeartHunter7 for bringing up the various targeting issues.<br />
<br />
* Targeting weights for FRD units (on the player side) is now completely different from the targeting weights used by the non-player factions.<br />
** The AIs and humans simply have very different goals in how they fight, so letting them weight things differently makes a lot of sense.<br />
** Thanks to HeartHunter7 for bringing this up.<br />
<br />
* For every forcefield that a ship is protected by, it now gets its priority divided by 3 if it's a player doing the targeting, or by 5 if it's an AI doing the attacking.<br />
** This makes the AI in particular a lot less cheesable by sticking key ships under forcefields, and it makes your FRD units also behave more intelligently.<br />
** Thanks to RocketAssistedPuffin for suggesting.<br />
<br />
*AI Overlord Phase 1 now has very low priority instead of requiring manual target. This allows factions that don't take over planets to actually attack it, such as Enraged Harvesters from the Macrophage.<br />
**Thanks to Ovalcircle for reporting.<br />
<br />
=== Balance Tweaks ===<br />
<br />
*Macrophage Harvesters now have an engine GX of 19, to prevent them from being engine stunned forever by Spider units, including Guardians. This should let them do their thing...and not be immediately cheesed by a player with one spider turret.<br />
**Thanks to Ovalcircle for reporting this sad situation.<br />
<br />
* Command stations now SHOULD automatically capture harvesters and other neutral entities without you needing to have your engineers go running around manually. Requires testing, though.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* The Orchid Ark now has lost the ability to assist construction on other ships, but it's repair speed has gone up by 10x. This isn't a multi-repair ability, but it's such a superfast repair process that it should act very similarly to what is imagined. Let's see how that feels, anyhow.<br />
** Thanks to Malkiel for suggesting.<br />
<br />
*Carrier, Riot Starship and Tritium Sniper Starships are all bonus ships now. Siege Starships can now be built by default - so you'll have some pretty explosions.<br />
** Thanks to Malkiel for suggesting.<br />
<br />
*Siege Starships no longer spread their damage out, and instead deal full damage to at most 10 targets.<br />
<br />
*V-Wings gained 100 Hull, to 2000, and 200 Shields, to 2000. This is to help make it a Human counterpart to the Armor Ship of the AI. (Armors being tougher tanks, while V-Wings trade off for a slow debuff).<br />
<br />
*Armor Ship damage down from 206 to 120. This is so it isn't utterly wrecking everything while being more durable. These should now have the same DPS as V-Wings.<br />
<br />
*MLRS Corvettes now have the same hull and shields of Concussion Corvettes - these can now be demolished by Fusion Bombers.<br />
<br />
*Concussion Corvettes gained even more damage - from 60 to 80.<br />
<br />
*Sentinel Frigate cap halved and strength doubled for AI budgeting - they'll get less of these now.<br />
<br />
*Inhibiting Tesla Corvette cap halved and strength doubled for AI budgeting - they'll get less of these now.<br />
<br />
*Assault Starship now fires every 3s, down from 4. This is to help against Armor Ship masses.<br />
<br />
*Space Tanks now get a similar bonus against 90mm or greater thickness, like Assault Starships. This is to give a possible counter against Armor Ship masses.<br />
<br />
*Needler turrets now get a similar bonus against 90mm or greater thickness, like Assault Starships. This is to give a possible counter against Armor Ship masses.<br />
<br />
*Ablative Gatling cap increased from 120 to 180 - fear the swarm!<br />
<br />
*Lowered Scout tech costs drastically - should cost 600 for Mark 2, then 1200 for Mark 3.<br />
**Thanks to zeusalmighty for the suggestion.<br />
<br />
*Raiders now have an Engine GX of 18 - this makes them immune to almost all speed penalties - hope you have V-Wings in position.<br />
<br />
*Orchid Ark now has Vampirism in order to heal itself - 5 health for every 1 damage.<br />
<br />
== Version 0.765 Game Entity Split ==<br />
(Released September 4th, 2018)<br />
<br />
* Fix a bug in the mapgen code that could get in an infinite loop<br />
<br />
* Fix a few typos in Mercenary Descriptions<br />
** Thanks to Ovalcircle for reporting<br />
<br />
* Add a popup notification when the Risk Analyzers are close to firing<br />
<br />
* Add a 'primary_unit_must_survive_to_rehire' xml tag for Mercenaries. Setting this to false will mean that you can always rehire a mercenary group even if all its units die.<br />
<br />
* Don't allow the mercenary budget to go into debt when purchasing units; this will confuse modders.<br />
<br />
* Add a missing word in the description for Instigators<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fix a bug with self-attrition for drones. They now actually die at .1% per second, instead of 10% per second.<br />
** Thanks to Ovalcircle for reporting<br />
<br />
* Add in Science hacking<br />
<br />
* Fix null reference exception in Marauder code.<br />
** Thanks to Ovalcircle for reporting<br />
<br />
* Fix a typo on Cloaking hovertext<br />
** Thanks to malkiel<br />
<br />
* Mark 1 space dock cap increased from 2 to 4.<br />
** Thanks to Badger and RocketAssistedPuffin for suggesting.<br />
<br />
* The wormholes on player home planets will always now be extremely far out on the gravity well, so that there is plenty of room for the human home command station to be far from those wormholes.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* The Ark "Gyrn, the Voidhome" now also has the ability "Norris Effect":<br />
** Displaces enemy bubble-forcefield generators when moving into them.<br />
<br />
* Fixed a bug in the most recent version of the game where the map gen special seeding logic was even _worse_ than before, because we forgot one line of code.<br />
** Thanks to Badger for reporting.<br />
<br />
* Fixed an issue where ships would be able to repair other ships that just died, so long as they go to them in the exact frame that the ship died.<br />
** This made things like scrapping a unit go into infinite loops if engineers were around.<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
* Also fixed a bug where engineers could be set to assist space docks or similar that were blown to remains.<br />
<br />
* Fixed a bug where things that died to remains (or neutral) would still repeatedly explode even though engineers were not involved.<br />
** Thanks to Ovalcircle and crowebird for reporting.<br />
<br />
* Fixed a bug where after a ship was claimed, it would not switch to its proper claimed graphics until you tabbed out to the galaxy and back in.<br />
<br />
* There is now a new "ShotHitLogic" tracing option that will dump the data for all the ships that are hitting one another so that you can check for inaccuracies in math.<br />
** Thanks to RocketAssistedPuffin for reporting the lack of this.<br />
<br />
* When there is only a single unit in a stack that you are hovering over in the ships tab of the sidebar, it now acts as if you are directly hovering over that unit, thus showing a lot more specific info like its individual health, etc.<br />
** Thanks to Ovalcircle for suggesting.<br />
<br />
* Reorganized the campaign stats section a bit, and broadened the game performance section (as well as moving it down).<br />
** It now says if the game is paused or running, it says what the current frame is, the current entity count, the number of garbage collector calls, the total entities created, and the current command count (that last one is a rough estimate).<br />
** This helps even non-developers tell at a glance what might be going on if the performance is low (tons of commands, tons of entities created or present, it lags every time the garbage collector runs, etc).<br />
<br />
* The AI is now limited to at most 3 shield generators per planet (for now, anyhow).<br />
** Thanks to HeartHunter7 for reporting the crazy numbers of shields that were otherwise present.<br />
<br />
* Tutorial enhancements. The third planet is now just a Mark 2 planet. The player is told to use Scouts to explore it, then build Starships and upgraded Fleetships to capture it.<br />
* The Tutorial's AI has been significantly nerfed to make it much harder to lose to.<br />
<br />
* Fix a potential null reference in the Science Objectives<br />
<br />
* Weapon Renames for Macrophage and Nanocaust factions.<br />
<br />
* Fixed Anvil Securities mercenary group being called War Siegers.<br />
<br />
=== Splitting Our GameEntity For Major Performance Gains ===<br />
<br />
* Major internal refactor: GameEntity has been split into four classes:<br />
** GameEntity_Base provides the new abstract class that is underneath the other three.<br />
** GameEntity_Squad is for all of the ships.<br />
** GameEntity_Shot is for all of the shots, and is now vastly more lightweight than it used to be.<br />
** GameEntity_Other is for basically just wormholes, and is incredibly more lightweight than it used to be.<br />
** Despite all of these changes, old savegames still work.<br />
** The new data for shots is now faster to load into RAM when creating a firing shot, as well as much more lightweight when saving a game with a lot of shots in it.<br />
*** A savegame that has 14k squads and 29k shots previously took 9.61MB, but now only takes 6.66MB.<br />
** There are a few cases where code is now slightly more verbose, but overall the memory footprint is down notably, and the CPU footprint is down somewhat.<br />
<br />
* The changes to splitting out the shot data, and thus making it not remotely so heavy to initialize, makes it so that when there are thousands of shots being spawned in a second, it no longer causes lag spikes like it previously did. It was actively causing huge amounts of hitching before, simply as a part of creating all those new objects in memory, it turns out.<br />
** In our test case, with the prior version of the game it was hanging for about 3 seconds every 3-5 seconds, and it was running at something like 35% speed when not hanging. It now has no hitches in that same savegame, and runs at a solid 45% of full speed. This is even true as it progresses into having more than 45k active shots in the game at once, pretty much all of which are all on one planet (nightmare performance scenario).<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* When saving to disk, some of the fairly-temporary data having to do with the plan for the next frame (that has not happened yet) is no longer saved. It simply isn't needed on disk, but it is needed for sync between clients in multiplayer.<br />
** This brings the on-disk size of the large savegame that has 14k squads and 29k shots further down from 6.66MB to 5.29MB.<br />
<br />
* A new function has been put into our serializer, where it "compacts" down the Int64 variables that are used for GameEntityIDs, by simply renumbering them 1-x as they are added into it. This only happens when saving it to disk, but it has the effect of majorly reducing the filesize of long-running games (or those with a lot of shots in them over time).<br />
** This brings the on-disk size of the large savegame that has 14k squads and 29k shots -- which had had over 10 million entities in it since starting -- further down from 5.29MB to 2.68MB.<br />
<br />
=== Nanocaust Tweaks ===<br />
* Make Nanocaust hacking a bit tougher. <br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* Fix a variety of issues with the Nanocaust<br />
** Thanks to Ovalcircle for reporting. Note that these changes may well make the Nanocaust more aggressive toward the player. This seems like a good thing<br />
<br />
* Improve the Nanocaust notification and objective messages<br />
** Thanks to Puffin for reporting<br />
<br />
=== Dyson Sphere Tweaks ===<br />
<br />
* The Dyson Sphere now uses tracing to log events, which can be enabled or disabled during the game via the Debug menu.<br />
<br />
* Fix a bug where Antagonized Dyson Spheres weren't producing units, and also the Description on the Antagonized Dyson Sphere will tell you what is causing the Antagonization.<br />
<br />
* Allow Three hacks for the Dyson Sphere<br />
** One steals a Dyson Sphere ship design<br />
** One increases the Dyson Sphere's unit production<br />
** One decreases the Dyson Sphere's unit production<br />
<br />
=== Balance Tweaks ===<br />
<br />
* This whole section is thanks to RocketAssistedPuffin.<br />
<br />
* Anvil Securities Riot Ship made MK4, now get half as many.<br />
<br />
* War Sieger has been rebalanced - used to spread damage among targets, now it deals full damage to at most 10 in the blast radius. Weapon damage and firerate reduced to compensate.<br />
<br />
* Anvil Securities can be hired twice, if the Riot Starships survive. All others only hireable once.<br />
<br />
* Fixed Regenerator and Botnet Golems having half the range of their counterparts.<br />
** Thanks to Mckloshiv for reporting.<br />
<br />
* ShieldGenerator Priority 750 > 75, Shield Guard Posts given same priority (they have a gun, but their main purpose is to shield so gave them same).<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
* Guardian Health change to 1/4th what it was, and AI Guard Post Health 5x what it was. <br />
** Thanks to Badger for suggesting.<br />
<br />
* AI Overlord Phase 1 now requires manual targeting to attack - this avoids ships attacking it above hostiles that actually fight back. <br />
** Thanks to Ovalcircle for suggesting.<br />
<br />
* Ion Cannons health reduced to a third of what it was before.<br />
** Thanks to Badger for suggesting.<br />
<br />
* Assault Starship now gains damage multiplier vs targets with at least 90mm thickness, down from 100. This is to give the players something to fight Guardians and sometimes other starships with early on.<br />
<br />
*Fusion Bomber damage increased from 150 to 225 at Mark 1.<br />
<br />
*Concussion Corvette damage increased from 50 to 60 at Mark 1.<br />
<br />
*Scouts now have double the cloaking points at MK1, and only gain 1000 per Mark.<br />
** Thanks to Kesseleth and Badger for mentioning these.<br />
<br />
*Engine GX of Assault, Shield, Star and Carrier Starships increased to 16. This now makes them immune to Spider fleetships and Spider Turrets, but not Guardians. This was apparently *really* annoying. <br />
** Thanks to Badger for reporting this nuisance.<br />
<br />
*Spider Fleetships, Turrets, and Guardians now have a maximum stun of 10 seconds. This is to stop ships being stuck for a full minute and just being annoying, while being high enough to still be decent in combat.<br />
<br />
*Lost Spire Frigate has a much improved weapon on it, firing every 2s and dealing 20,000 damage. Shields improved from 100,000 to 150,000 to better represent their shielding technology.<br />
<br />
*The original Mercenary groups have received a general improvement - to cost, hire count, strength, etc. Descriptions also list how long they last.<br />
<br />
*MLRS Corvettes, Turrets and Guardposts now have a reload time of 6s, up from 2s. This is both a balance nerf and a minor performance increase - they were simply firing way too many shots per unit.<br />
<br />
== Version 0.764 Mercenary Surge==<br />
(Released August 30th, 2018)<br />
<br />
* Fixed a nullref that could happen in the nanocaust notification display.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* Put in better protection and notification for a nullref that could happen in GenerateDysonSphereObjectives.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* There is now a better check in findAIKing in the nanocaust function where it will throw a visible error if it can't find an AI king and the game is still going on. If the game is already won, then it just says nothing because that's A-OK.<br />
** Similar logic is now in place for dead humans.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* If the player has lost and there is no human king planet, the nanocaust now properly routes randomly.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* The "BUG: nanocaustInfectedPlanet, the planet passed in is null somehow" now will give line numbers if it gets triggered, since it is potentially a problem.<br />
** That said, several cases that could lead to that branch have now been fixed, as they mostly revolved around valid missing targets and needing to find a random target.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* It appears that the warning "Could not unlock ship line: [whatever] because it was already unlocked!" was being triggered because of duplicate claim calls to ARS units. That should now be fixed so that it doesn't throw the spurious error.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* A protection has been put in place to prevent ShipsDying from getting the same ship in it twice in the vis layer. This may not have even been a concern, but because of "MINOR BUG: ship killed is already on Dying list" popping up, it was worth looking at.<br />
** "BUG: ship killed is not part of target squad." is still on the loose, though, but quite rare.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* The big scary message of "During placement: Command station already here and placing command station!" is now replaced by a log-style message on the side, instead, like other non-bug-based error messages during placement.<br />
** Thanks to RocketAssistedPuffin and HeartHunter7 for reporting.<br />
<br />
* The big scary message of "During placement: entityDoingThePlacing == null!" is now replaced by something much better.<br />
** The new message is: "Construction source died prior to construction start -- cannot build this now."<br />
** Thanks to Badger for reporting.<br />
<br />
* Put in better logic that will show us what is really going on when you try to hover over a macrophage harvester whose special faction doesn't have the proper implementation type: it will say what the faction and implementation type actually is as an error in the tooltip, now.<br />
** This was the "System.InvalidCastException: Specified cast is not valid" in Arcen.AIW2.External.HarvesterDescriptionAppender.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* Fixed the "data.PerPlanet[X] is null" error from the Dark Spire, which was essentially a race condition and something that we could work around easily once we knew it was there.<br />
** This may have been something that interfered with background thread execution, but it's hard to be sure. Most likely it was not.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* Fixed the "BUG: Harvester on [X] has null hdata" issue, which has a less-clear cause but probably was also a race condition of some sort.<br />
** At any rate, simply lazy-initializing this data is harmless and solves the problem, since there is no important data in MacrophagePerHarvesterData that can't be initialized at the time it is needed.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* Under the hood, the map generator now logs to your debug log anytime it generates a new map. It logs the type and the seed, but not all the other settings. It also logs when it's complete. So we can see from a log how long something takes if it is slow, which is useful, and if something doesn't complete because of a deadlock or similar. In those instances we'll have the map seed and such so that we should be able to duplicate your settings and remove whatever the deadlock is. It won't cause the map thread to come back from a deadlock, but since those are hopefully going to be incredibly rare that shouldn't be an issue. Main thing is that this will let us test and fix them quickly.<br />
<br />
* The internal variable GalaxyCenter has been renamed to GalaxyMapOnly_GalaxyCenter, to make it super clear that this is only for galaxy map generation.<br />
** This was erroneously being used in mercenary code that is planet-based, and thus was putting mercenaries outside the grav well.<br />
** This should have been using Engine_AIW2.Instance.CombatCenter, which is the center for planets.<br />
** However, this didn't actually cause any issues, since it was being overriden anyway.<br />
<br />
* Mercenaries that spawn in now do so at 90% of the grav well radius instead of all the way on the border (being all the way on the border causes them to sometimes get stuck on the border).<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Fixed an issue with the mercenaries data table where it had a MercGroupName that was being pulled in instead of using the underlying InternalName and DisplayName.<br />
** Related to this, all the display_name fields were blank, so in places that used DisplayName instead of MercGroupName, the mercenary name showed as blank.<br />
** Now everything uses the built-in fields, and the xml files have been updated to include the mercenaries fine.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Fixed a bug where the savegame metadata file would fail to save if certain setup data was missing (such as the map type). This would then cause the game to stall out and give you the "wrong frame for command" error after autosaves attempted.<br />
<br />
* The term "Cloaking Points" has been shortened to just "Cloak" in order to prevent its text from running into the next item.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* Fixed an index out of range exception that could happen in GetPlanetForInstigatorBase if there were no valid target planets found for whatever reason.<br />
<br />
* Fix a bug with risk analyzers<br />
<br />
* Fix a bug calculating the strength of secondary units to spawn for Mercenary Groups<br />
** Thanks to RocketAssistedPuffin for the bug report<br />
<br />
* Mercenaries were never actually set up to charge the player for their services, heh.<br />
** They now not only charge you, but they give a message when you try to hire them but can't afford them.<br />
** They also show what their costs are in their tooltips, which they previously did not do.<br />
** When they are hired, all players also now get a message saying who was hired, for where, and for how much.<br />
** Mercenary names now show up as red if you can't afford them.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Mercenaries are now only marked as summoned if they actually were successfully summoned.<br />
<br />
* If the Hunter Fleet has obtained a usurper (for example, player defends from a reconquest wave but the usurper gets away. Then the usurper joins the hunter fleet), make sure that it claims any planet in the name of an AI faction, not the Hunter Fleet. Also prevent the Nanocaust from claiming usurpers, since otherwise it would wind up claiming Nanocaust planets for the AI.<br />
** Thanks to OvalCircle for bringing this to my attention<br />
<br />
* The tooltips for mercenaries now specify what kind of planets they are willing to work on, and if they're willing to be hired on the current planet or not.<br />
<br />
* The mercenary hiring header now includes a count, has a better tooltip, and is more clear when there are no mercenaries around.<br />
<br />
* Fixed the bug where all the mercenary options were displayed stacked on top of one another.<br />
<br />
* The list of mercenary groups that can be hired now only includes a single copy of each mercenary outfit, rather than a copy for each discovered communicator that can hire them.<br />
<br />
* Add the ability to have mercenaries controlled directly by the player. To use this, add the field 'donate_to_player=true' to the mercenary XML. <br />
** Currently untested. Let me know if it works<br />
<br />
* Added a new SingleMercenaryGroupState that is now serialized on the central MercenaryGlobalData, replacing the old data strucutre that was previously serialized per-communicator.<br />
** Now mercenaries have a properly-global status instead of it being per-communicator.<br />
<br />
* The Mercenary data structures in general have been majorly rewritten in order to be fully mod-compatible (using InternalName instead of a manual groupID that is more likely to have conflicts), among other improvements such as making the mercenary status global for each mercenary group instead of tied into the communicator that is able to call them.<br />
<br />
* Fixed the bug where in the tooltips the cap of ships was being shown wrong.<br />
** Thanks to Ovalcircle, RocketAssistedPuffin, and zeusalmighty for reporting, and Badger to finding the fix.<br />
<br />
* The cap for space docks is now per-planet instead of galaxy wide, and it's now 2 instead of 30.<br />
** Space Docks can now be upgraded for tech cost to get more dock ship cap, make them build faster, have more health, etc.<br />
** It's not a particularly good investment, but it's something that in certain circumstances could be really useful, so this is technically "candy tech."<br />
** The metal cost for Space Docks has also increased from 600 (!?!?) to 35000, which is more in line with other similar ships.<br />
<br />
* The shield generator per-planet cap has been dropped to 1 from 2, which makes it so that when you get to high-level versions of these you can't have so very many of them per planet. These are really meant to be scarce. Their max mark level is also now 3 instead of 7, for players only.<br />
** In existing savegames, the AI shield generators will wind up being capped at mark 3 retroactively, as well, but in new savegames that won't be the case.<br />
** Thanks to zeusalmighty for reporting the imbalance here.<br />
<br />
* Fixed a bug where mark 2 of ships that have a cap of 1 at mark 1 would still have a cap of 1, but then it would jump to 3 at mark 3. Now it properly goes to 2 on mark 2.<br />
<br />
* The game now properly limits what kind of planets mercenaries are willing to spawn on.<br />
<br />
* The "modder game command" is a lot more powerful now, with a faction and context being passed in so that you can create ships directly during it.<br />
** Mercenary ships are thus now directly created when you request them, which means that requests can work while you are paused.<br />
<br />
* Finished replacing all references to merc communicators instead now being merc beacons.<br />
<br />
* 5 beacons now seed per galaxy, instead of 3.<br />
<br />
* Fixed an issue where immobile ships could become mobile under certain circumstances since two versions back.<br />
** Thanks to zeusalmighty, Badger, and RocketAssistedPuffin for reporting.<br />
<br />
* Protections and logging have been put in that should solve the problem of nullref exceptions after a mercenary unit spawns another mercenary unit on death.<br />
** This hasn't been tested, so if it still breaks in the next version then we'll need a savegame, but that wasn't possible prior to now.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* The mapgen seeding of special items and faction goodies is vastly improved.<br />
** Factions that are major (Dyson, nanocaust, etc) should never seed on the same planets as each other anymore.<br />
** The places that these objects will seed is no longer just in the inner part of each planet system, but is specified in mapgen (most are "anywhere" now). This makes things a lot more varied-feeling.<br />
** The actual logic for doing the seeding is now much faster, and does not allow for placing duplicates of the same type on one planet (such as 3 mercenary beacons on a single planet).<br />
<br />
* You can now see what mercenary groups a beacon can contact BEFORE you hack it.<br />
<br />
=== New Mercenary Factions By RocketAssistedPuffin ===<br />
<br />
* New Mercenary factions by RocketAssistedPuffin!<br />
** War Harvesters<br />
*** Purchase a group of War Harvester bots from a fellow resistance group. These bots harvest metal from their targets and grant it to you. These are put under your command.<br />
** War Siegers<br />
*** Purchase a group of War Sieger bots from a fellow resistance group. These bots wield dual mini-plasma cannons for long range devestation. These are put under your command.<br />
** Automated Firesupport<br />
*** An abandoned drone factory will supply you with a temporary force of sniper units, if given construction material. These will fight to the death. Lasts 10 minutes.<br />
** Automated Shredders<br />
*** An abandoned drone factory will supply you with a temporary force of Cutlass and Vampire units, if given construction material. These will fight to the death. Lasts 10 minutes.<br />
** Automated Construction Swarm<br />
*** An abandoned drone factory will supply you with a temporary force of modified construction bots, that spawn smaller copies on death, if given construction material. These will fight to the death. Lasts 10 minutes.<br />
** Anvil Securities<br />
*** Before the current war, they used to be a defense contractor. Now, for a price they'll help defend nearby friendly and neutral planets with their Riot Starships and Spiders. Leaves after 10 minutes.<br />
** These came with the following new units:<br />
*** War Harvester, War Sieger, Automated Sentinel Frigate Drone, Automated Sniper Drone, Automated Vorticular Cutlass, Automated Vampire Claw, Automated Construction Bot, Mini Automated Construction Bot, Anvil Securities Spider.<br />
** Obviously huge thanks and kudos to RocketAssistedPuffin!<br />
<br />
== Version 0.763 Supersized Ship Caps==<br />
(Released August 29th, 2018)<br />
<br />
* Fix a bug with the Devourer notifications, a bug with astro train hovertext and a type in Fleetships xml.<br />
<br />
* The Sniper fleetship now gets its damage bonus against ships with 1350 speed and up rather than 1800 and up.<br />
** Thanks to RocketAssistedPuffin for suggesting.<br />
<br />
* The in-game tooltips now clarify that you have to have no cloak points before any cloaking regen will happen.<br />
** Thanks to RocketAssistedPuffin for suggesting.<br />
<br />
* The cloaking points lost by ships should now properly round up instead of down, which should make it 5 shots to decloak instead of 6. Needs to be re-tested, though.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Tractor fields can no longer grab cloaked units. They're considered more of an active ability, whereas gravity fields still slow anything in range.<br />
** If something is already tractored and then cloaks, it will probably stay tractored.<br />
** Thanks to RocketAssistedPuffin for suggesting.<br />
<br />
* Fixed a bug where drones would likely sometimes not get created inside their parents. Wasn't likely happening yet, but could have bit us in the future.<br />
<br />
* Put in a change that should make it so that drones spawn out of their parent with the same mark level as the parent, OR with the max mark of the drone if that is lower than the mark level of the parent. It was supposed to already be doing that, but apparently was not; it now definitely works.<br />
** Thanks to Badger for reporting.<br />
<br />
* Fixed the display of the strength units on the astro train descriptions so that they are of the right visual magnitude. Will need to be tested to be sure it's right, though.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Fixed a bug where the gravity multipliers from turrets were being applied twice, plus having another clamp that was inappropriately lowering things.<br />
** Also made it so that there is now a cap on how slow ships can be knocked from gravity sources that is speed 80 (can be tweaked in external constants with min_move_speed_for_mobile). Engine stun can of course make them slower than that.<br />
** Thanks to Badger for reporting.<br />
<br />
* FINALLY and definitively fixed the screen flashing bug, which was an issue with the scale of gimbals getting massive on death when their squad would zoom off to ArcenPoint.OutOfRange.<br />
** This is now capped so that the icons can't ever get that huge, and you should just see the icon flash big in the center of your screen if it were to have the issue now (from some other source of the squad zooming off inappropriately).<br />
** But more importantly, we also fixed the underlying issue with the squads zooming off out of range. This was probably the culprit in some other cases, too.<br />
** Thanks to Badger for a savegame where we could recreate this 100% of the time, and thus were able to hunt it down. And thanks to Ovalcircle, HeartHunter7, RocketAssistedPuffin, and others for reporting the issue.<br />
<br />
* Fixed an exception that could happen on astro train notifications.<br />
** Thanks to Ovalcircle for the save.<br />
<br />
* Fixed some exceptions that could happen in the ships sidebar.<br />
** Thanks to Ovalcircle for the save.<br />
<br />
* Fixed some exceptions that could happen in the escape menu, thus preventing saving.<br />
** Also fixed it so that any future exceptions there can't absolutely halt the game, and will give us better debugging info.<br />
** Thanks to Ovalcircle for the save.<br />
<br />
* When ships cloak, no longer show an Explosion. The ships weren't blowing up, it was just playing the explosion animation<br />
** Thanks to RocketAssistedPuffin for the bug report<br />
<br />
* Don't show galaxy map link colours during the game lobby<br />
** Thanks to RocketAssistedPuffin for reporting<br />
<br />
* Put in some protection logic for preventing nullrefs in UpdateSquadStatusFromEntity, and code that will give us a better idea where the nullrefs are if we didn't get them.<br />
** Same for UpdateEntitiesShownAtPlanetInternal on galaxy map planets.<br />
** Thanks to Badger for reporting.<br />
<br />
* Carrier starships can now build far more drones, and build them faster at each mark level the carrier goes up.<br />
** The astro train carrier also builds more drones now, and the non-carrier-style astro train no longer tries to build drones.<br />
** The marauder outposts also now build drones faster at higher mark levels.<br />
<br />
* Allow the Nanocaust to still find targets after the AI king is dead<br />
** Bug report by HeartHunter<br />
<br />
* Fixed it so that now the human home command stations in the REAL GAME actually spawn away from wormholes. In the prior release's update, we only corrected that for the tutorial map generation!<br />
** Thanks to RocketAssistedPuffin for reporting and providing detailed saves.<br />
<br />
* Fixed a bug where cloaking points would actually regenerate even while the ship was not fully decloaked yet.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* The wording on the Raptor special spawn-camping ability is now more clear.<br />
** Thanks to HeartHunter7 for suggesting.<br />
<br />
* Wormholes can now spawn between 25% and 75% of the way to the outside of the gravity well, rather than 30% to 90% of the way to the outside.<br />
** This prevents issues with scouts that want to run to the outside of the gravity well upon entering a planet not being able to get very far, and it also makes travel distances between planets slightly smaller on average.<br />
** Thanks to RabidSanity for reporting.<br />
<br />
* When entities have attack orders, hovering over them will now show what they are set to attack in the tooltip. If they are just auto-firing, it won't show anything, though.<br />
<br />
* If a ship is autotargeting other ships, you can now see what it's doing in the tooltip hovering over it. Up to two of the ships it is targeting.<br />
<br />
* Add some new optional XML fields for Mercenary groups: primary_strength_aip_multiplier, secondary_strength_aip_multiplier and tertiary_strength_aip_multiplier. So if you define (say) a group to summon 500 primary strength with a 10 AIP multiplier then you get 500 + currentAIP * 10. This allows summoned mercenaries to be scale as the game goes on. Otherwise it's very hard to make Mercenaries useful in the late game but not ridiculously strong in the early/mid game. If you are balancing your own Mercenary company, I would suggest putting more of the strength budget into the AIP multiplier.<br />
** Added in particular for the fastest puffin in the west, since noone else has assumed the mantle of Mercenary Maker<br />
<br />
* As sometimes happens with multithreading issues, we're not really sure WHY this was happening, but we know that it was and we're pretty positive we fixed it.<br />
** Basically, ships could wind up being told to autotarget ships that were on the wrong planet, and then would shoot at them. This led to many odd behaviors, as well as a lot of wasted CPU.<br />
** This may have mostly been from ships moving between planets, it's hard to say; in those instances, it now recognizes the disconnect and simply stops targeting the ship that's now on another planet. This is a valid case that gets done away with.<br />
** The other issues may have been some cross-thread mixing of array data somehow, and we've simply rearranged the code some to try to prevent that sort of thing. That seems to have worked, although we weren't super successful actually catching it in the act anyway. At least it's easier to read, now, either way.<br />
** We're also no longer persisting ship autotargeting data to disk, although we are still persisting it across network syncs (of course). This should make savegames a slight bit smaller in some cases.<br />
** Anyhow, this may have been one performance issue in certain long-running savegames, we're not sure. It's an improvement, either way.<br />
** Thanks to Ovalcircle for reporting and for the super useful savegame that let us constantly repro this.<br />
<br />
=== Balance ===<br />
<br />
* A TON of balance work has been done, making ships in general do about 10x less damage than they did before... except for a lot of the fleetships, which were already a lot lower than the larger ships. These now do something like half or two thirds of what they did before, or in a few cases very close to what they did before.<br />
** Overall the idea is that battles should actually last more than an instant now, and in particular the Tesla Turrets have been heavily nerfed so that they don't eat everything.<br />
** This is probably an appropriate range for ships in terms of how fast they kill fleetships, but it may be that starships and other large structures now last too long. Not really sure, we'll see. Hopefully the game doesn't become too slow-feeling from this, but rather just slow-feeling in spots that we can correct.<br />
** This may have even further marginalized snipers, it's hard to say. If anyone wants to fiddle with their balance, please feel free to tell us what you find.<br />
** Thanks to Badger, HeartHunter7, and RocketAssistedPuffin for various reports leading to these changes.<br />
<br />
* The squad caps for all of the player fleetships have been tripled.<br />
** This doesn't affect the AI at all, or other factions, but it gives the player a LOT more to work with in terms of churning out lots of ships that cost metal and can do damage, etc. It should make progress far easier to make than before, even with the lowered damage amounts on ships. Players just had too few ships, period, before.<br />
<br />
* Player ships will no longer downgrade themselves to the "current" mark level of the player's ships if somehow the player has a higher-mark version of them.<br />
** This is particularly relevant for drones that are spawned, but also for zombies, etc. This changes a lot in terms of power on the player side (doesn't affect AIs or other factions, since they don't use this logic anyway).<br />
** Thanks to Badger for reporting and for the save.<br />
<br />
=== No More Savegame Breaking For Now ===<br />
<br />
* When deserializing a world fails, it now gives a better error message, and also makes sure to clean out WorldDeserializingErrors.txt before writing to it.<br />
<br />
* Added a new LookupSwap feature to our core engine, which lets us change the names of game entities without breaking old worlds... so long as an entry is made in the LookupSwaps folder for them.<br />
** The xml files are stored in GameData\Configuration\LookupSwaps.<br />
** An entry for renaming a GameEntity might look like this:<br />
*** <swap name="Fortified TeslaTurret" new_name="FortifiedTeslaTurret" /><br />
** If you rename an entity, then all its systems also need to have swap entries that rename the entity-based parts of their name, like so:<br />
*** <swap name="Fortified TeslaTurret_TeslaCoil" new_name="FortifiedTeslaTurret_TeslaCoil" /><br />
** And hooray, now we're no longer locked into specific xml entry names if we have typos or in general want to rename ships!<br />
** Because of this addition, at this point we are probably not going to break savegames anymore after all. Certainly not casually. Too many good savegames for testing and bug repros have been coming in, anyway!<br />
<br />
== Version 0.762 Spreadshot ==<br />
(Released August 28th, 2018)<br />
<br />
* '''Savegames should be okay in this one, actually. We just were working on bugs and balance.'''<br />
<br />
* Fix a null reference when enabling auto-kite. <br />
** Thanks to HeartHunter and rocket assisted puffin for the bug reports.<br />
<br />
* Finally give the user some feedback when they win the game. It's not great feedback, but it's something, and the game now plays the Victory music. There are still some issues with this, for example the "You Won the Game" text in the resource bar scrolls off the edge of the screen.<br />
** A lot of people have complained about this one<br />
<br />
* The game now properly takes into consideration damage reductions based on ships being further away from their targets when there is an incoming damage modifier of that (such as the fortified tesla turrets, etc).<br />
** Previously, ships would just sit outside the range and not actually shoot at them, but that should no longer happen.<br />
** Thanks to Zharmad for reporting.<br />
<br />
* Now the game will complain about various types of AttackDistance based damage modifiers if they are set up in a way that will bork the AI or make for targeting paradoxes. Nothing was actually set up that way, previously, but it's just future-proofing for modders (and ourselves if we forget).<br />
<br />
* Fixed a bug with incorrect overkill detection against squad-based ships since the start of the era of discovery.<br />
<br />
* Fixed some lack of clarity with a few variable names that are shot-specific but could be confused as being more generalized. Target is now Target_IfIAmAShot and so on.<br />
<br />
* Added post-deserialization logic tree that drives all the way down to entity orders, thus letting us belatedly link up some things.<br />
<br />
* The game now keeps track of the amount of attacker damage incoming for a given entity, rather than the count of attackers.<br />
** This is now used in order to prevent massively overkilling targets, and is now used in place of the "even out attackers" logic to make it so that it's "even out damage" instead. Or in the case of priorities, evening out the damage after choosing not to overkill.<br />
** It does this in a rolling fashion that won't let stale data in there.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* AI update: the AI ships will no longer retreat if there's a king unit present on the planet they are attacking unless they are outnumbered like 20:1. This makes them much more persistent at winning the game if they're not after you with overwhelming force at the time.<br />
<br />
* Show current Hull/Shield values in the tooltip, not always the max hull/shields. Otherwise you had to try to calculate what (say) 35% of 40K is in your head quickly, which isn't much fun.<br />
<br />
* Fixed a bug where it would throw an xml exception on load anytime we adjusted the default_should_override_saved_if_older_than_version on keybindings.<br />
** Thanks to Ovalcircle, Badger, RocketAssistedPuffin, and windgen for reporting.<br />
<br />
* Altered the game to use Ctrl+Num instead of Shift+Num for setting control groups. Aka to be like every other RTS, including AIWC.<br />
** Thanks to chemical_art, Draco18s, Badger, and zeusalmighty for suggesting.<br />
<br />
* Fixed up the tooltip for the control groups button in the dock so that it tells you the correct keybinding to use even if you've rebound the keys.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Fixed a bug where queue-based ship production was being limited by whether or not the planet of the dock/constructor was hostile or not. It would prevent mobile docks from building stuff on enemy planets, for instance.<br />
** Thanks to zharmad for reporting.<br />
<br />
* Selecting a hacker will now open the Hacking Menu instead of the Science menu<br />
<br />
* Fixed a bug where all ships (yours and the AIs) were mistakenly able to target each other even when they were cloaked, thus leading to ships chasing cloaked ships. Now they can't target them, and lose target on them if they already had targeting on them.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* Fixed the selection ring scale for all the various Arks to be what they were pre-pivot. It was woefully undersized in the current version, leading to them being very hard to select.<br />
** That is what the size_scale attribute does, if anyone else is seeing ones they want to tweak further.<br />
<br />
* Added a constructor name and description for Gyrn.<br />
** Also made the constructor names for the other constructors more brief.<br />
<br />
* Any ships that have the ability to build via build menus now show up as constructors that will make them appear on the sidebar.<br />
** Thanks to RocketAssistedPuffin for reporting the need for this.<br />
<br />
* Fixed the BuildingShipsInternally metal_flow to be properly on the actual entity definition for Gyrn, rather than accidentally under its weapon system. This had been preventing it from working properly, previously, as well.<br />
** Thanks to RocketAssistedPuffin for reporting.<br />
<br />
* When hovering over a constructor in the docks menu, it now shows you the BuildingShipsInternally speed in metal per second there, too.<br />
<br />
* When the throughput of BuildingShipsInternally is missing or less than 0, the sidebar now skips showing you what would otherwise be a builder (useful for those things that become builders at higher marks, like Gyrn).<br />
<br />
* Fixed a bug where pausing construction queues gave a message saying it was re-enabling the queue.<br />
<br />
* Fixed the spacing of the second column in the tooltips so that shields values larger than 9 million can show without overlapping Armor. Also gave a bit of extra room for the hull column.<br />
<br />
* Fixed a bug where you could drive yourself into negative metal using matter converters.<br />
** Thanks to RocketAssistedPuffin for inadvertently showing us his sneakiness on this. ;)<br />
<br />
* Matter converters now stop producing energy while your stored metal is zero.<br />
** This is true for any ships that have a negative metal production.<br />
** It also now shows the icon background for it having a problem on its gimbal when this is the case.<br />
<br />
* When a ship is disabled, the reason for that is now shown in red at the bottom of its tooltip; before it wasn't always clear why it was disabled.<br />
<br />
* Put in better debugging for any sort of modder command errors that might pop up, and also made it so that they won't execute over and over.<br />
** Note that this hasn't actually solved the core issue yet, but it will help us find it next release.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* Raid Starships (human and AI) now use Fusion Bolts instead of Plasma Bolts for their weapon. This is giving them a bomber-like ability to bypass the personal shields of enemies, making them actually good at what their name states they are for.<br />
** There are still more changes needed for the raid starships and many other ships; those are a work in progress. But this is a step in the right direction.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Tachyon Sentinels now have vastly less hull health and a bit less personal shielding. Bombers and raid starships and similar will take them out quite fast now, but other ships will still take a while (not SO long, though).<br />
** Thanks to zeusalmighty for suggesting.<br />
<br />
* Wormhole Sentinel range cut from 12000 to 3200 to better match what its description says.<br />
** Thanks to RabidSanity for reporting.<br />
<br />
* MLRS Turrets, Corvettes, and Guard Posts have all had their base damage reduced quite a bit, to make them not so overwhelming.<br />
** The descriptions on the turret and guard post now match that of the corvette, and they also now have the picking-off-stragglers bonus ability.<br />
** Thanks to RocketAssistedPuffin for reporting the balance issue with corvettes.<br />
<br />
== Version 0.761 A Badger And A Puffin ==<br />
(Released August 27th, 2018)<br />
<br />
* '''All savegames are going to be broken in this one, too, just a warning!'''<br />
** '''We're just going through a very change-heavy period in the short term. Thanks for bearing with us!'''<br />
<br />
* Turn the Control Group Rally green when active<br />
<br />
* Some minor tweaks to the tutorial<br />
** Thanks to RocketAssistedPuffin and RustyBucket for the suggestions<br />
<br />
* Enable auto-kite, or something like it. This is available as a Setting<br />
** Add new "Kite Master" fleet type to both Hunter and Warden fleet. Their units will auto-kite against you<br />
<br />
* Using the "select build tab" (B key) no longer selects all the builders, since there's no reason to do that. Same with the tech and hacking tabs.<br />
<br />
* Units that cannot move can no longer be engine-stunned, and units that have no weapons can no longer be reload-slowed. These cluttered up the UI as well as making for useless work on the CPU (though a trivial amount).<br />
<br />
=== Bugfixes ===<br />
<br />
* Don't allow Hacking Points to be obtained from an AI planet<br />
** Thanks to RocketAssistedPuffin for reporting<br />
<br />
* Fix a bug with Dark Spire Vengeance Strike notifications<br />
** I think Puffin mentioned it?<br />
<br />
* Human Command Station Home Cores no longer spawn automatically, to avoid confusion. We'll later make a "do you want to continue" dialog that lets you spawn one on a planet of your choice that is player-controlled or neutral, or formerly your planet.<br />
<br />
* Shield Generators are now buildable<br />
** Thanks to RocketAsssistedPuffin for contributing this fix<br />
<br />
* Fix a bug where units could heal to > 100% health<br />
** Thanks to RabidSanity for reporting<br />
<br />
* Fix a bug where endless reconquest waves were spawning.<br />
** Thanks to Ovalcircle (and possibly others) for reporting<br />
<br />
* Hacking points used against this faction is now tracked in the Faction object, since minor factions can also be hacked<br />
<br />
* Fix a number of bugs in the reconquest wave code.<br />
** Prevent truly enormous reconquest waves from spawning, due to a bug where each reconquest wave was never clearing the previous budget<br />
** Fix an exploit where the player could deliberately leave a low-mark planet undefended, let the AI reconquer it, then clear out the planet again. When done repeatedly this could deplete the AI's reconquest budget. Now put a cap on how frequently the AI will try to recapture a given planet (no more than once every 10 minutes).<br />
*** Thanks to a number of people for reporting this.<br />
<br />
* Make nannocaust hacking cost hacking points<br />
** Thanks to RocketAssistedPuffin for observing<br />
<br />
* Don't show two raid starships in the Tech menu anymore<br />
** Thanks to RocketAssistedPuffin for reporting<br />
<br />
* The Ark can now be upgraded, as can your metal generators.<br />
** Thanks to RocketAssistedPuffin for doing all the work/sleuthing for Ark upgrades<br />
<br />
* The AI can now actually build its Raid Starships. Previously it had a built_by of the human starships bag, but it needs to be in a built_by that the AI uses (in this case BasicGuardianDrawBag). Not all AI ships have to be in a built_by category, but if they aren't directly pulled by either that or by "tags," then they won't ever appear.<br />
<br />
* Adjusted the ModderCommand game code to take a string instead of an integer/enum, because that's the only way that modders can add things to the game truly obliviously of one another. Before the system was going to make them share a central enum, but that would have led to an inability to compile when there are multiple complex mods, and them having to use our same central DLLs. The strings approach is great so long as something that is suitably unique is used, and so long as modders don't make any frequent commands have absurdly long strings.<br />
<br />
* If the assistance range is blank on an entity that has a metal flow set up that needs an assistance range, it now throws an error on startup so that the modder or developer knows they forgot that bit.<br />
<br />
* The visuals for AOE effects like lightning attacks should now scale up properly to actually match the scale that is being used in-game. Been meaning to do this for a long time.<br />
** Have not been able to test this yet, though, so if it's wonky please let us know.<br />
<br />
* If the AOE size of something that detonates immediately is smaller than the firing range of the same unit, then it will now complain on startup so that you know to fix this, because it leads to strange results.<br />
** Thanks to RocketAssistedPuffin and Ovalcircle how useless the Lightning units were when those values were incorrect.<br />
<br />
* Fixed some ships that were supposedly able to claim neutrals but really were not; now they don't even pretend they can.<br />
<br />
* Fixed a bug where only things that were specified as NOT being able to be built on enemy planets could be built there; whoops.<br />
** Thanks to RocketAssistedPuffin, Ovalcircle, and HeartHunter7 for reporting.<br />
<br />
* Put in a fix that definitely prevents the sudden migration of wormholes when you swap between planets, and which might prevent the same with turrets and similar immobile ships.<br />
** However, if you still see ship icons moving unexpectedly around, a savegame and repro case would be very welcome.<br />
** Thanks to HeartHunter7, Badger, Ovalcircle, and RocketAssistedPuffin for reports.<br />
<br />
* Give Carrier Starships drones to spawn again. Currently they get V-Wings and Fusion Bomber drones<br />
<br />
* Previously, the cloaking system was not explained on ships! Now it explains it like any other system, and shows how many cloaking points it has, etc.<br />
** Thanks to TheVampire100 for reporting.<br />
<br />
=== Balance ===<br />
<br />
* Balance pass: Nerf fleetship damage to give turrets/Starships a stronger differentiation. Significant nerfs to MLRSs. Buffs to Starship damage.<br />
** Thanks to a number of people for tipping me off about various OP units, including (but not limited to) RocketAssistedPuffin, Zeusalmighty, ovalcircle, zharmad, TheVampire100, and others whose names have doubtless escaped me<br />
<br />
* Nerf the armor penetration of Concussion Corvetters to be more effective against fleetships than guardians. May need further nerfs<br />
** Thanks to Zharmad for pointing this out<br />
<br />
* Make more Dark Spire ships spawn on an attack<br />
** Thanks to someone on Discord for pointing out that Dark Spire was boring.<br />
<br />
* The human home command station now gives 50k energy instead of 30k, to make energy less tight at the start of the game. Please let us know if it's still too tight.<br />
** Thanks to Vinco for suggesting.<br />
<br />
* Give the Dyson Sphere its own unique units, and redo the spawning logic<br />
** The Dyson Sphere now has 4 units. 2 Fleetships, the Sentinel and Defender (unlocked at all intensities). 1 Medium starship, the Bulwark (intensity > 4), and 1 Large starship, the Bastion (intensity > 7).<br />
** The spawning logic is more similar to AIWC, where it just will throw units out when it has the resources to do so.<br />
** Almost certainly needs some balance<br />
<br />
* Give Scout Starships cloaking again<br />
** Thanks to Mcloshiv for the bug report<br />
<br />
* Give the Rorqual Hegira bubble shields<br />
** Thanks to RocketAsssitedPuffin for the bug report<br />
<br />
* New logic has been introduced into map generation that now keeps the human home command station much further away from wormholes if at all possible.<br />
** Thanks to Vinco for suggesting.<br />
<br />
* Engineers now have about 5x as much repair speed as before, and same on construction-speed-boost.<br />
** Additionally, the range from which they and rebuilders can do their work has increased over 5x.<br />
** Also, both engineers and rebuilders now have about 1.5x as much move speed.<br />
** Rebuilders are also now able to increase in mark level, like the engineers do.<br />
** And lastly, starting at mark 3, engineers and rebuilders now gain cloaking, making them a lot more buff. The question is... is it worth that science cost to you?<br />
** Thanks to Mckloshiv for all these suggestions.<br />
<br />
* Fixed the Orchid Ark's assistance range being set to 0, and thus it not working at allo for assistance purposes.<br />
** Also triple the speed at which the orchid does its repairs and whatnot, which makes it the equivalent of a mark 4 engineer now on mark 1 of the orchid.<br />
** Thanks to RocketAssistedPuffin for suggesting.<br />
<br />
* The assist range of the mobile space dock and merc engineers have been increased.<br />
<br />
* Marauder outposts no longer pretend that they can repair the engines of friendlies (they never could).<br />
<br />
* All of the ships with tesla coils now have a smaller range of 2800, but a much larger AOE range of 2800 instead of the prior 500. Now when they fire, they should actually hit their targets.<br />
** Thanks to Ovalcircle and RocketAssistedPuffin for reporting.<br />
<br />
* Ships are now allowed to have zero multipliers on their damage modifiers; making them entirely immune to damage under certain conditions, for instance.<br />
<br />
* Dark Spire Eidolon now also has the weapon jammer ability on its tesla coil.<br />
<br />
* Military Command Stations of the player now have missile launchers.<br />
** Thanks to TheVampire100 for suggesting.<br />
<br />
=== Ships Reinvented ===<br />
<br />
* Lightning Guardian is now the Fortified Tesla Guardian.<br />
** Close range brawler that prevents enemies from hitting it if they are out of its range.<br />
** Basically it has what used to be called Radar Dampening.<br />
<br />
* Lightning Turret is now the Fortified Tesla Turret.<br />
** Very short range AOE blast, but protected against attacks from outside its range.<br />
** Exact same thing as the guardian.<br />
<br />
* Lightning Corvette is now the Inhibiting Tesla Corvette.<br />
** Crowd control meets fire suppression.<br />
** It has the new Weapon Jammer ability, with 8 seconds at mark 1 and +2 seconds per mark higher, on ships with armor of less than 101mm.<br />
<br />
* Sniper Turrets are now Tritium Sniper Turrets.<br />
** Designed to obliterate ships with low radiation shielding from any distance.<br />
** These have a pathetic base damage, but then a major multiplier against anything with an albedo of at most 0.3.<br />
** Thanks to TheVampire100 for inspiring this change.<br />
<br />
* Sniper Starship has become the Tritium Sniper Starship.<br />
** Designed to obliterate ships with low radiation shielding from any distance.<br />
** These have poor base damage, but then a major multiplier against anything with an albedo of at most 0.3.<br />
** These ALSO now have a secondary ballistic cannon, which is on the weak side for a starship but good for giving it some close-in protection.<br />
** Thanks to TheVampire100 for inspiring this change.<br />
<br />
* Sniper Guardian has become the Tritium Sniper Guardian.<br />
** Designed to obliterate ships with low radiation shielding from any distance.<br />
** These have poor base damage, but then a major multiplier against anything with an albedo of at most 0.3.<br />
** These ALSO now have a secondary missile launcher, which is on the weak side for a starship but good for giving it some close-in protection.<br />
** Thanks to TheVampire100 for inspiring this change.<br />
<br />
* Scout Starships are now Sentry Starships.<br />
** Provides scout-style intel, and plays a massive role in hunting down cloaked enemies.<br />
** The tachyon fields these generate is now 10x larger than it was before.<br />
** These also now have a ship cap 3x larger than before.<br />
** Their speed was a bit on the high side, though, and has been cut down to a bit more than half of what it was before.<br />
** These have been renamed to reflect the fact that they're really much more than just scouts at this point, and occupy the main decloaking role.<br />
** Thanks to zharmad for suggesting.<br />
<br />
== Version 0.760 Only The Start of Discovery ==<br />
(Released August 24th, 2018)<br />
<br />
* '''All savegames are unfortunately broken because of the extreme number of changes that have been made to the structure of the game.'''<br />
** '''With a lot of the changes, old savegames would not have made much sense anymore, anyway. Goodness we will stop doing this at some point before Early Access!'''<br />
<br />
* Exogalactic Strikeforces have been redone to make them closer to AIWC style Exos. The budget for an Exo is now split across Fleetships, Guardians or ExoLeaders (giant scary units).<br />
** Exos no longer stack all their units on top of eachother<br />
** Broken Golem Exo Strikeforces now start much weaker<br />
<br />
* Add Shark options for the AI. Shark Options give the AI a bonus when they take one of your command stations (only the AI, not any other faction), so once you start losing the AI is much more able to finish the job.<br />
** Shark A grants AIP to the AI when they kill a command station<br />
** Shark B grants the Hunter Fleet reinforcements on command station death.<br />
<br />
* Nerfs to the Dark Spire to prevent the Dark Spire from casually conquering the galaxy under the right (wrong?) circumstances<br />
<br />
* Added 232 new planet names, mostly from older science fiction literature.<br />
** Removed two planet name duplicates that we had, now leading us to a total of 713 possible planet names.<br />
<br />
* Realistic and Simple map types now have their planets a bit more spread out.<br />
<br />
* Base-Oriented Warden Fleets are now constrained to camp at a Warden Fleet Base and to get reinforcements at a Warden Fleet Base. So if you can destroy nearby Bases then they will have to come from further away to fight you.<br />
<br />
* Marauders that are allied to any particular faction (ie player allied or ai allied) are no longer allowed to build Mark 3 outposts (and thus Raiders) on planets owned by their allies. So for player-allied marauders, if you want to help the Marauders build a fleet then it will require you to take more planets (and thus have higher AIP).<br />
** Taking a planet with Mark 3 outposts will downgrade those outposts to Mark 2.<br />
<br />
* If you have unit remains on a planet without enemy units, allow them to be repaired immediately.<br />
** Thanks to HeartHunter7 for the suggestion.<br />
<br />
* A few balance taps for Devourer, Nanocaust, Macrophage, and Dyson Sphere to make them at least marginally usable right now. Nothing disappoints like watching the Devourer die in 40 seconds.<br />
** Much more work will need to be done, but these aren't obviously broken out of the box now.<br />
<br />
* Reconquest waves only get launched if they are strong enough to capture their target. So if there are lots of weakly/undefended planets, the AI will rapidly launch a series of strikes to take the planets back. If you are turtling and all your planets are heavily defended, the AI will save up until it thinks it can break your defenses.<br />
<br />
* Dark Spire Vengeance Generators can now be hacked to cause a Vengeance Strike (wherein every Vengeance Generator in the galaxy will simultaneously attack). So if you want to cause chaos in the galaxy, this is a good way to do so.<br />
<br />
=== Tutorial ===<br />
<br />
* The tutorial works again. It's not complete for all features, but it's functional!<br />
<br />
=== Objectives Tab ===<br />
<br />
* There is finally an objectives display again! Though it's not as complete as it was before, we're going to be adding to that soon.<br />
<br />
* New core data has been added to the game regarding objective categories, and then objective generators.<br />
** This is all data-driven, and lets us as well as modders add custom objectives into the game that will be seen by players as context dicatates.<br />
** Essentially this lets us keep our complete freedom of how to define objectives using as complex and arbitrary of code as we like, but then also makes it no longer tightly-coupled to our central codebase.<br />
** The new setup is a lot like the map types, essentially.<br />
<br />
* The objectives tab now tells you about the following things, in categories:<br />
** PrimeObjectives<br />
*** Destroy Known AI Kings<br />
*** Find Undiscovered AI Kings<br />
*** Scout unexplored planets<br />
** Critical Capturables<br />
** Critical Destructibles<br />
*** Explore Galaxy To Find Instigator Bases<br />
*** Destroy Instigator Base on [planet]<br />
** Resources<br />
*** Collect Science on [planet with science you can collect]<br />
** Beginner Tips<br />
*** Capture a few early planets for resources (if you have < 3 planets)<br />
*** Defend [planet] from Waves (for each planet with an adjacent Warp Gate)<br />
*** Instructions on Gate Raiding (if you have >= 3 planets with adjacent Warp Gates)<br />
*** Spend Science (if you have > 8K science)<br />
** New Fleetships<br />
** New Starships<br />
** Golems For Capture<br />
*** Explore Galaxy To Find Broken Golems<br />
*** Repair Broken Golem on [planet]<br />
** Mercenary Beacons<br />
*** Explore Galaxy To Find Mercenary Bases<br />
*** Contact Mercenary Beacon on [planet]<br />
** Other Factions<br />
*** Find Nanocaust<br />
*** Destroy Nanocaust Hive on [planet]<br />
*** Fight Nanocaust Invasion<br />
*** Explore Galaxy To Find Lost Spire Frigate<br />
*** Rescue Lost Spire Frigate on [planet]<br />
*** Explore Galaxy To Find Dyson Spheres<br />
*** Free Dyson Sphere on [planet]<br />
** Other Capturables<br />
*** Explore Galaxy To Find Risk Analyzers<br />
*** Handle Risk Analyzer on [planet]<br />
*** Capture Zenith Power Generator on [planet]<br />
*** Reclaim Ark on [planet]<br />
** Other Destructibles<br />
*** Explore Galaxy To Find Astro Train Depots<br />
*** Destroy Astro Train Depot on [planet]<br />
*** Sensor Scramblers<br />
** With every objective, and category, it gives you advice on how to proceed in a generalized fashion as well as potentially some tips for your specific circumstances.<br />
<br />
=== An Entirely New System of Units of Measurement ===<br />
<br />
* A new system of units of measurement for statistics on every craft has been created: https://wiki.arcengames.com/index.php?title=AI_War_2:_Units_of_Measurement<br />
** As a player, you don't even need to read that page, nor do you need to understand each unit of measurement.<br />
** However, as a modder or developer it helps you to come up with appropriate values for each field for each ship so that they will behave as expected in-game.<br />
** For our more science-minded players, this page also provides a handy reference with real-world numbers behind it that properly addresses any lore questions that would otherwise be glossed over or seem inconsistent if you didn't know that the mass scale was logarithmic, for example.<br />
<br />
=== Revised Mechanics ===<br />
<br />
* Implemented the new "8 main physical stats" for all ships: https://wiki.arcengames.com/index.php?title=AI_War_2:_Units_of_Measurement<br />
** Balance on these is preliminary at best, right now.<br />
** These are not actually utilized super heavily by the game mechanics yet, since a lot of the new game mechanics are not yet in place to take advantage of these.<br />
** Main new ones all over the place are armor, engine, albedo, and mass.<br />
<br />
* Created new wiki pages to explain:<br />
** The way special mechanics are supposed to work: https://wiki.arcengames.com/index.php?title=AI_War_2:_Modding_Special_Mechanics<br />
** The way to mod/develop them: https://wiki.arcengames.com/index.php?title=AI_War_2:_Special_Mechanics<br />
** How to mod sub-nodes of entities, as a related topic: https://wiki.arcengames.com/index.php?title=AI_War_2:_Modding_Sub-Nodes_Of_Entities<br />
<br />
* Cloaking and tachyon mechanics have been revised in a new way that is very similar to what was in the game last version, but a little more refined and using the new physical stats.<br />
** Completely untested, so far.<br />
<br />
* Tractor beam mechanics have been revised in a new way that is very similar to what was in the game last version, but using the new physical stats.<br />
** Completely untested, so far.<br />
<br />
* Gravity field mechanics have been revised in a new way that is very similar to what was in the game last version, but using the new physical stats.<br />
** Completely untested, so far.<br />
<br />
* Bubble forcefields has been revised to be basically identical to what was in the game last version, but using the new physical stats.<br />
** That said, all forcefields now have regen on them.<br />
** Completely untested, so far.<br />
<br />
* Personal shields have been implemented as a major new mechanic, based on the same underlying logic as the bubble forcefields for the most part.<br />
** These have even faster regen on them, making them kind of like shields in The Last Federation.<br />
** Completely untested, so far.<br />
<br />
* Engine stun has been implemented as a completely overhauled concept of what engine damage/health used to be last version and in AIWC.<br />
** The new version uses the physical stats, and is designed to give a more nuanced range of results from engine damage without the game-breaking nature of engine effects that caused so many ships to have infinite engine health in the first game.<br />
** Completely untested, so far.<br />
<br />
* Paralysis has been revised almost completely, as well, with much the same goals and moving it into using the physical attributes, too.<br />
** Completely untested, so far.<br />
<br />
* Ion damage has been absolutely re-concepted from the ground up. The same mechanics can be created, more or less, based on how you set up the xml values for this system. But it's a lot more flexible than before, and less on/off. A lot more weapons other than just the big bad ion cannons might actually want to use this in a different fashion at some point in the future. Mainly secondary weapons, probably.<br />
** Completely untested, so far.<br />
<br />
* The underlying nature of hull health and how it relates to multiple subsquads has been revised.<br />
** This also affects vampirism, self-damage, and repairs to ships to some extent, though fairly mildly on each.<br />
** Mostly untested, thus far.<br />
<br />
* All of the immunity-to-this-and-that attributes have been removed from the game and from all ships, except for one: immune_to_all_damage.<br />
** That one isn't used at the moment, but is useful if we want to create an immortal object for some reason, so it stays.<br />
** All the rest of them are now redundant and handled either by the physical properties of ships, or by special abilities in a few rare cases (passing through forcefields, for example).<br />
<br />
* The concepts of "defense type" (structure, polycrystal, whatever) and of weapon bonuses against specific defense types (bombers get 10x vs structures, etc) are all now gone.<br />
** The physical properties take the place of this, although thus far most of the mechanics that will take full advantage of this are not implemented yet. So in the very short term this got more bland, but we'll be fixing that up asap. One step at a time, though, and the first was getting the data in there and converting all the existing special mechanics to use that data.<br />
<br />
* shield_points are no longer an optional xml attribute of ships, but they can still be zero.<br />
<br />
* Given that the nature of how metal is produced has changed entirely from the last public version to now (before it was not literally taking the amounts from ships, but instead generally basing it off some planet stats), we've had to rebalance metal quite a bit to get it back into the same ballpark it was before. The way that units generate metal, and how much they generate relative to one another, seems about right now, but will need further tuning.<br />
** As an aside, with this change it really makes it so that losing your home human settlement or cryo pods HURTS. A lot of metal production in the early game comes from them, which is by design.<br />
<br />
* Given the huge number of changes in how we're storing damage values (as of the last version of the game, down below, internal release only), we had to make up completely new balance numbers for shot damage.<br />
** A lot of the reason was that when we tried to normalize out the old data (which came from several different sources including some xml and some AIWC spreadsheet values), we got wildly incorrect data because something was up with our algorithm. Balance wasn't exactly super refined before, anyway, and we're changing so many mechanics that it's even less so now, so we just made up new best-first-guess numbers so that ships will kill one another in a reasonable amount of time, but not overly fast or slow. Most battles between two squads of identical units should take about 10 seconds for the smaller ships.<br />
<br />
* The AI Home Command Station is now properly called the AI Overlord.<br />
** The AI Overlord now has a Phase 2 that is mobile that it should spawn immediately on death. This is much like the Avenger plot from AIWC, but it's built in as a core thing here.<br />
<br />
* There is now a Human Home Command Station Core that gets spawned if you lose your home command station, even in single player.<br />
** This is based on the concept from multiplayer in AIWC, but works the same in both games now. It lets you keep playing after you lose, if you wish, but with some penalties.<br />
<br />
* A variety of the civilian ships and docks can now be built on enemy planets, thus making beachheads viable.<br />
** There was previously a bug making EVERYTHING buildable on enemy planets, so it was viable previously anyhow. Since that bug is fixed, if there are any missing things that need to be buildable in enemy territory, please let us know.<br />
<br />
* Hacker unit has been added, finally, under the infrastructure section along with engineers and science labs and the like.<br />
** This lets you gather hacking points, as well as perform hacks against the enemy.<br />
<br />
* Mechanic change: now when a ship has a multi-shot or multi-beam attacks, it cannot focus-fire multiple shots into a single target. Each shot must have a unique target, or else it simply fires fewer shots in that salvo.<br />
** This shift helps make these units stand out more from their single-shot brethren; rather than simply having a fixed amount of DPS that they can optionally divide into multiple targets, they instead have a DPS that is greater when more targets are present. This helps to legitimately establish a more interesting role for these ships.<br />
<br />
* Shots now move dramatically faster, and don't "home in" on targets anymore. A shot that is fired is still going to hit unless the target moves off of the current planet, though.<br />
** As part of this, the visual tails for shots are never quite so over-dramatically long anymore.<br />
** This change is primarily for purposes of making things visually look better, but it definitely does also affect balance as well since it prevents ships from getting off so many salvos before incoming shots hit them. This is also by design.<br />
<br />
* Metabolization has been added as a new ability in the game. This is a lot like the Zenith Reprocessor ability in AIWC.<br />
** If you deal enough metabolic damage to a ship when you're killing it, you get 10% of its metal cost immediately added to your own stores, maximum 5000 per death.<br />
<br />
* A new count_to_spawn_on_death can be paired with spawns_on_death in order to create AIWC-Hydra-style units.<br />
<br />
* Added a new immune_to_all_damage_for_seconds_after_creation tag for entities that allows for them to be completely immune to damage for a while after being created.<br />
** This is now used to give the Human Home Command Station Core a full four minutes of invincibility after your Home Command Station (or another Core) collapses into this.<br />
** This way you have some time to try to get things back on track and to get your command station out of the hot spot it's in, but we don't have to do anything funky in AIWC like moving you automatically to an ally's planet (and in solo play, here, you may well not even have an allied planet of course).<br />
<br />
* A new max_engine_stun_seconds has been added to ship systems, which lets us have engine-slowing ships that make targets slower without outright stopping them.<br />
** This will be used by V-Wings, and is different from what the Spiders do.<br />
<br />
* There is a new Weapon Jammer ability that can be given to ships, which lets them add extra seconds onto the reload speed of ships that they hit.<br />
** The overall maximum extra reload seconds that can be added is 20, but that number can be set to be lower with the max_enemy_weapon_reload_slowing_seconds on the weapon that has this ability (and it probably should be, in general).<br />
** The ability is defined with base_enemy_weapon_reload_slowing_seconds_per_shot and added_enemy_weapon_reload_slowing_seconds_per_shot_per_mark.<br />
** The ability has a further enemy_weapon_reload_slowing_to_armor_mm_less_than field, which makes it only work on enemies with certain armor thicknesses.<br />
<br />
* Added a new Fusion Reaction ability:<br />
** Shots from a weapon with this do X% of their damage directly to the hull of their target, bypassing any personal shields.<br />
** Uses: base_percent_damage_bypasses_personal_shields and added_percent_damage_bypasses_personal_shields_per_mark<br />
<br />
* Mercenary Beacons must be hacked before they can be used<br />
<br />
* A new system has been implemented where you can specify outgoing damage modifiers on weapons, and incoming damage modifiers on ships, using the nodes outgoing_damage_modifier and incoming_damage_modifier, respectively.<br />
** There is a huge amount of flexibility in this system, but if you're modding just do bear in mind that not everything possible makes the most sense.<br />
*** For instance, stacking too many bonuses on ships is probably not a good idea. One, at most, ought to do plenty fine! Not everything even needs one! It's a matter of whether or not we can increase the interest of a ship's role with this, not whether we can make yet more stuff to read and more mental gymnastics for the player using them.<br />
*** Also of note, it's possible to have both penalties and bonuses that you put on these. People tend not to like penalties unless it's on an enemy target, it's a psychological thing, so avoiding that when possible is a good idea. Trying to keep outgoing multipliers > 1 and incoming multipliers < 1 means bonuses.<br />
*** There are a variety of things you can check on the incoming damage side that simply make no sense to be there. Why would we care how far much armor the attacker has, for instance? Mostly these stats should be used for outgoing damage, partly for this reason, but also just because it's easier to keep track of.<br />
** Criteria that can be checked using the based_on xml attribute:<br />
*** MaxHull: how much max hull health the defender(outgoing)/attacker(incoming) has<br />
*** CurrentHullPercentage: what percentage (0-100 as integer) hull health the defender(outgoing)/attacker(incoming) has<br />
*** MaxPersonalShield: how many max shield points the defender(outgoing)/attacker(incoming) has, but it reads as 0 if it's a bubble forcefield<br />
*** CurrentPersonalShieldPercentage: what percentage (0-100 as integer) shield points the defender(outgoing)/attacker(incoming) has, but it reads as 0 if it's a bubble forcefield or there are no personal shields<br />
*** AttackDistance: how far apart the attacker and target are at the time of shot impact<br />
*** CurrentSpeedIfMoving: current speed of the defender(outgoing)/attacker(incoming), or 0 if not moving<br />
*** Armor_mm: armor of the defender(outgoing)/attacker(incoming)<br />
*** EnergyUsage: energy consumption of the defender(outgoing)/attacker(incoming)<br />
*** Albedo: albedo of the defender(outgoing)/attacker(incoming)<br />
*** Mass_tX: mass of the defender(outgoing)/attacker(incoming)<br />
*** Engine_gx: engine strength of the defender(outgoing)/attacker(incoming)<br />
*** TimeAtPlanet: how long the defender(outgoing)/attacker(incoming) has been at this planet.<br />
** They can be compared based on the comparison_type xml attribute:<br />
*** LessThan is just <<br />
*** GreaterThan is just ><br />
*** AtMost is a nicer way of saying <=<br />
*** AtLeast is a nicer way of saying >=<br />
** The damage multiplier can be applied selectively using the applies_to xml attribute:<br />
*** Everything: the default, and it's just how much damage is sent over in general.<br />
*** HullOnly gives no bonus against shields of any sort, just against the hull<br />
*** PersonalShieldOnly: gives a bonus against personal shields only, not bubble forcefields or hulls.<br />
*** AllShields: gives a bonus against personal shields and bubble forcefields.<br />
** You provide a floating-point comparison number in the xml attribute compared_to:<br />
*** This is the thing that you're comparing, for example, the max hull points of the target against.<br />
*** If the [based_on] value from the ship being examined does not pass the [comparison_type] check against that number, then it applies no damage modifier here, basically.<br />
** And lastly, the "multiplier" float xml attribute states what the actual damage multiplier should be, assuming that the checks passed.<br />
*** There is also an added_multiplier_per_mark attribute that lets you increase or decrease that multiplier per mark level.<br />
<br />
=== Revised Ships ===<br />
<br />
* Bombers are now Fusion Bombers, with the following description:<br />
** Unique to the forces of humanity, fusion bombers are excellent at damaging targets with low hull health and high personal shields. This usually means structures.<br />
** They now start out with 60% of their damage bypassing personal shields, and that number goes up by 5% per mark level of the bombers.<br />
<br />
* All of the other bomber-like ships, including the Nanocaust Anomaly, have also been updated to use the fusion reaction ability.<br />
** This may well be swapped around in the future, but it fits for now.<br />
<br />
* Fighters are now V-Wings, with the following description:<br />
** V-Wings are a fighter-type ship particulary equipped for screening longer-ranged forces from incoming hostiles, thanks to their engine-slowing ability.<br />
<br />
* Missile Corvettes have been turned into Concussion Corvettes, with the following description:<br />
** Specialists at wrecking thin armor, but extremely poor against higher-armor ships.<br />
** Note that these do not remotely form a "core triangle" anymore, unlike in the prior versions or in AIWC. These, Fusion Bombers, and V-Wings are all now human-only anyhow, so it's a matter of how they handle their workloads and not how they fight one another.<br />
<br />
* Raptors have been updated so that they now have a bonus against ships that have been on the current planet for at most 8 seconds, making them excellent wormhole campers.<br />
<br />
* Snipers have been updated so that they have a massive bonus against fast-moving targets that are actively moving.<br />
<br />
* Laser Gatlings are now Ablative Gatlings, with the following description:<br />
** Incredibly dangerous against high-albedo ships, using their own absorptive power against them.<br />
<br />
* MLRS Corvettes now also have a bonus against ships with less than 20% of their hull health remaining, making them excellent for picking off stragglers as well as crowd control.<br />
<br />
* Infiltrators have now become Agravic Pods, with the following description:<br />
** Ridiculously dangerous against ships with high-powered engines. Use to shore up locations where such ships can otherwise slip past gravity and tractor fields.<br />
<br />
=== Ship Icon "Gimbal" Updates ===<br />
<br />
* Ships now show little circles around themselves when they are selected, making them FINALLY actually visible on the icons when you select them. This is, ironically, how AIWC did it.<br />
<br />
* All of the various "flair" statuses for things like attack-move, defend, etc are now little backdrops behind the ship icon instead of strange tags above them.<br />
** This is a lot more attractive and more readily visible and readable than before.<br />
** These all have a black border, but when selected that border goes white. Making the selection status on this pretty similar.<br />
<br />
* Ships now properly show their status on their icon when they are in hold-fire (or otherwise paused) mode.<br />
<br />
* Ships that have not yet been fully claimed now show properly on their icons with a building background.<br />
<br />
* Ships now have a separate health bar for their shields, so you can actually tell better what is happening during a battle now.<br />
<br />
* Attack-move now shows up properly in the statuses of ships, like FRD and so forth do.<br />
<br />
* Immobile ships, and ships that can't either shoot or assist, no longer show FRD status.<br />
<br />
=== UI Updates ===<br />
<br />
* Ship tooltips now show their shield health separately from their hull health.<br />
<br />
* The percent sign was not showing up properly throughout most of the interface because the font we were using -- Michroma -- did not support it. We're now using a different font -- Titillium Regular -- that looks very similar but does support that, and in fact has more readable text (numbers in particular) in general.<br />
** The search for a revised font was pretty exhaustive, and the improvement is notable.<br />
<br />
* Updated the font in the lower left part of the UI as well.<br />
<br />
* Updated the natural sizing and kerning offset of the strength icon, hacking icon, energy icon, etc, in their font so that its size does not have to be overriden every time and instead it fits in more naturally with text.<br />
<br />
* Updated the various places that use text to "use extra padding," which makes the text more crisp.<br />
<br />
* Updated the button font to be AudioWide instead of Exo2. This is more thematic and still plenty clear.<br />
<br />
* AudioWide font now used for popup headers, as well.<br />
<br />
* Quantico italics font used for credits screen, and that initial loading font, and the paused notice on the top bar.<br />
<br />
* Geometry Soft Pro Regular A is now used on the sidebar for headers, etc.<br />
<br />
* Fixed an annoying issue where tooltips would often overlap one another rather than properly only ever showing one tooltip at a time.<br />
<br />
* Tooltip backgrounds are no longer semitransparent, and now look much more attractive and modern.<br />
** We still have plans to add some bits of extra fanciness on these, though.<br />
<br />
* The confirmation screens now use better graphics, similar to the tooltips.<br />
<br />
* The background of the resource bar header is now fancier and stretches the entire width of the screen, too.<br />
** It also includes new little inset sections where the numbers and text go, which in particular makes it more clear that the metal display isn't just sized oddly.<br />
<br />
* The bottom left bar has also now been updated visually, although it in particular is scheduled for some more visual tweaks to make it really feel right.<br />
<br />
* The four tabs of the sidebar, which previously were above the sidebar, have been split into seven tabs along the side instead.<br />
** This is actually a lot less overwhelming than the other approach, because it splits out hacking and science, and docks and direct construction.<br />
*** Previously it was pretty hard to find hacking, and the build menu was a giant mess, visually.<br />
** Additionally, this renames Ops to be Mercenaries, since that's all we have planned for that anyhow and Mercs are going to become more important.<br />
<br />
* Updated the visuals of the sidebars to be vastly more attractive, including much better scrollbars among other things.<br />
** We do expect to do even more with this, but we're off to a good start with it already.<br />
<br />
* Updated the bottom-left menu to be less wide by removing the ping and reset camera buttons (which were always "coming soon" anyway).<br />
** This then lets us move that entire menu to be below the left sidebar, and along with that lets the tooltips move down so that they are almost flush with the bottom of the screen. This makes a HUGE difference in how obstructing the tooltips are/feel.<br />
** This also has a mild side effect of removing some slight distracting clutter from that bottom bar. It makes the more critical components of it a lot more noticeable.<br />
<br />
* Updated the planet hover tooltip to be more attractive, have easier to read formatting, have icons and colorization by resource color, and so on.<br />
<br />
* The information that was displayed about individual units that you could build when you hovered over them on the sidebar was really sparse before. It now shows the full information that you get after a unit is built, but plus also some other construction-specific items.<br />
** Additionally, it was never showing a per-planet cap properly on the build menu's tooltips. It now does, and makes it very clear if something is a planet cap or a regular cap.<br />
<br />
* Rather than the DPS being shown as a singular number, it now shows the damage per shot and the shot reload times separately.<br />
<br />
* The tooltips for ships now show all of the actual information about what is directly on the ship in terms of abilities -- how much of a resource is generated, what special abilities do, and so forth. This is done in a somewhat-narrative form, with highlighting for the key numbers, and with inline upgrade indicators for changes when looking at a potential tech upgrade. This is very different from the first game, where it just had a lot of techie-sounding markers on ships, and you had to consult the wiki to really know what they meant.<br />
** In the context of this game, ships in general should not have so many different things on them that their tooltip becomes a problem, anyway. If we start running into problem cases, we can re-evaluate some of this and potentially have a condensed view or something.<br />
<br />
* The system menu (when you hit escape in-game) has been completely redone, visually.<br />
** The buttons are finally larger, easier to click, and attractive.<br />
<br />
* On the system menu, there is now an About This Campaign scrolling window that currently shows you a list of factions and then some stats for each human faction.<br />
** We'll be expanding this over time.<br />
<br />
* You can now also see the numbers for the status effects on ships/squads when you hover over them, which is pretty useful so that you know what the heck is going on with something that is negatively affected at the moment.<br />
<br />
* The game will now prefer to report the number of squads rather than ships in the UI, though the number of ships will still be mentioned where possible. The game is balanced at the Squad Level, not the ship level, in any case.<br />
** Example: Instead of reporting 800 Missile Corvettes, it will now say something like "40 squads of Missile Corvettes (800 ships)"<br />
** Thanks to Bummeri and RocketAssistedPuffin for reporting<br />
<br />
* When a Hack is ongoing you will get a notification for it with the time left for the hack.<br />
<br />
=== Bugfixes And Structural Bits ===<br />
<br />
* Give the AI more turrets and fewer non-turret defenses per planet<br />
<br />
* Correctly reinforce only "Alerted" planets, aka those adjoining enemy (or at least, non-AI) planets<br />
** This seems to alleviate the "Fields of Tachyon Sentinels" problem<br />
<br />
* Put in a fix to prevent a nullref exception that could happen every 30-60 minutes based on a thread race condition.<br />
** Thanks to HeartHunter7 for reporting.<br />
<br />
* A bunch of scaffolding work has been done to allow for multiple AIs in the game. Having multiple AIs is currently not available because the UI does not allow for it yet. <br />
<br />
* The export of the balance stats csv file works again, and now gives a bit different data.<br />
<br />
* There is now a special entity type of GuardPost, and all the guard posts are assigned to that (and no longer have the tag of "GuardPost", since that is now redundant).<br />
** Guard posts are now reinforcement points, and guardians no longer are.<br />
<br />
* Fix a few null reference exceptions in the vis code<br />
<br />
* HumanKingUnit has been replaced as a special type with HumanHomeCommand, which is a lot clearer (that it doesn't mean the Ark anymore, which is now a different special type).<br />
** Related to this, we found a number of places where HumanKingUnit was still being used in an Ark-like way (as a hacker, as a fleet leader), and those are all now fixed.<br />
<br />
* Adjusted the "external data" to never initialize right from the start anymore, but instead to initialize only the first time it is used on an entity.<br />
** This dramatically cuts down the size of savegames (less than half what it was before from a brand-new save -- 4.3MB down to 1.8MB) and also saves RAM and some CPU when new entities are created.<br />
** This was only going to get dramatically worse over time as more factions and other custom modded pieces were added into the game, but now that's not an issue.<br />
<br />
* As one might expect in a savegame format with lots of optional fields, a TON of the data per savegame is actually blank. We've now updated the way blank data is stored to be roughly twice as efficient, thus dropping a savegame of size 1.8MB to just 1.01MB.<br />
** This makes saving faster and more efficient, and saves space on our webserver relating to mantis bug reports, as well as making it so people don't have to zip their savegames just to get them up.<br />
<br />
* The last of the savegame file size improvements is now in place. This brings us down from 1.01MB to 0.875MB -- or really, finishes bringing us down from 4.3MB at the start of this version down to 0.875MB now.<br />
** This new update stops using direct strings embedded throughout the savegame files for entity internal names and system internal names and similar, and instead writes an array of strings at the start, then writes integers instead of strings later on in the actual writing of the file. It's just a mapping lookup, basically. It's fully future-proof with adding and removing entities types to the same degree that the prior method was.<br />
** The savings of this system will actually go up dramatically the more entities there are in a given game. The example that we have here is right after game start, but it would be far more than 20% savings in a late-game save.<br />
<br />
* Fix a bug where the Sidebar and Notifications were reporting different numbers of ships on a planet<br />
** Thanks to HeartHunter7 for reporting<br />
<br />
* Fix a bug where army selection with "M" wound up being additive when it should not have been, which meant that you could wind up issuing unexpected orders<br />
** Thanks to HeartHunter7 for reporting<br />
<br />
* Fix a bug where control-group-rallied units could wind up endlessly rallying to each other in a circle.<br />
<br />
* The core piece of ship autotargeting logic, ReevaluateUnitOrders, has been moved into a new external open-source class called EntitySimLogicImplementation.<br />
** Thus more people can contribute to it, if they wish.<br />
<br />
* Right now the logic inside of EntitySimLogicImplementation.FillPotentialTargets() is quite simple, as Badger noticed. To help move towards being able to spruce that up, we've added the following:<br />
** priority_as_target is now on every entity, with a value from the GameData/Configuration/Balance_PriorityAsTarget xml required.<br />
** priority_to_protect is now on every entity, with a value from the GameData/Configuration/Balance_PriorityToProtect xml required. <br />
** priority_as_target is now used for AI's with difficulty > 4 (and everything that isn't an AI) when choosing targets. priority_to_protect is currently not used yet though.<br />
*** Ideally we can later separate out some of that logic onto a permanent background thread with no particular timetable on it like we did in AIWC, and then have it issue commands through the GameCommand interface just like a player does. But for now we can simply make everyone's autotargeting better.<br />
*** There is an importance_metric integer field on the priorities that can easily be used to determine a general level of priority for entities (higher is a higher priority, 0 or negative means ignore). However, these also have names such as ShieldGenerator or IrreplaceableAIPIncreaser and so forth, which means that the AI can actually key off of the priority names if they wish to do specific activities like take down shields or drive up the AIP or something.<br />
*** Having this separated out into separate defense and targeting priorities reflects the different ways that we think about these things. Sometimes a ship is very important to take out if you're attacking, but it's considered expendable if you're defending because it's just another piece of defensive hardware and its job is to fight until it dies. At any rate, the way things are designed right now, the people defining the xml and the people writing any AI logic both have some loosely-coupled good options on both sides.<br />
*** One reminder for anyone doing AI code: never _just_ choose the best option. Always choose from among the top 85% or so of the options, and very rarely lower than that, because that keeps the humans on their toes and is what leads to unexpected moments of "brilliance" on the part of the AI. That wiggle-room is the secret sauce that makes AIs seem alive.<br />
<br />
=== Hey Testers! We Have Some Questions ===<br />
<br />
* Questions for testers (now that we're breaking everything):<br />
** How is ship damage in general? How about health?<br />
** Do tractor beams work?<br />
** Does cloaking work? And tachyon beams?<br />
** Does engine damage and repair seem to work?<br />
** Does paralysis work?<br />
** Can command stations be upgraded?<br />
** Does the Human Home Command Core work? (Does it get created and then does it work?)<br />
** Does the AI Overlord Phase 2 spawn after the AI Overlord is destroyed, and does this keep the game going until it dies?<br />
<br />
== Version 0.759 Break The Sky ==<br />
(Released Internally Only August 8th, 2018)<br />
<br />
* A variety of the starship lines now are unlocked via the Advanced Research Station instead of being available for unlock directly at the start of the game.<br />
<br />
=== Minor Faction Updates ===<br />
<br />
* Fix some Dark Spire bugs where the Wards were self destructing, Locuses were spawning too early, etc...<br />
* Dark Spire units now spawn next to their Vengeance Generators instead of at the center of the planet.<br />
* The Dark Spire can now perform "Vengeance Strikes", where all the Dark Spires in the Galaxy will launch a simultaneous attack. This will happen every few hours.<br />
** Vengeance Strikes will give you a 10 minute Notification heads up. <br />
* If you have vision of the Devourer, you will recieve a Notification with its current location <br />
* You will get a notification for every Astro Train on the map. Note that it won't tell you the location of the Train or the Depot unless you have vision of them.<br />
* If the Zenith Trader is on one of your planets you will get a Notification.<br />
** A Notification for all of these factions is a popup like a Wave Notification<br />
<br />
* The Marauders will only attack "Sometimes" now. This is less a nerf and more a "Make the Marauders really unpredictable" tweak. <br />
<br />
* Marauder Raiders will now aid adjacent allied planets that are under attack<br />
<br />
* Mercenaries are Always Enabled now<br />
* Allow Astro Train Depots to have per AIP multipliers on strength, which allows Depots to start out weaker but get stronger as the game goes on (as you also get stronger)<br />
<br />
* Dyson units now spawn at the Dyson Warp Gate, not at the center of the planet.<br />
<br />
==== Nanocaust Changes ====<br />
<br />
* Reworked the way Nanocaust ships are created to allow for real balance adjustment<br />
* Add notifications when the Nanocaust is attacking<br />
** These are notifications like the Wave notifications<br />
* The Nanocaust has the ability to strategically generate bonus strength for waves<br />
* Fix a bug when saving games with the Nanocaust<br />
** Thanks to OvalCircle and RocketAssistedPuffin for reporting<br />
<br />
==== Instigators ====<br />
* Add AI Instigator faction. This is a minor faction that's just "part of the AI" from the player's point of view, though their units are tagged "AI Instigators" not "AI". Instigators are Always On and there is no mention of them in the Game Lobby.<br />
* This faction will create a base every hour or so. These bases will provide the AI with an ongoing bonus effect (at the moment, buffs to various budgets or "Spawn units that just kamikaze at the player"). You can ignore these bases or go try to kill them.<br />
* The goal is to give the player periodic new mini-quests and objectives.<br />
<br />
=== Balance Changes ===<br />
<br />
* Adjusted the balance for Mark V, VI, and VII ships/structures. They were progressively getting weaker compared to their lower tiers, which generally increased at a higher rate.<br />
** Mark II is 2x as strong as Mark I, for instance, but Mark V was only 1.25x as strong as Mark IV. Now Mark V and up are each 1.5x as strong as the mark that came before them, which matches how much stronger IV is than III.<br />
** We can of course change this with ease again in the future, but it seems like a good plan for now.<br />
<br />
* Metal costs for ships go up by 1.5x per mark level, rather than following the strength/hull power trend line. This makes mark II ships a particular value compared to mark I ships, incidentally. The deal of power-to-metal-cost ratio gets progressively worse as you go up in mark levels, but always remains quite positive (aka it's always a good idea to upgrade, but you get more bang for your buck upgrading something low than something high, assuming all else is equal -- which it is not, heh).<br />
<br />
* All of the player command stations now increase the speed of all allied units within their system, as was the case in the first game. Home court advantage returns!<br />
<br />
* The energy cost multiplier for higher mark levels has been removed. Ships cost the same amount of energy (per squad) at each mark level, now.<br />
** Otherwise, particularly with the auto-upgrade effects that are now here, you could end up browning yourself out by upgrading a squad. Previously you could have ships inexplicably not upgrading, so that was not really improved.<br />
** Don't worry, your energy needs increase anyhow because of ship caps going up with higher mark levels.<br />
** That said, we will probably need to spend some time on balance with energy in general to make sure that you actually start to feel pinched every so often on it during gameplay.<br />
<br />
* Planets now have a constant amount of hacking and science points on them.<br />
** We might change that in the future, but it would be planet-background-themed and use different math if we did.<br />
<br />
* There are now always 5 metal production points on player homeworlds, and between 3-8 points on other planets, making them vary in quality just like in AIWC but in a fully visual way that differs from AIW2 so far.<br />
** The idea here with the base planet is to keep it from players re-rolling to get a better immediate start.<br />
<br />
=== Ships Removed ===<br />
<br />
* Tachyon Microfighters and Bulletproof Fighters have been removed as distinct entities. These will soon be things that are randomized variants or upgrades.<br />
<br />
* The AIWC-style concept of mercenaries, which we've been calling Auxiliaries, has been removed for now.<br />
** This simply wasn't very exciting and felt like clutter at the moment. If late-game metal buildup becomes a problem again, we have some more flexible ideas for dealing with that.<br />
<br />
* Advanced Factories and Advanced Starship Constructors are going away for now. We'll be bringing back a different mechanic in this general area, so stay tuned. There's a better way to do this, though.<br />
<br />
* Stealth tachyon arrays have been removed as a distinct unit. Instead, their stealth ability kicks in when you upgrade a regular tachyon array to mark IV or higher.<br />
<br />
=== Ships Reinvented ===<br />
<br />
* Fighters, bombers, and missile frigates are the three core triangle ships... but only for humans, now! The AI and other factions no longer get them at all. The marauders have their own version of these ships as drones, which is actually pretty unique for them. But the AI and other factions use different ships as their baseline, now.<br />
** These ships (the base ones by the player, anyhow -- not the drone marauder-based ones) are now going to be getting some balance changes and new abilities really soon.<br />
<br />
* The basic fleetships for the AI are now the Raider (in place of the Fighter), Armor Ship (in place of the Bomber), and the MLRS Frigate (in place of the Missile Frigate).<br />
<br />
=== Ships Added ===<br />
<br />
* Logistical and Economic command stations have been rebalanced a bit, and Military command stations have been added.<br />
** The new military command stations increase the attack power of all allied ships in their system.<br />
<br />
=== Bugfixes ===<br />
<br />
* Fixed a bug in the macrophage where they were not using their health_change_per_damage_dealt value, since it was spelled health_change_per_damage_dealth.<br />
<br />
* Fixed a variety of other bugs where things were not acting as they were supposed to since the pivot. That said, undoubtedly broke even more things than we fixed.<br />
<br />
* Fixed up a few ship ranges that were set to low or negative values because we couldn't properly see them before. The Arks all had very very short gun ranges, for instance.<br />
<br />
* Probably fixed the bug with you being able to upgrade your home command station and thus lose the game instantly because of that.<br />
<br />
* Fixed a bug where killing Warp Gates was not correctly stopping incoming waves from that Warp Gate<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Structures can no longer be captured on AI planets<br />
** Thanks to RocketAssistedPuffin for reporting<br />
<br />
* Certain text throughout the interface, such as on the net energy display, would show really strange and wrong if you had a negative number there. Fixed.<br />
<br />
* Fixed a longstanding issue (that we just uncovered) where attribute reading from xml could silently fail even if it was supposed to verbalized failure.<br />
** The issue was if a non-default value was passed into the Fill() methods, but then the attribute was missing. It was supposed to complain if it was default OR missing, but it was only complaining if it was default.<br />
<br />
* Fix a bug where Astro Train Depots that were supposed to give bonuses to various AI Budgets were in fact doing nothing.<br />
<br />
* Fix a bug where losing vision on a planet caused all ships there to visually explode<br />
** Thanks to x4000 for reporting<br />
<br />
* Improve engineer logic when deciding which units to repair, or which constructors to assist in building units. We now factor in how many other engineers are working so as to ensure we don't have all the engineers working on a single unit at a time.<br />
<br />
=== Technical Jargon ===<br />
<br />
* A new does_not_use_multipliers_from_mark_level tag has been added.<br />
** If this is set to true, then the mark_level="Mark5" (or whatever level) tags are just ceremonial -- they show up visually to show a player how scary the unit is, essentially.<br />
** Normally there are multipliers for the health, strength, shields, attack power, etc, etc that come from mark levels. This skips those, in other words.<br />
** The reason for this is that sometimes you have very unique entries at each mark level (such as with the Dark Spire) that you want to have display the mark level, but which in no way inherit stats. This way, instead of having to know the multipliers and then divide all your values by them, you can just set the stats directly.<br />
<br />
* The option to hide mark levels on ship icons has been removed, since now you can just set them to be markless and set their stats to be whatever. It's much cleaner than having two ways to do one thing.<br />
<br />
* The structure of how ship data is stored in xml for the game to read in has been overhauled quite a bit.<br />
** A lot of fields were previously wired up in such a way that they referenced other xml files extensively, so you'd have to know what a lot of hidden values meant in order to make sense of it at all.<br />
*** Now this is done a bit, but only for things that are easy to remember (range) or not frequently used (engine health). Basically in places where this is easier to read for purposes of understanding a scale (is 100 a big number of a small number for this field? etc).<br />
** A lot of fields also were based around multipliers to unseen base values, again making it hard to know what the actual values would be.<br />
*** In general, things are a lot more direct now. Higher mark levels still multiply a bunch of things in order to simply be descendants of the lower mark levels, but this is less severe of something to have to learn.<br />
** And lastly, ship systems (guns, etc) were stored in a separate file, then referenced. This had the advantage of fewer definitions (by a bit), but the big disadvantage of being harder to read a single ship or modify that ship.<br />
*** Now the system entries are actually sub-entries of the ship nodes directly, so you can see everything about a ship right in one screen, essentially, and thus make changes way easier to it.<br />
** Overall these changes make it harder to make sweeping balance changes to the game (more repetitive work is required now), but it makes it far easier to modify individual ships, which is far more common of a task.<br />
*** Basically we were not having many modders for ships, and even Badger and Chris were kind of shooting in the dark and Keith was mostly just basing his work around what was in AIWC lately, so the prior system wasn't really working out for practical purposes. The new system was designed to take what was good about the old system, make as few changes as possible, and become more usable.<br />
<br />
* Made it much easier to see what sub-nodes are having xml issues when you're seeing xml errors from your modding.<br />
<br />
* The properties on GameVersions are now different, since we're breaking old savegames anyway.<br />
** Rather than saying which versions are valid for the settings, world, and profiles, it now says which is the first one that was valid. Those markers can be moved around in the versions file as needed.<br />
<br />
* All of the old serialization gates have been removed, and in general a lot of deserialization cruft that built up while we were not breaking savegames.<br />
** Kind of related, we made a tutorial on how to use serialization gates: [[AI_War_2:_Serialization_Gates]]<br />
<br />
* The last inclusions of Power in the code are now gone. Also power distribution nodes.<br />
<br />
* There are now some V1 and V2 copies of a few ship types that look pointless in the xml, but which are a chance to have multiple randomized variants on one team, coming up. This is particularly true for things like the Abomination, etc.<br />
<br />
* There are also some faction-specific tagged versions of various ships that are copied now, too. The tags make it more obvious what the purpose is, and you can see that built_by="Unused" is being set to zero to make sure that these variants don't show up in player build menus or random AI waves.<br />
<br />
* Build menus no longer have the same structure as before (with all the columns, etc), and are now defined on the ships themselves.<br />
** This makes it easier to keep track of where ships are used, although not what uses what ships. But that's fine, because we also don't want ships referenced in multiple files like this directly if we can help it (this again helps with modding, allowing modded-in ships to be inserted into build menus automatically).<br />
** Also worth noting, we've removed some build menus for things like specific AI types, since that concept would no longer work anymore. Rather than certain AI types preferring specific ship types, they'll be getting specific bonuses or penalties more frequently from the randomizer, soon.<br />
<br />
* Mark levels and techs as they were previously defined in the xml and code have been removed. There's a new system that is a lot simpler that does the same thing on the front-end, but is less typo-prone, requires less xml in general, and will long-term be less bug-prone.<br />
<br />
* The concept of a "shared cap" is now gone, since we no longer have to share cap between multiple mark levels.<br />
<br />
* Added a new max_mark_level tag in the entity xml that lets us specify that the unit is only able to be upgraded to a given mark level and no further.<br />
** Most of the time, units can be upgraded all the way to mark 7, but it gets progressively more prohibitively expensive.<br />
** It's also worth noting at this time that the mark_level tag now means "first mark level." If something has a mark level of 2, then it will never be present at less than mark 2. This is mainly used by some minor-faction-specific ship variants.<br />
** Lastly, if something is set to be markless, then it can't be upgraded at all (mark-level-wise).<br />
<br />
* Engineers no longer upgrade units, it just happens automatically (for the player). This was a waste of time for the engineers, and extra complications on our side, too.<br />
** This does create the common situation where you'll be in battle and can upgrade your units immediately to save their health or whatever, but this isn't the worst thing; lots of RTS games do this.<br />
** Player units are now automatically kept at whatever the highest mark is that their type has unlocked, whereas AI units start out at some mark level (from their planet mark level, or their wave mark level) and then never change it.<br />
** Note that this is a departure for structural-type buildings such as command stations. You can't have multiple mark levels of economic command station in the galaxy at once, anymore, for instance; they'll all share the highest mark, now.<br />
*** Note that this does NOT affect the AI or minor factions; they can do what they like.<br />
<br />
* In the test chamber, you can now specify a mark_level entry to choose what mark the ship is at. It will automatically correct itself to the nearest in-range mark level if you set something out of range for that unit.<br />
<br />
* The build menus and tech menus are now combined into one thing that is called build menus, and this includes the following entries for the moment.<br />
** Note that these get assigned to entities by the built_by tag, in a comma-delimited list. What lists the ship is in determines how it can be used, and by whom.<br />
*** Further note that a few ships don't use built_by at all, but still do appear in the game. These ships are instead looked up by the tag property, usually for purposes of a faction or the AI doing something unusual with them (for instance, Usurpers being in the waves AIs send to retake planets).<br />
** Unused: assign ships to this if you have are using copy_from on a ship that you then want to be in no lists (aka that ship will be looked up by tag after the copy).<br />
** FleetShips: ships that the player can build at space docks.<br />
** Starships: ships that the player can build at starship constructors.<br />
** FleetShipUnlocks: currently unused.<br />
** StarshipUnlocks: currently unused.<br />
** StarshipAndFleetshipUnlocks: Advanced Research Stations will choose from ships in this list when deciding what to make available to players.<br />
*** Note that for the result to actually appear in the space dock or starship constructor, you ALSO have to include FleetShips or Starships in the built_by list.<br />
** Infrastructure: non-combat things that the player can directly place. Engineers, space docks, etc.<br />
** Defenses: combat-oriented things that the player can directly place. Turrets, shields, etc.<br />
** ZenithTraderUnits: whatever the Zenith Trader might sell you.<br />
** CommandStations: whatever the colony ship has available for you to build.<br />
** CommandStationUpgrades: any command station lines that can be upgraded in the tech menu. Pretty much identical to CommandStations for now.<br />
** BasicWaveDrawBag: ships that the AI can send at you in waves (assuming it has the line unlocked, as with everything around here).<br />
** BasicReinforcementDrawBag: ships that the AI can plop around its planetsn during reinforcements spending.<br />
** BasicGuardPostDrawBag: guard posts for the AI to place.<br />
** BasicTurretDrawBag: turrets the AI is allowed to place (assuming line is unlocked).<br />
** BasicNonTurretDefenseDrawBag: other non-turret defenses the AI can place, but not shields.<br />
** BasicShieldDrawBag: shields the AI can place.<br />
** BasicShieldGuardianDrawBag: shield guardians the AI can use on occasion.<br />
** BasicSentinelDrawBag: things that guard wormholes for the AI.<br />
** BasicGuardianDrawBag: regular guardians, not including shields, that the AI can use.<br />
** BasicDireGuardianDrawBag: unusually scary guardians that only get used in special circumstances and core AI planets.<br />
<br />
* There is a new xml tag called ship_line_must_be_unlocked that can be set to one of three different values:<br />
** LineUnlockedFromStart (default) means that anyone can use it right from the start IF it is in the "built_by" lists that the faction has.<br />
*** For instance, this default is set for Fighters and Bombers and such, but the AI still doesn't get those because the built_by does not include BasicWaveDrawBag, BasicReinforcementDrawBag, or any of the others.<br />
*** And on the other hand, various other ships for minor factions don't include FleetShips or Starships, so the player space docks and starship constructors can't construct these things.<br />
<br />
* Balance_TechCost is now being used in a new tech_cost tag on entities.<br />
** Any entity that isn't markless must have this assigned.<br />
*** If the entity isn't used by players (such as AI-specific or faction-specific stuff) or otherwise isn't something players will see in their science tab (such as drones), then just set it to NeverPlayerControlled for the sake of clarity.<br />
** The rest of these values are organized around the same general costs that we had previously, but without needing to have tech definitions as an intermediate step.<br />
** These also define all of their science costs in just a single list that is planets_worth_of_science_by_ordinal, rather than having many entries for each cost type. The list starts with ordinal 0 (markless), and goes up from there to presently mark 7.<br />
*** The scaling factor on these is intentionally uneven, so they're set directly. Some things are cheaper at first and then get progressively more expensive, others are more linear, and all of them get vastly more expensive starting around mark 4 or 5.<br />
** This also now lets us define ark_upgrade_point_costs_by_ordinal directly for the Arks.<br />
**** The costs on these have been massively increased compared to what they were in prior versions of the game.<br />
** And lastly, this lets us set destruction_point_costs_by_ordinal directly here, too.<br />
*** Previously, this was just used by a couple of things like the mobile builder and the auxiliary space dock. Now it isn't used for that at all.<br />
*** Now, starting at mark 4, all of the lines start costing some amount of this. So even if you get a ton of science, you also have this other limiting factor on the very high-mark entity unlocks.<br />
*** It's also worth pointing out here that you can now simply upgrade your ships and structures all the way from mark 1 to mark 7 (or whatever their top cap is) at any time, without capturing anything. It's just very, very expensive.<br />
**** The concept of temporarily having mark IV ships available thanks to an advanced factory is gone. That was awkward and there are better things we can do.<br />
<br />
* There is now a min_mark_level_to_function and max_mark_level_to_function set of tags that can be applied to systems. Simply set this to 0, 4, or whatever ordinal number.<br />
** This lets us do things like only have certain systems turn on after a ship reaches a certain mark level -- the tachyon array gaining the ability to cloak at mark 4, for instance, or the Thanatos Ark gaining it's zombification gun at mark 4.<br />
** This gives a lot of compact flexibility.<br />
<br />
* Added a VERY IMPORTANT new CurrentGeneralMarkLevel on the Faction object.<br />
** It isn't used at all by player factions, but for the AI and other factions, ships will by default come out at that mark level unless told otherwise (or unless clamped otherwise by starting and max level).<br />
** This is something we'll be incrementing for the AI so that its waves get stronger over the course of the game, and other factions are free to use this as well (though most don't really need to at the moment, since their ship levels are controlled by other things).<br />
** For the AI, if this number is higher than the mark level of the planet a reinforcement is at, then it will use this mark level. Much as in AIWC.<br />
<br />
* On the GameEntityTypeData class, there are now very important new MarkFor() and MarkStatsFor() methods that should be used when considering mark levels for entities that don't yet exist.<br />
** Essentially, when an entity is to be created, we don't really know at what mark level it should be created at. Depending on if it's a player, an AI, another faction, for a wave, for a planet reinforcement, for a drone out of a specific ship... all of those cases result in potentially different mark levels.<br />
** Thus all of that is simplified by you simply doing a few different things, and you can call these with a Faction or a PlanetFaction for added brevity of the call.<br />
** The stats version returns the GameEntityTypeData.MarkLevelStats for the mark level, whereas the other version just returns the int for the ordinal of it. Again for syntax brevity.<br />
** There's a version where you just pass in a faction, and it gives you the general mark level it should be. This is for things like anything to do with a player, or an AI wave or CPA, etc.<br />
** There's another version where you pass in the faction and a planet, and for non-players that will give you the appropriate mark level for if the ship is being added to a planet as a reinforcement. Aka, the mark level of the planet, and the general mark level of the faction, both influence it. For players it is business as usual, basically the same as the other method.<br />
** There's another version where you just pass in the mark level you want, and it clamps it if need be and hands it back to you. This is useful for drones being produced by ships, since the drone probably should be the mark level of the thing producing it (but in some cases we have something like a markless hive golem producing mark 5 hive drones, so it would try to be mark 0 but clamp to mark 5 instead).<br />
** And lastly there's a version that is WithAdded(int) that basically says "if I had this many marks added, what mark would I be, including any clamps." This is useful almost exclusively for predicting upgraded stats on the tech tooltips.<br />
<br />
* There are also now MarkStatsFor() methods on the EntitySystemTypeData class, matching those of GameEntityTypeData in function and form.<br />
** This makes it much more concise and easier to get the proper data about theoretical systems that might be added in a given context. This is mostly just for the gui for placing new units, things like that.<br />
<br />
* UnlockedAIDesigns has been removed from the AI's external data, and now it simply uses faction.UnlockedShipLines like all the other factions do. Logic is all the same.<br />
<br />
* The metal production and energy production on planets is now more direct straight from the units that produce them, rather than being based partly on the quality of the planet.<br />
** This is a lot more like AIWC.<br />
<br />
* Squads with multiple subsquads were firing a shot per subsquad, all stacked on top of one another, which was needlessly heavy on the CPU and the GPU at all levels.<br />
** It was a nice idea, and made sense to do, but ultimately was too heavy and too hard to spread out. It was mainly a visual thing, but since they were stacked you couldn't tell anyway, so it's clearly not needed from that standpoint.<br />
** The other element of it was that squads would get weaker as they had fewer subsquads in them, but that actually wasn't fully correctly being handled in terms of shot planning and whatnot with ship DPS, etc. So dropping this function actually makes some of the ship AI slightly better.<br />
<br />
* The game now explicitly complains if for some reason it is unable to fill a draw bag for putting entities into a given context. This would be an example of bad xml, typically, and thus a helpful debugging aid for modders and the like.<br />
<br />
* Improved the logging on AI draw bag reading, for if there are emtpy entries ever. This will let us know when there are issues in the xml, or outright logic errors.<br />
** In the short term this has helped us fix some code issues that were internal to this release, but longer-term it will help when there would otherwise be invisible strange behaviors from the AI. Invisible incorrectness is not so hot. :)<br />
<br />
* AIs now properly check their effective AIP against the RequiredAIPLevel of each mark level listing. Assuming that the effective AIP is greater than or equal to that, it increases its mark level to that value. The AIs never go down in effective mark level.<br />
** So even if you use data centers to bump the AIP back down, the effective mark level is higher for good. By design, as with the first game. Some gates just shouldn't be un-trippable.<br />
<br />
* There is a new takes_on_color_of_the_first_ai_faction field on SpecialFactionData. When this is set to true, then the faction in question will take its color from whatever the first AI faction is set to.<br />
** This is how the Instigators faction is now set up to work.<br />
<br />
* There is a new takes_on_current_general_mark_level_of_the_ai_factions field on SpecialFactionData. When this is set to true, then the faction in question will increase its CurrentGeneralMarkLevel to match the highest AI CurrentGeneralMarkLevel. These factions won't ever decrease their CurrentGeneralMarkLevel.<br />
** This is now used by all of the "I'm part of the AI but implemented as a separate faction" factions. Everything from instigators to astro trains to the warden and hunter fleets. This keeps the growth of all the parts the same across the game.<br />
<br />
* Starships, guardians, arks, and fortresses now scale up in visual size per mark level based on a new large_ship_scale_multiplier tag on the mark level definitions.<br />
** The scaling was previously handled per-entity-type and done by hand in the xml, leading to often inconsistent results.<br />
** This scales the ship up visually, as well as scaling them up in their actual physical radius, which affects collisions, etc.<br />
<br />
* The old Flagships special entity type has been removed, and a new Starships one has been added instead and is now assigned to all the starships.<br />
<br />
* The game now checks for xml attributes that are in present in the xml but never requested by the front-end.<br />
** This is basically typo-proofing, more than anything else. And it also helps us clear out older cruft in other cases.<br />
** This will NOT help you find unused xml nodes, so if there's a major typo in the name of those you're out of luck and just have to notice it yourself. Node = <node> Attribute = <node attribute1="val" attribute2="val">.<br />
<br />
* We cleared out a lot of cruft and corrected some typos, based on this. Thus fixing a few bugs we didn't even know we had just yet.<br />
<br />
* Removed the dps multipliers from death effects (which were not even being used), and also removed the death effect defenses (which also were not being used).<br />
<br />
=== UI Improvements ===<br />
<br />
* When you unlock a tech, it now shows a message saying what you unlocked.<br />
<br />
* You can now see the metal costs of things on the tech tooltips (what the old cost was and the new cost will be).<br />
<br />
* The galaxy map tooltip for planets now shows how much science and hacking is LEFT at a planet, versus what its total was.<br />
<br />
* Updated the controls for the plus and minus keys to match the defaults that are in the interface. They now adjust the frame size instead of the frame frequency (this speeds things up without causing extra CPU load, making it ideal for quick speedups when you want things to move faster).<br />
<br />
* Updated the interface display for larger frame sizes to say "2x Sp." or whatever the amount is rather than "C*2", which was debugging-like and unclear. (Granted this probably was originally for debugging, it's hard to remember).<br />
<br />
* Previously, DPS was being reported per visual thing in a squad (so DPS was divided by 20 for fighters), which was super unhelpful. It now shows DPS per squad in all cases.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: The Pivot]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Pivot&diff=30912AI War 2:The Pivot2018-06-30T00:44:43Z<p>Keith.lamothe: /* Version 0.747 */</p>
<hr />
<div>== Known Issues ==<br />
* The lobby interface is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* '''Multiplayer is temporarily disabled''' while we focus on tightening up the single-player loop.<br />
<br />
* Arks are presently not used in the game, which means that also Chief Advisers are not used for now.<br />
<br />
* There are roughly 100ish ships/units that we still have not reimplemented from Pivot phases 3-5.<br />
<br />
* There are a variety of ships/units that don't have proper graphics or reuse icons at the moment.<br />
<br />
* There is not an in-game way to see and edit the control bindings yet.<br />
** But you can go into the created bindings file inside the PlayerData folder to edit them in a text editor.<br />
<br />
== What is this "Pivot?" ==<br />
<br />
The full details are on kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
<br />
The short answer is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
== Version 0.747 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Added the Advanced Factory and Advanced Starship Constructor back in, with AIWC-like mechanics.<br />
<br />
* Fixed a bug where special seeding logic (for capturables, among other things) would always put a unit at the dead-center of the planet if that spot was safe for placement.<br />
<br />
* Added the Zenith Power Generator, with AIWC-like mechanics.<br />
<br />
* Added the Mobile Builder, with AIWC-like mechanics.<br />
<br />
* Added the Mobile Space Dock, with AIWC-like mechanics.<br />
** Caveat: only repairs one thing at a time right now; later the repair mechanic will need to be replumbed to allow for multiple repair targets at once.<br />
** Caveat: the builder menu currently doesn't reasonably handle multiple constructors of the same type, or many constructors on the same planet in general. Probably it needs to just handle all mobile space docks on the same planet as one group.<br />
<br />
== Version 0.746 Disposing of the Invisible Man ==<br />
(Released June 29th, 2018)<br />
<br />
* A few tweaks to prevent nullrefs in hovertext over ships, and to make them work properly in build and tech modes, as well.<br />
<br />
* Further protection against some data garbling that could happen on worker threads, which led to things like AOE attacks striking ships on other planets from the current one.<br />
<br />
* Fixed an issue where newly-created ships that were rallying into a control group could rally to themselves if they were suddenly the strongest ship in the control group.<br />
<br />
* Fixed an issue with Infrastructure being spelled wrong.<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
* Put in a variety of protections against exceptions that could happen due to units no longer existing or being removed from any planet (aka the game) but having orders queued up for them and executed later.<br />
** Thanks to Ovalcircle and BadgerBadger.<br />
<br />
* Fixed a bug with 8 of the skyboxes that were causing nothing to render on their planets except wormholes. Uh... whoops!<br />
** Thanks to Ovalcircle and Badger.<br />
<br />
* Updated one of the really dark and pretty ugly skyboxes to instead be more white cloudy so that it's still faded out, but you can see more of what is going on.<br />
<br />
* Fixed the middle-mouse pan controls so that they act as expected; they were reversed as of the first pivot release.<br />
<br />
* Fixed an issue where if you upgraded a ship type (such as Fighter 1) to a higher mark (Fighter 2), it wouldn't keep the new level of fighters in all your queues. Now it immediately starts cranking out Fighter 2s instead of Fighter 1s after that upgrade.<br />
** Thanks to Badger for reporting.<br />
<br />
* There is now a brighter version of the colors that always shows when the game is writing text using a team color. This keeps text actually legible, while still giving the general feel of the player color in question.<br />
<br />
* Rather than showing the generic yellow strength color on the wave warnings, it now shows the color of the first AI faction in the game (waves are not attached to factions directly, apparently).<br />
** Ditto the colors now used on the attacking-my-planets warnings, except in this case it uses the color of the first-found attacking faction. Before it was using yellow for players and purple for AIs, but now it uses the colors that are more specific.<br />
** Same for the CPA notices now, actually -- instead of showing red text, it shows whatever the first AI color is, like the waves (by default this is actually red anyway). The actual icon portion is of course still red and white, since that's an icon.<br />
** Same also for on the galaxy map when you're viewing colors of unit counts on planets. For the threat color, if there is a hostile count AND threat count (aka on enemy planets), it draws the border color instead of the center color.<br />
<br />
* Fixed an issue with the text colors in the galaxy map over planets, as well as on the planet view over wormholes. They were being translated from gamma color space to linear color space incorrectly, and we're now using Color.linear to fix that manually on our end. Now the colors there match the colors on the UI parts of the interface.<br />
<br />
* The wormhole names now show all the time by default (like they did pre-pivot), since that's pretty helpful data.<br />
** If you prefer the more recent way of having those off unless you hold Ctrl, there is a new settings option you can disable.<br />
** Thanks to dv = i ln(w0 / wf) for suggesting.<br />
<br />
* Scout starships now provide some decloaking abilities around themselves, as in the first game.<br />
** Unlike in the first game, they are now unlocked by default from the start of the game. This way the players have some way to deal with cloaked ships on enemy planets.<br />
** Thanks to dv = i ln(w0 / wf) for suggesting.<br />
<br />
* Player tachyon arrays now have the same icon as AI tachyon sentinels.<br />
** Thanks to dv = i ln(w0 / wf) for suggesting.<br />
<br />
=== Wave 3 of 5 of the Pivot (Part 1) ===<br />
<br />
* Added Ion Cannons back into the game, with the old AIWC-like ion mechanic of simply insta-killing anything of a low-enough mark level (in this case it's actually mark level <= the cannon's, instead of strictly less-than, and the cannons are Mark 1 through 5 instead of 2 through 6).<br />
<br />
* Added the "Bulletproof Fighter" bonus ship type. Basically just a fighter that's immune to ion cannons.<br />
<br />
=== Attack Move And Group Move! ===<br />
<br />
* Added keybind "Group Move" (default G)<br />
** Normally when you give units an order to move, attack, or enter a wormhole they go as fast as they can. Hold this button down to make them go at the speed of the slowest (mobile) unit to whom the order applies. Ignores speed debuffs like engine-damage, tractors, gravity, or paralysis.<br />
<br />
* Added keybind "Attack Move" (default X)<br />
** Normally when you give units an order to move, attack, or enter a wormhole they pursue the target point/object without regard to (other) enemies. Hold this button down to make them stop to fight anything they run across (more specifically, any time they're reloading).<br />
<br />
== Version 0.745 A Pivot And A Leap Forward ==<br />
(Released June 27th, 2018)<br />
<br />
* This is the first release of "The Pivot," which you can read full details of on Kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
** The short description is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
* As part of this, basically all of the game content that was pre-existing has been removed, and we're adding new content in a fashion as described below.<br />
** The interface and such from before has been retained, and then greatly expanded as part of this release.<br />
** The underlying engine and whatnot that we built has also obviously been retained, and we've also expanded that where needed in order to support the new content.<br />
<br />
* Existing savegames are all broken now. With the game basically being redone from the ground up in terms of units and content, this seems pretty reasonable. Older savegames would have been incredibly strange in the new version, anyway.<br />
<br />
=== Wave 1 of 5 of the Pivot ===<br />
<br />
* Wave 1 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Note that this obliterates a lot of the game that was previously known as AI War 2, and we're going to be adding back to this rapidly.<br />
** Please also note that a lot of the graphics for the post-pivot stuff is still inwork, which includes both icons and actual ship graphics. We have a lot to do!<br />
** Lastly, please note that this is putting a variety of kinks in our current GUI, so there is work incoming on that, too. We're basically making a mess at the moment, so please excuse our sawdust.<br />
** The overall goal of Wave 1 of the pivot was to get an end-to-end playable version of the game. By that, we mean the MINIMUM possible possible playable stuff, to be clear.<br />
** Main things that were thus included:<br />
*** Removing all the ships that previously existed, and then adding as new:<br />
*** Command station mechanics, and home command stations.<br />
*** AIWC-style mechanics for the AI home command station.<br />
*** Upgradeable mechanics for other command stations (so we can do econ, military, etc).<br />
*** AIWC-style metal harvesters, the seeding of them, and all that.<br />
*** Ditching power and fuel, and going back to the AIWC-style Energy mechanic, and adding energy collectors.<br />
*** Going back to AIWC-style mechanics for the space docks.<br />
*** Fighters, Bombers, and Missile Corvettes; and with that, a framework for applying the old AIWC balance numbers on top of our newer xml balance framework (until the framework and the numbers can be made to meet in the middle)<br />
*** Warp Gates for the AI, those were already pretty much the same between games.<br />
*** Engineers, and all the AIWC-style mechanics associated with them.<br />
*** A variety of turrets from the first game.<br />
*** Tractor turrets, but this time switching to the older AIWC-style mechanics for how those work.<br />
*** Scouts, and the AIWC-style scouting mechanics.<br />
*** AI Tachyon Guardians, which are simply a new unit, although possibly this included a shift to the AIWC-style cloaking mechanics? Not sure on that one bit.<br />
*** Science Labs, and the AIWC-style knowledge-gathering mechancis.<br />
*** Colony ships, and the AIWC style of those working.<br />
*** Mine layers, and the rebuilder mechanics that go along with those.<br />
*** Guard posts for the AI, and the mechanics that go with that.<br />
*** Some of the AI guardians, and the AIWC style of guardian mechanics (AIW2 was previously wrapping guard posts and guardians into one thing, but now that's more split)<br />
*** Force field generators, and a return to the AIWC style mechanic (with those now being present at all in general, too.<br />
*** Starship constructors, nothing major different here between the two games.<br />
*** Some of the basic starships.<br />
<br />
* For the time being, in the xml and underlying data structures, we still have global fuel and per-planet power.<br />
** However, everything is just using the global fuel now, to be more AIWC-like.<br />
** On the interface, we are now referring to this global fuel as being Energy again, as with AIWC.<br />
** We'll see how this continues to evolve, but for now that was the simplest thing.<br />
<br />
=== Wave 2 of 5 of the Pivot ===<br />
<br />
* Wave 2 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Now we're building back up a bit more in terms of having the game more recognizable, but there's still a lot to clean up before we even release it to you.<br />
** New ships, with their attendant mechanics, added:<br />
** Scout Starship mk1-4, Stealth Starship mk1-4, Shield Starship mk1-4, Siege Starship mk1-4, Sniper Starship mk1-4, Carrier Starship mk1-4.<br />
** Arachnid Guard Post mk1-5, Missile Guard Post mk1-5, MLRS Guard Post mk1-5, Laser Guard Post mk1-5, Shield Guard Post mk1-5, Stealth Guard Post mk1-5.<br />
** Tachyon Guardian is now Tachyon Sentinel. Added Wormhole Sentinel, Data Center, Advanced Research Station.<br />
** Matter Converter, Mercenary Space Dock (and mercenary versions of relevant ships), Home Human Settlement, Human Cryogenic Pod.<br />
** Multi-Needler Corvette mk1-5, Eyebot mk1-5, Armor Ship mk1-5, Autocannon Minipod mk1-5, Lightning Corvette mk1-5, Grenade Launcher mk1-5, Infiltrator mk1-5, Laser Gatling mk1-5, MLRS mk1-5, Raider mk1-5, Raptor mk1-5, Sentinel Frigate mk1-5, Sniper mk1-5, Space Plane mk1-5, Space Tank mk1-5, Spider mk1-5, Vampire Claw mk1-5, Vorticular Cutlass mk1-5, Tachyon MicroFighter mk1-5, <br />
** Flak Turret mk1-5, Laser Turret mk1-5, Lightning Turret mk1-5, Missile Turret mk1-5, MLRS Turret mk1-5, Sniper Turret mk1-5, Spider Turret mk1-5, Beam Cannon mk1-5, <br />
** Tachyon Array, Stealth Tachyon Array, Focused Gravity Generator mk1-5.<br />
** Laser Guardian mk1-5 as a rename from Needler Guardian, Stealth Guardian mk1-5, Sniper Guardian mk1-5, Missile Guardian mk1-5, Widow Guardian mk1-5, Tractor Guardian mk1-5, Lightning Guardian mk1-5, Flak Guardian mk1-5, <br />
<br />
=== New Faction: Astro Trains (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Astro Trains'.<br />
** When enabled, a bunch of Astro Train Stations are seeded on the map. Every so often the AI will create a Depot, then begin to spawn trains that head to the Depot. Trains will travel between the Stations, then eventually to the Depot. <br />
** For some depots, a train will be required to go "near" a player if possible so that you always have a chance to kill them. Whether trains are required to go near the player is tunable on a per-Depot basis.<br />
** There will be a number of different types of Depots. Some produce an effect whenever a train arrives ("Increase the next CPA's strength", "Spawn some ships for the Warden Fleet", etc), others produce an effect after a certain number of trains ("If 4 trains arrive then spawn a Golem"). Depots are defined entirely in XML so it's easy to add new ones or change their balance<br />
** There will also be a number of types of Trains based on the defenses they have. At the moment there is only 1 (and it's misnamed, Keith hasn't added its weapon system back into the Pivot yet)<br />
** Eventually I'd like to have the Trains give you metal when killed, but that mechanic isn't added yet. <br />
** This faction intended to be a More Interactive and Fun version of AIWC's astro trains, which I always found rather frustrating.<br />
** For other modders, this faction is a great example to look to since it defines a new table in the XML, which allows for very complex behaviour.<br />
<br />
=== New Faction: Macrophage (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Macrophage'<br />
** This faction is an invasion of giant organic Macrophage. They prey on Metal, devouring ships and structures they come across, and in particular they prey on the AI (since you haven't encountered them yet). <br />
** Macrophage live in colonies called Telium, which are hidden from the AI. A Telium sends out Macrophage to harvest metal by destroying human or AI ships. When a Colony has been fed enough metal it will create cloaked and harmless Spores which wander the galaxy. When spores encounter spores from other Telium they can reproduce to spawn a new Telium.<br />
** They are hostile to humans and AI alike, but not very intelligent.<br />
** If a Telium produces enough Macrophage, some of the Macrophage will be transformed into an Aggressive form and then go try to kill the human player. If a Telium is destroyed, all of the Macrophages associated with it will attack the player.<br />
** This faction is a bit like reimagining the Devourer Golem as a part of an ecosystem.<br />
<br />
=== Dyson Rework (Thanks, Badger!) === <br />
<br />
* The Dyson Sphere now uses a "Metal income per second" mechanic to spawn units instead of just arbitrarily creating things at a time interval. This makes it much much easier to balance.<br />
** Changing the intensity of a Dyson Sphere changes the income per second; the balance numbers for a given intensity are now in the XML.<br />
* Multiple Dyson Spheres can be enabled at a time, and each can have a different colour and intensity. Enabling X dyson spheres divides the income of a given sphere by X so multiple Dysons won't be able to just crush the Galaxy.<br />
* Dyson Spheres can be Antagonized, like AIWC. If a Dyson Antagonizer exists, all the Dyson Spheres drop what they are doing and start sending units to attack you. Previously created Dyson Sphere ships will keep their previous alignment (so if they were friendly before, they will fight Antagonized ships)<br />
** Antagonizers are not currently created by anything yet, so don't worry about them showing up yet. I imagine one of the Astro Train Depots will create antagonizers eventually, but there may be other mechanisms worth exploring.<br />
* Each Dyson Sphere now has a max Strength Allowed based on the current AIP; the higher the AIP the stronger the Dyson can get. The tuning for this is in the XML<br />
<br />
=== New Faction: Mercenaries (Thanks -- yet again -- Badger!) ===<br />
<br />
* Add new faction for Mercenaries. The Mercenaries are a much fancier version of the AIWC mercenaries (which are rebranded as "Auxiliaries").<br />
* Mercenaries are groups of units defined in the XML that can be hired to come fight for you temporarily using metal or hacking points. We may define other costs for them as appropriate going forward. A small set of mercenaries are defined right now with no attempt for balance, just to illustrate the various options that exist. Each group has a name and backstory and different behaviour. Some only defend one planet, others patrol nearby worlds (and will go help any of your planets if they are attacked), others will kamikaze at the AI. Some groups consist only of turrets and engineers. One group is a large cloaked unit that can be summoned on an AI world which will hopefully distract the Warden fleet, but that's untested.<br />
<br />
* Options for mercenary groups that can be specified in the XML<br />
** On Spawn behaviour: Fight all enemies on a current planet, then warp out. Defend this planet. Patrol nearby friendly planets (they will detect attacks on nearby planets and go help). Kamikaze into the AI. <br />
** Planet summoning restrictions: Can only be summoned on a Friendly planet, an AI planet, a planet not owned by the AI, or anywhere<br />
** Seconds allowed to exist: mercenaries will only stick around for a certain amount of time (in seconds)<br />
** Times allowed to summon: If the Primary unit of the mercenary group survives to the end of its "Seconds allowed to exist" then you can summon these mercs again, up to a certain number of times.<br />
** Cost: Metal, hacking points or both<br />
** Spawn Delay: the mercenary group in question will appear after this many seconds<br />
** Primary/Secondary/Tertiary units: A mercenary group can have up to 3 unit classes. You set these classes with the "[primary|secondary|tertiary]_unit_tag" field in the XML. Note that a tag can be on multiple types of units, and it will choose randomly among them. For example, we might have multiple units tagged with "MercenaryFleetship", and specifying that as one of the unit tags will pick among those at random. You can specify either a specific number of units with that tag, a strength of units, or both. So for example, one might say primary_unit_tag="MercenaryFlagship" primary_number_to_spawn="1" primary_strength_to_spawn="2000". If the Mercenary Flagship units all have 900 strength then this will summon 1 + 3 (we round up when calculating how many units for the strength) = 4 flagships.<br />
** Class: Defense/Offense/Utility. This is future proofing, we don't do anything with it yet.<br />
<br />
*At the beginning of the game, a number of Mercenary Communicators (I am open to a more flavorful name) are seeded on the map. Each Communicator grants access to some unique mercenary groups. If you are holding a planet with a Mercenary Communicator then you can summon those mercenaries.<br />
<br />
*The two key advantages of mercenaries over regular ships are that they don't cost energy and they can be summoned more quickly. Also some may do other fancier things later (like the warden fleet distractor). There is nothing preventing someone from tweaking the XML to allow you to hire the Devourer, for example, as a fun alternate win condition.<br />
<br />
*How quickly the Mercs appear is tunable on a per Group basis (so we could have identical groups, one that spawns in 60 seconds and costs X metal, another that spawns in 5 seconds and costs 5X metal).<br />
<br />
* AIWC style mercenaries are rebranded as "Auxiliaries"<br />
<br />
=== Marauders Expansionism ===<br />
<br />
* When the Marauders capture a planet, if they get up to Mark III outposts then they will begin spawning Raiders, powerful starships that will attack weakly defended nearby worlds. So if you give the Marauders and inch they will expand rapidly (the ideal case is "You've cleared out a bunch of planets but haven't captured them, and the Marauders will build an empire there if you don't watch out").<br />
* Make Marauders hostile to everyone. This means that neutral planets or weakly defended AI planets are eligible to be captured by the Marauders. Remember that the Marauders capturing a planet will permanently strengthen the faction.<br />
** Thanks to Ovalcircle for the suggestion<br />
<br />
=== Misc Bugfixes ===<br />
<br />
* Fixed an oversight in some of the recent versions where the Dyson Sphere was missing its cage. It now has a shiny (literally) new material on it.<br />
<br />
* Slight rework of the Autosave code. You now can specify the interval for autosaves and the number of previous autosaves to keep. So if I want to take autosaves every 10 minutes and keep the last 6 then I'll be able to easily jump back to the game up to an hour before. The goal is to make it easy to savescum efficiently and effectively ;-)<br />
<br />
* Provide a workaround for the problem where people who had last used a no-longer-extant map type would hit a crash when they start the game. Those deprecated map types are now defined (so it won't cause a crash anymore), but hidden by default so they can't be selected.<br />
** This was reported by numerous people, including Valeroth, Clasmir, zeusalmighty and probably others<br />
<br />
* Fixed a since-forever bug where ships fast ships that wind up needing to move to not overlap something would start bouncing around like they needed to go to the little starship's room.<br />
<br />
* Fixed the scales and collision radii of the assault starships.<br />
<br />
* For now at least, the bobbing of ships within squads has been turned off. As steam user Bucketsmith pointed out, it looked too much like ships on the ocean. It was meant to give a sense of life to the ships, but after he pointed this out to us, we couldn't stop seeing it, either...<br />
<br />
* The game now has proper settings on all the ship renderers for dynamic occlusion, motion vectors, shadows, etc. This should lead to a slight performance bump.<br />
** The editor has also now been set up to detect incorrect settings for these.<br />
<br />
* We had some extra uv2 and color and so forth channels on about 510 of our meshes, and we've now removed those. The amount of data was small, but it was useless info to be sending to the GPU since our shaders don't read from those. Every little bit of data shaved off when you're pushing millions of polygons on a millisecond scale is a win, not that it was causing problems in our testing thus far.<br />
<br />
* Fixed a bug where the single-ship-in-a-squad units were not being properly scaled down location-wise.<br />
* There was previously a bug in the profile screen where it was reversing what your body and trim color selections were on the box-based examples.<br />
** The icon-based examples were fine, but now the boxes have been corrected to match the icons.<br />
<br />
* Fixed a likely-longstanding bug where the scale of ships would drift smaller and smaller the longer you played, depending on how many times pooled ship visual instances of that type were reused due to deaths or due to switching in and out of the galaxy map view or between planets. Some went extremely fast, such as the recently added AI command stations. We suspect this is also what was going on previously with the warp gates.<br />
<br />
* Previously, the icon scales could sometimes be incorrect when tabbing back from the galaxy map, until you scrolled the camera around a bit. Fixed.<br />
<br />
* The placement mode icons were never scaled up or down to match the size they would be once placement was complete. Fixed.<br />
<br />
* Fixed a since-forever bug where the colors of icons in the main view were lighter than those in the sidebar. Turns out it was not color grading being applied, but rather that we were passing in our Color type parameters as Vector4s. This worked, sort of, but the typo wound up transposing the data slightly for some reason. Why it didn't just function correctly or fail completely is a solid mystery, to be honest.<br />
<br />
* Fixed an issue where opening savegames that were originally saved in a different campaign name but have been manually moved to a new folder were using the old campaign name instead of the new one as far as "continue last save" was considered.<br />
<br />
* Previously, if continue last save was not able to load the last save because it couldn't find the file, it was not showing any error. Now it tells you what the issue is.<br />
<br />
* In the game setup screen on the galaxy map, it no longer shows the colors of any factions other than player planet names (since in games with a lot of factions that actually gives away info).<br />
<br />
* In the game setup screen on the galaxy map, it now shows the player names under each planet name controlled by one.<br />
<br />
* Once into the game, it no longer shows the color of the faction on the other side of a wormhole if you've never scouted that planet at all.<br />
<br />
* Fixed an issue with the little bottom-left menus where the mouseover of elements behind them could sometimes happen because there were cracks between the buttons. Now there's a backplate behind the entire windows in those locations.<br />
<br />
* The underlying flag under the queue pause button was not actually implemented (it may have previously been the loop flag), so it didn't work; now it's implemented and works to pause that queue. Incidentally this does not disable any other functions of the building unit, unlike in AIWC where it was done through the general "disable everything" mode<br />
<br />
* Removed requirement that you have had units on a planet before you can send units there on the galaxy map (leftover from the sensor-scrambler scouting model)<br />
<br />
* Fixed a bug where the game was still trying to seed design-template-servers when the AI unlocked something new, despite those not currently being defined in the game, and thus throwing errors<br />
<br />
* Fixed a bug where AI ships freed by a minor faction still just went after the humans<br />
<br />
=== Misc Improvements And Additions ===<br />
<br />
* Added a new IGameEntityDescriptionAppender, which can be linked up using the new xml tags description_appender_dll and description_appender_type.<br />
** One example is presently in place with the human home command station and a test class called AnyUnitExampleAppender.<br />
** This is something that can be used for adding arbitrary unit-specific or class-specific dynamic text to the description of any unit or unit type. This is likely to be widely useful as we build out the UI later on, because we can put in context-specific warnings and commentary, for instance.<br />
<br />
* If a ship has been shot to death into remains, it now says REMAINS in red after the name of the ship in the mouseover, and it tells you what the remains means and that you need a remains rebuilder in the description text. Otherwise this was absolutely mystifying as to what was going on!<br />
<br />
* When ships are under construction directly on the battlefield, it now shows the health bar to show the progress that they are making towards completion. Holy cow did things feel incomplete without that.<br />
<br />
* Hey, does the scale of the grav wells on planets feel too small to you? Here's how you can tune the numbers. For example, at the moment we've doubled the size of the grav wells, and we'll see how that feels. To do the doubling, since that's simple math, here are the changes:<br />
** GameData/Configuration/ExternalConstants/KDL_VanillaConstants.xml<br />
*** distance_scale_gravwell_radius 13000 to 26000 (This makes the sim-level grav well twice as large, but if you just change this then visually things will draw very wrong. Must be an integer.)<br />
*** asset_base_unit_radius from 100 to 200 (This makes the units draw half as large as they previously were. It has to be an integer).<br />
** GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml<br />
*** combat_visual_scale_divisor from 10 to 20 (This makes the position of units, and the size of their selection radius, all make sense visually. Whatever multiplier you apply to distance_scale_gravwell_radius, apply the same one here).<br />
*** forcefield_visual_scale_divisor from 5 to 10 (Same deal, forcefields will look the wrong size if this isn't adjusted).<br />
** There actually may be a few other settings that we overlooked, but hopefully this is a comprehensive guide. If not, we'll update this in the future if we discover a hole.<br />
<br />
* Selecting a constructor unit (like the Space Dock or Starship Constructor) will automatically open the Build Tab on the sidebar. It was really annoying to click on a constructor, then realize you need to also click on the Build Tab. Note that hitting "B" is more efficient than clicking on a constructor anyway.<br />
<br />
* Dark Spire: Different factions produce different amounts of Energy when their units kill or are killed. These values are tunable in the XML. The AI or players units produce more energy than minor factions like the Macrophage, Devourer or Nanocaust.<br />
<br />
* In the planet view, linked planet names are no longer shown over wormholes unless you are holding down the ctrl key. Thus you can easily see the names, still, but they aren't cluttering up your view all the time (and making the gravity well feel smaller in the process). This also has the benefit of making it really obvious when you can click to send your ships or camera through the wormholes.<br />
<br />
* Now that warheads are no longer a resource that should be shown on the top bar, we're bringing back the attack warning/numbers up there. This shifted around several elements on the top bar, spatially, but put the new attack warning in the bottom right of that bar.<br />
** Slightly different from the first game, the new attack indicator shows the number of hostile enemy ships on ANY player planets, not just those you own. That seems relevant. It has three states: a greyed-out "nothing's here" safe shield with checkmark, a yellow and orange "things are here, but not on your personal home planet," and then a red and white warning "there are at least some of these guys on YOUR home planet."<br />
** Undoubtedly we'll adjust this some over time. One oddity you'll notice is that the frequency of the flashing of the text in this field is inconsistent. That's unfortunate, but a side effect of the way that unity dirties its GUIs rather than drawing every frame, along with the multithreaded queued approach we take on top of that.<br />
** The tooltip will list all your planets that are under attack sorted by the strength of the attack<br />
<br />
* The quick start button now actually works, although it goes to the same location as the custom start. A tooltip notes that the quick start variant is coming soon. However, some folks were confused and not thinking to go to the custom start, so here we are.<br />
<br />
* On the galaxy map and in the planet view, the icons for ships now are rotated to billboard toward the camera on the GPU instead of on the CPU. This saves an enormous amount of processing when there are many icons, and means that we can update the scale of icons more rapidly even when there are many many icons on screen -- getting rid of that delay in rotation/scale that was seen in prior versions of the game. There still IS a delay built in, just in case you absolutely flood your screen with icons, but it shouldn't be hit in normal gameplay (or if it is, we'll adjust this further based on profiling of said savegames). Additionally, since the rotation is run on the GPU, that means that CAN'T happen any way other than instantly, which is nice.<br />
<br />
* The color picker UI has seen a number of updates:<br />
** The individual color cells are now far smaller, letting you see tons more of them at once, and feeling more like traditional color pickers.<br />
** The selected color cells no longer blink their main color, but instead blink a little border around them. It's a lot more obvious what is going on now, and no longer seems like a bug. The flashing is still needed because the borders get lost in the riot of colors, otherwise. Hazard of having so many options.<br />
** There is now a section of preset options (combos of body and trim colors) down at the bottom of the screen. These give attractive options that also don't conflict with any of the NPC factions. This is one of those things that makes the game infinitely more usable.<br />
*** There are eight of these right now, but it's possible to define more via xml.<br />
<br />
* The in-game tooltips for planets and units/objects now shows in the bottom left, as it previously did in AIWC.<br />
<br />
* The selected ships notice now also shows up down at the bottom of the screen, where the tooltips do. It only shows if a tooltip (or the escape menu) is not showing. This saves important space in general, and also paves the way for the notifications bar up at the top to finally have room.<br />
<br />
* Scouts have a much higher movespeed than anything in the game, so the approximation for lerping squad movement was much higher than anything else. This caused scout movement to feel very jerky. Instead we put a cap on the fastest possible visual movespeed for a squad.<br />
<br />
* Fixed a bug deep in the bowels of our UI code that was leading to a lot of higher-level bugs with things being positioned incorrectly, etc. The most recent manifestation of this, in the working versions of the pivot build, were un-owned metal desposit spots showing up half off the sidebar.<br />
<br />
* Added a new "Owned by Nobody" section on the ships section of the sidebar, since that's a legitimate fourth category. Golems that nobody controls yet, un-owned metal spots, etc, etc.<br />
** Also new, the items in this category can be seen on the sidebar if you've ever been to the planet before, even if you don't have vision of the planet right now. This is pretty handy.<br />
<br />
* Engineer and Rebuilder FRD now works (though their prioritization leaves something to be desired)<br />
<br />
* AI planets directly adjacent to a human homeworld no longer seed guardians or sentinels, to match AIWC (AIWC had wormhole guard posts, now known as wormhole sentinels, but their omission is not significant)<br />
<br />
* Guardian counts have generally been significant reduced, and are now proportional to planet mark level as well as number of guard posts<br />
<br />
* A bonus ship type can now be selected for each human faction (currently you have to click "more" to get to this, since the space is already taken by the two color dropdowns and the Ark dropdown)<br />
<br />
* You now start with 10k science, and all weapon turrets (except beam), to parallel AIWC<br />
<br />
* Your command stations will now automatically claim metal spots, to better resemble what happened after capturing a planet in AIWC.<br />
<br />
* Made the planet view cursor code moddable and open source.<br />
<br />
* Constructors can now be set to rally units they build to either an already existing control group or to a point chosen by the player.<br />
<br />
=== Keyboard/Mouse Input Overhaul ===<br />
<br />
* Previously we were using some middleware called Rewired, which was bulky and inflexible in a variety of ways. It's super useful if you want to handle a bunch of gamepads and in particular if you want to have design-time-defined controls. Our use case was diverging enough that all it added was bloat, though, because we had to write our own runtime-control-definition layer, poll the list of all our controls while it polled all the keys under the hood, and other messy things like that. So Rewired is out.<br />
<br />
* We brought in what started as EasyInput from ootii as replacement middleware, then pared that down to just the keyboard and mouse bits. We then basically rewrote the entire thing so that it's more efficient, uses no dictionary lookups during the game loop, and is compatible with all the things we want it to do for this game. So ultimately we wound up just kind of creating our own.<br />
<br />
* The new input system has a lot of performance benefits, but one of the biggest things it will do is make it easier for us to define all of the keybinds in xml, no matter how many we have. All of the keybinds that were previously hardcoded have now been moved to xml.<br />
** It was previously somewhat difficult for us to check if something was just pressed, just released, being held, etc, in an efficient and automated way. This is now something that can be directly specified in our xml definitions for the keybinds.<br />
** We also have a new Custom type of key check, which basically skips the whole Handler reflection-linking process and instead just lets classes elsewhere in the code get an object reference to that key and then check it as needed. This is very useful for modifier keys of any sort, and for all of the camera controls.<br />
<br />
* Work has also been done to prep this for an actual interface for viewing and editing keybinds in game. We'll get that in place prior to Early Access, but for now we have a few other fish to fry.<br />
<br />
* A variety of bugs relating to keys that could be triggered on the main menu that were only supposed to be in-game have been fixed.<br />
<br />
=== Galaxy Map Improvements ===<br />
<br />
* The galaxy map is now using a purely top-down camera with the ability to pan and zoom but no ability to tilt or rotate the view. There have been a number of valid issues brought up with the existing galaxy map, and we're starting to work through those now. Lots more to come, but here are some of the first bits.<br />
<br />
* Players can now see the entire galaxy map structure -- meaning the actual planets and their wormhole links and lines -- from the start of the game.<br />
** This is the same data you see in the lobby, so it was always strange that we took it away after the game started in Classic and this game.<br />
** This does NOT grant you any actual visibility on the planets as to their contents, owners, resources, ships present, or anything else.<br />
*** Aka, this is not a reduction of fog of war, it's just the ability to see the shape of the battlefield, same as you already could in the lobby.<br />
<br />
* Previously, on the galaxy map it would take you into the planet view as soon as you clicked a planet, unless you held Alt. This was not helpful for a variety of reasons, so based on user feedback it now by default just switches which planet is selected but doesn't change the view unless you hold Ctrl.<br />
<br />
* When you are on the galaxy map, it now only shows the name of the planet you are currently viewing unless you hold down the ctrl key. This is a lot more like the first game, and is way less cluttered.<br />
** In the lobby, it shows the names for all human planets, with their colors on there.<br />
<br />
* You can no longer zoom the galaxy map so far in, you start further zoomed out, and you can zoom out further.<br />
<br />
* On the galaxy map, the visuals for the planet are now 4x larger, making them easier to see at farther zoom ranges. This is essentially the same as making the planets "closer together," so to speak, in its effect on how you view the map.<br />
<br />
* Rather than drawing the literal visual of the planet on the galaxy map, which turned out to be fairly pointless, we now draw icon-like 3D models in place of them.<br />
** These show the color of the owning party for the planet, if there is one, and they show a different icon for unscouted (ever), regular, and homeworld planets.<br />
** The regular-planet icons are a bit different for marks 1-5 of regular planets, incidentally (anything over mark v shows the mark 5 graphic for the planet itself). These help give you an indicator of the strength of planets when they are in the hands of the AI.<br />
*** After you capture a planet, it still retains its graphical styling for what mark level it used to be, which is a subtle but cool way of showing your progress in the past.<br />
<br />
* On the galaxy map, the selection ring is now fancier, easier to see from a distance, and it rotates to make it even more obvious where it is.<br />
<br />
* The "king unit" no longer shows up next to home planets on the galaxy map. Instead, now the planet itself is showing up looking different. It's a lot easier to tell what the heck is going on, now!<br />
<br />
* The text on the galaxy map that shows the strength at planets is now a lot more clear, and more useful in general. Before it just showed the amount of threat at any given planet, period.<br />
** Now it shows a yellow row with a strength icon for any allied + self units that are on that planet (or omits the line if that total is zero).<br />
** In the same fashion, it shows a purple row for any threat on the planet IF you currently have vision there. Or omits the line if none.<br />
** And also in that same fashion, again if you have vision there, it shows a red row for the total of hostile strength on that planet that is NOT threat.<br />
** Now you can actually see what sort of dangers there are to your planets, which planets of yours are outnumbered, and all sorts of other useful things like that!<br />
** It actually shows the strongest forces (allied or enemy) on the top or bottom. It doesn't sort the threat vs not threat, but moves those as a bloc.<br />
<br />
* Also adjusted the placement of the "lower text" on the galaxy map to be centered right below the planet name, rather than down and to the side. Previously it often looked like the threat counts were located at some other planet instead of the planet they were actually on.<br />
<br />
=== Camera Improvements ===<br />
<br />
* The camera in the planet view has been something of a bugbear for a little while, because there were a variety of things that could go wrong with it. But even more than that, it was using a TON of keys on the keyboard: WASD and the arrow keys for movement, Q and E for rotation, and R and F for tilt. Time for revisions!<br />
<br />
* One of the new things that was most interesting was the idea of a "tilt and rotate" mode, rather like what happens if you hold the right mouse button in Planet Coaster. We can't really use the right mouse button that way, and the middle mouse button makes more sense as the existing "grab and pan" functionality, so we've defined the mode modifier for that as Q now, or Mouse4 if you have a 4+ button mouse (those are awesome, incidentally).<br />
** Along with this change, the default bindings for rotation and tilt are simply set to nothing. If you want to bring back the Q and E and R and F the way they were, that ability didn't go away, but we're claiming those keys for other things instead (Q is already the tilt and rotate mode, whereas the others are unbound at the moment).<br />
<br />
* Along with this, zooming out could potentially put you out of bounds previously, if you had the camera tilted sideways a lot. Now when you zoom out, it un-tilts your camera to avoid this happening. Most other games do this same thing; technically it wasn't zooming out before, but just backing up laterally, anyway, if your angle was shallow enough. Now it actually always zooms out.<br />
<br />
* Previously it was possible for sometimes the mouse wheel to give way too much input in one frame, and send you shooting forward. Probably this was happening directly during a long Garbage Collector frame, although we're not sure. We've put in some safeguards to prevent this from happening, although if it is caused by something other than what we guessed then it will still happen and we'll have to add more safeguards elsewhere.<br />
<br />
* There's a new setting for the tilt/rotate mode that lets you set the sensitivity of that.<br />
<br />
* The "free look camera" stuff has all been commented out for now. We could in theory bring that back, but it felt awkward and was not really needed, ultimately. This removal also helps the settings menus be a little less overwhelming when it comes to camera options.<br />
<br />
=== Notifications Bar Added! ===<br />
<br />
* The wave and CPA warnings are back! Actually, they never were quite in the game in this fashion showing a proper countdown. They show a little icon and number box in the upper left of the screen, which you can hover over for more info.<br />
** Clicking on them takes you to the planet that is involved, if it's a specific planet.<br />
** For waves, it shows you the planet it is headed to, and it strength, on the notification badge itself. For CPAs, it just tells you a CPA is coming and when.<br />
** For these, it has a tooltip for each of them that tells you what a CPA is if you don't know, or what the composition of the incoming wave is if it's a wave.<br />
<br />
* The notification bar now includes entries for planets of yours that are under attack, and shows the total strength counts for those ships that are aggressing and those that are defending.<br />
** These are color-coded, and whichever is on top is stronger, so you can tell at a glance if you should be winning this fight (on paper; positioning and tactics are important if the numbers are close, of course).<br />
** The icon for this is different if it's your home planet versus one of your other planets, so this is yet another source of visible warning when your home planet is under attack.<br />
** As with the wave warnings, you can click these to immediately go to the planet in question.<br />
** The tooltips for these show the name of the planet that is being attacked, who the attackers are, who the defenders are, what small ships, large ships, non-combatants, and strength each participant has, and what critical infrastructure is located here for the defenders.<br />
*** Big thanks to Eric for designing all of these things (as with almost all of the GUI now, but this in particular is super cool).<br />
<br />
* There is now a general-purpose framework where developers and modders can add items to the notification bar from any faction.<br />
** This is useful for a variety of things, ranging from alerting you that a trader is visiting a planet and wanting to trade, to telling you marauders are after you, to other things of that nature.<br />
*** Note that we're not using it for any of those purposes yet, but the capability is now there -- and the first proof of concept is actually the planet under attack notices.<br />
<br />
* We now have the concept of critical infrastructure, which are simply items that you get warned about in the tooltip when they are on planets of yours that are under attack.<br />
<br />
=== Visual, Audio, and Workflow Improvements ===<br />
<br />
* The icons for ships are now just stored once in the game, at a single size, rather than twice at two different sizes. This makes it a lot faster for us to update the icons, and uses a bit less disk space.<br />
<br />
* Added a new visuals_scale_multiplier xml entry for GameEntities that lets us scale up or down entities as we wish for whatever purposes.<br />
** One of the biggest uses is so that we can have fewer prefabs that we have to initialize and keep in memory for ships that grow in size but nothing else during mark-level changes.<br />
** This is now in use on the AssaultStarship and the NeedlerGuardian, which are the only two ships re-implemented at this point for which this is relevant.<br />
<br />
* The tractor turrets look so cool that we've made them a bit larger and made it so that there is only one per "squad" on them. They look like they individually mean business as it is.<br />
<br />
* The visuals, icons, and scales for engineers, rebuilders, and human cryogenic pods are all now in place.<br />
** Note that only engineers and rebuilders are actually in the game yet.<br />
<br />
* Adjusted gimbal_base_scale from 2 to 2.5 in GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml so that the gimbal icons aren't so darn tiny. This seems to feel more like AIWC, now.<br />
<br />
* Human scouts and AI tachyon sentinels now have their graphics in place.<br />
<br />
* Added a new y_offset_of_ship_in_formation xml tag, which allows us to raise and lower ships from a squad as a group. This is useful for really tall structures, for instance.<br />
<br />
* Added the visuals for all of the command stations (AI, basic human, economic, logistical, military, warp jammer, human home, human home core).<br />
** This was quite a task to pull off in a satisfying yet recognizable way, but we finally have it. Basically these needed to be larger and more epic, yet stand out and not have too many polygons, etc.<br />
<br />
* All of the icons for the new command stations and such are now in place, and the icons for command stations show larger than other icons on the planet. The icons for the king units now show even larger. There are also different icons for each type of command station, in such a way that you can easily tell something is a command station, but also that it is some other kind of command station beyond the basic sort.<br />
<br />
* The voice_group xml tag that specifies what voice is used for ships is now required. For non-human-controllable ships, just using Silent is preferred, although it doesn't really matter since these voices only happen when a human player gives orders to the ship in question.<br />
** Previously these were partly defined on the weapon types, but this was far too broad a way of doing it (and had stopped working on our internal versions as part of the Pivot anyhow).<br />
<br />
* Visuals have been created for the energy collector, matter converter, science lab 1 and 2 (though only mk1 is in the game), raid starships mk1-4, metal harvester (and empty version), tractor guardians mk1-5, scout starships mk1-4, home human settlements, and hackers (though hackers are not in the game yet).<br />
<br />
* The visuals for the colony ship are now in place.<br />
<br />
* There are a lot more Arcen-based header menus in unity now for us to speed up repetitive tasks. Also ones for opening folders, and in general letting us work faster and with fewer clicks to get things done.<br />
<br />
* The icon definitions no longer need a _border entry in xml. They still need the actual files, but the game can find them just based off the original icon entry. Yay less typing and chances for typos.<br />
<br />
* Wormhole scaling-up has been removed, and will be replaced by a far-zoom icon like ships/squads get.<br />
<br />
* "GenericObjects" can now have a list of AlternativeMaterials specified. <br />
** This is used for the wormholes in particular so that they can change colors and cubemaps in order to represent different things, or even being hovered.<br />
*** On the wormholes, if you look into them, you'll see a distorted view of actual images from the ESA/Hubble, used with attribution. It's a neat little detail, and you have to get extremely close in to see it.<br />
<br />
* The wormhole visuals have been completely redone AGAIN, probably for the last time this time. We're using something called Scingularity, heavily modified for our purposes.<br />
** The wormholes are drawn using a single untextured quad, which then does a ton of math and uses a cubemap for the center of the singularity, and then a pixel shader to do the outer swirl. Because of this, it looks fantastic at any zoom level. And amazingly, it performs well. You don't need any special hardware.<br />
** In our case, we're using those EA/Hubble images noted above for the center of the wormholes, and then different normal maps for swirl patterns on each color of wormhole, and different colorizations on the wormhole swirls to indicate different things.<br />
** Greenish ones go to enemy planets, darker blue ones go to your planets, lighter blue ones go to allied planets, red/orange ones have a wave incoming, pale green ones go to allied or neutral NPC factions, and white goes to unowned planets.<br />
** When you are hovering over the wormhole -- which requires you to be holding ctrl down, incidentally, so that you can send either the camea or units through it -- then it glows at a much brighter temperature. Makes it far easier to know if you're actually hovering over it.<br />
<br />
* At long last, your choice of colors in the profile menu actually means something! Whatever you select on your profile for your body and trim colors are now used next time you go into the lobby.<br />
** The lobby is still the outdated style with the dropdown for colors, but now it has two colors there for your choosing, too. Using it that way is not ideal, but we'll get to that in the next few weeks.<br />
** For now, it's a very happy thing that we finally have two-color player colors in the game!<br />
*** For each place text is using the colors, it just uses the body color right now.<br />
*** There are presently be some issues with the icons in the main not matching the colors exactly, which is probably due to color-correction post-processing. We're going to be shifting those icons into the GUI camera soon anyhow, so that should solve that when we do. Until then, everything looks washed out in the main icon view.<br />
*** When it comes to showing that a unit is hovered-over, it now goes darker or lighter depending on whether its average color is greater than or less than half brightness; this is instead of the <br />
*** When it comes to showing that a unit is selected, it now adds a border around the mark level icon itself, and brightens the border of the unit color.<br />
** As an aside, when you change the colors and hit OK in the color picker in the player profile screen, it writes to the underlying log what the color selections are called. You can then use this in xml defaults if you're doing modding. Otherwise this doesn't affect you.<br />
** For all of the special factions, AI factions and subfactions, humans, and so forth, there are now default colors! With the two-tone colors we were able to do a lot more theming and nuance.<br />
*** Player colors are going to need to include some defaults for people to choose from, since it can be time-consuming to do so otherwise and you don't know if you're potentially selecting something similar to another faction's defaults. Providing some quick-pick attractive defaults is on our list prior to EA; we already have 8 sets of colors, but the interface isn't updated for that yet.<br />
<br />
* The icons for all ships have been improved, with more darkness and light on them, and more layers of borders and sub-borders, to make things really have contrast and stand out so that they are more legible.<br />
<br />
* Put in a fix to our spritesheet for the ship icons so that now there is substantially more padding in them, fixing some bleed-over between sprites (causing line artifacts, etc) at smaller mipmap levels (when an icon is shrunk a lot).<br />
<br />
* The game finally has "burning and dying" effects on the ship icons as they are killed. Thanks to Badger for continuously pushing for this, as well as for implementing the timing code portion of this. This really helps make the battles both more dramatic from the far zoom view, as well as frankly clearer what is going on.<br />
** We implemented this in completely open-source code between the C# and shader bits, so it can be tuned by other folks if desired. We though about using a ramp texture, but wound up going with a series of lerps between vector4s instead.<br />
<br />
* The font for the mark level numbers has been changed again, and looks much better now.<br />
<br />
* On the sidebar, the strength number is now shown abbreviated instead of written all the way out -- we're trying to standardize on that everywhere, as it's the easiest to read.<br />
** This also now applies to the resource bar at the top of the screen.<br />
<br />
* Fixed a variety of places that were incorrectly using the strength per subsquad instead of the strength per squad -- including in some of the targeting logic for ships.<br />
<br />
* Fixed a bug with the ships tab of the sidebar where it was including the strength of noncombatants in the total strength for the planet, which was not remotely useful. Now it just shows the strength of combatants, like everywhere else, which gives you a much more valid picture of the battlefield. Defensive strength of noncombatants is kind of incidental to that.<br />
<br />
* At a few places in the game, we were showing "Human Remnant" as the faction name instead the name of the player in question. Now we show the player name.<br />
<br />
== Version 0.743 Music Blooms ==<br />
(Released May 2nd, 2018)<br />
<br />
* The second half of the AI War 2 soundtrack is now in place! These pieces, as specified in the kickstarter, are all remixed/remastered versions of tracks from AI War Classic. In there we have the Defeat and Victory tracks from the first game, Nomad Sunrise from DoW, Intro and Midnight from the base game, Night Light from LOTS, Rising Up from VOTM, and Voyage to Zenith from TZR.<br />
** With this, we're now also distributing the full soundtrack (plus a variety of bonuses!) to all those backers who signed up for it. You should have an email with that link, and/or be able to see it in your backerkit profile page: https://aiwar2.backerkit.com/<br />
<br />
* The game now actually plays defeat music when you lose.<br />
<br />
* When you win, the game first plays the For The Fallen vocal track, and then goes into the from-Classic Victory track, then goes on to play regular music from the in-game rotation.<br />
** When you lose, the game plays the defeat track, then also goes back to the regular in-game rotation.<br />
** These two changes are aimed at people who want to keep playing after a victory or loss, which are a not-insubstantial number of people.<br />
** We actually have not tested this bit at all, so, uh, if it doesn't work properly like this then please do let us know and give us a savegame. We're kinda busy on a lot of fronts right now! Normally we unit-test things, though.<br />
<br />
* We're now internally using the Asset Bundle Browser to help us find trouble spots with overlarge pieces of data in our asset bundles that we're building for the game. This helps with load speed, runtime efficiency, and asset bundle build speed.<br />
** On github: https://github.com/Unity-Technologies/AssetBundles-Browser<br />
<br />
* Slightly improved the efficiency/size of the effects asset bundle.<br />
<br />
* Reworked the bloom effects to use the Natural Amplify Bloom effect rather than the Realistic one. This, plus a couple of other tweaks in that area, lead to something that still has bloom, but is a lot more subtle than before. Some folks were complaining about that with the teaser trailer, and we can see their point.<br />
<br />
== Version 0.742 Hotfix ==<br />
(Released May 1st, 2018)<br />
<br />
* Fixed a bug where the total seconds to load was only being reported in output.log, and not in the ArcenDebugLog.<br />
<br />
* On the main menu, it now shows how long it took to load the game, and you can hover over that to get details if you want. The "logged in as Steam user" info is right below that, and both are a bit smaller now.<br />
<br />
* The loading feedback on the sound effect items and graphics items are now more coarse, leading to faster overall loading times compared to the last internal versions.<br />
<br />
* The method for tracking how much time has passed has been adjusted to use DateTime.Now instead of the Stopwatch class, since we had some questions about accuracy.<br />
<br />
== Version 0.742 Darkly Loading Spire ==<br />
(Released May 1st, 2018)<br />
<br />
* Rather than looking like the application is hung when it starts, the game now shows the loading progress in the form of what it's doing at the bottom. It doesn't show a loading bar, but it does show a counter of how long has elapsed, and how long specific long-running bits are taking.<br />
** This is useful both for us to know in terms of telling when something is overly slow to load, and it also gives players something to look at and a cue that there's not just a frozen application in front of them.<br />
<br />
* Surprisingly, the sound effects loading is taking twice as long as the loading of the graphical data right now (9.6s versus 4.4s on Chris's machine), so this is already an example of where we can optimize our loading speeds a bit, which saves everybody a lot of grief and saves the devs here time staring at the screen when it's time to test each item.<br />
<br />
* Additionally, now if the game has an error during load, it won't show a mishmash of all the gui windows all overlapping themselves in an insane and obviously-glitchy way. There is no functional difference between before and now, but it seems a lot less terrifying now if you're seeing it for the first time.<br />
<br />
* The loading log for how the game starts up is now more informative than ever, and on the long-running sections it actually shows a progress count rather than just hanging on those sub-parts. Sometimes those sub-parts can take 30 seconds or more on first run (though usually 4 seconds or so on subsequent runs), so having this feedback is pretty vital to this not feeling like maybe it locked up.<br />
<br />
* The alpha channel has been removed from a ton of images that didn't need it, letting the compression format be smaller on disk, in RAM, and in VRAM, as well as loading faster. This will definitely be kept, as it was useless data.<br />
<br />
* The max texture size for some of the non-diffuse texture channels for the ships are now cut way down from what they were before, to reflect the distances you typically see these from. This saves 300MB of RAM, disk space, and also lowers the VRAM requirements and makes rendering faster. It also makes loading vastly faster. This is definitely a quality/compression tradeoff, and we do still have the originals, so we may wind up making this an option or something in the future if it seems ugly to folks this new way. At a fairly casual glance by those who worked on the ship graphics, we can't really tell the difference, though; in side-by-side shots you would notice it, but that's about it unless we are mistaken.<br />
<br />
* The compression style for weapons effects and other sound effects has been changed to ADPCM instead of Vorbis, and these are now set to load on a background thread rather than the main thread. This makes loading vastly faster for the sound effects, although it does use something like 20MB of extra disk space. The amount of space used in RAM is identical, since we always decompress on load, anyway.<br />
<br />
* The voice acting clips are now set to stream in like the music does, as well as load on a background thread, rather than being preloaded or decompressed early. This actually saves quite a bit of RAM, and doesn't affect disk space, and saves an enormous amount of loading time. The downside is that it can cause a sub-second delay in playback of voice clips, but given the nature of a voice clip that is both imperceptible and irrelevant.<br />
** Different types of sounds have different characteristics and need different settings, and we've optimized these, in short.<br />
<br />
* Speaking of optimization, we're no longer doing full error-checks on load for each ship visual that is loaded in. That was time-consuming and pointless. In the ship designer windows it shows errors, and if someone commits a ship with errors that's something that is a goof on their part and not something we need every player machine checking for every time the game starts. So that saves another batch of time.<br />
<br />
* We're also doing another experimental thing, where with the solomesh ships we're directly using the asset bundle copies of the ships to get their meshes and materials, rather than instantiating a copy first.<br />
** Generally this is not advised, since it can cause a bunch of extra disk reads and other general slowness when accessing that data. However, in this particular case, since we're not actually accessing anything more than the data on these objects (we're not making copies of the object), we think it's not hitting the disk like that. We don't see any evidence of it in the profiler now, anyway, and we were in the past.<br />
** This speeds things up yet again, and so far so good on that front, but we may have to back this one out later.<br />
<br />
* Overall the loading speed of the game has more than doubled, in typical test cases thus far, and it actually is responsive while loading as well, which is an important first impression piece.<br />
<br />
* Fix a bug where the Nanocaust was never losing influence over a planet even after the constructor was destroyed<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Change the default colour of the Risk Analyzers<br />
<br />
* When the Human Marauders put Marauder Outposts on a planet, give them Influence over the planet (so it will be shown on the Galaxy map)<br />
<br />
* Initial commit of Dark Spire. Like in AIWC, it spawns ships based on energy it gains when ships die on a planet with a Vengeance Generator (VG).<br />
** Energy is tracked per VG. When VG energy > threshold it either shares energy with the VG with lowest energy or it spawns ships to attack. There's a Conversion Ratio when turning energy into ships; it starts out not very efficient (maybe 50% of the energy becomes ships), but every time a VG spawns new ships it becomes more efficient. <br />
** AI Overlords start with a Dark Spire Ward structure on their planets which prevents Dark Spire ships from going there. If a player destroys the Ward then the Dark Spire will be able to attack the AI overlord, thus giving you a new win condition.<br />
** Every so often the Dark Spire will attempt to spawn a Vengeance Generator Locus. The Locus will transform into a full Vengeance Generator in 5 minutes. If you don't kill the Locus in that time period then it turns into a Vengeance Generator. Planets are eligible for a Locus to spawn if they have no Human or AI ships on them, and they are adjacent to a Vengeance Generator without any human or AI ships on it.<br />
<br />
== Version 0.741 Music Part 1 Of 2 ==<br />
(Released April 29th, 2018)<br />
<br />
* The first half of the new tracks for the AI War 2 soundtrack are now in place: Abandoned Ship, Absolute Zero, Bouncing Lights, Event Horizon, Light Year, and Supercluster.<br />
** All by Pablo Vega, mastered by Dio, and all fantastic.<br />
<br />
* Update to Human Marauders behaviour. If they destroy all your forces on a planet then they will begin to construct Marauder Outposts which will spawn Marauder new units. This will make it harder to recapture planets. Every so often a new MarauderOutpost will be added, and existing MarauderOutposts will upgrade themselves to make stronger units. Note also that when the Marauders capture a planet they get a permanent boost to their MaxBudget, making them more dangerous.<br />
** If you allow the Marauders to get Mark 3 outposts then they will start getting Budget faster.<br />
** The balance levers are in XML for ease of use<br />
<br />
* The default game volume is now quieter in the hope of not deafening new players<br />
** Thanks to Flavin for the report<br />
<br />
* Improved the performance of music loading at the start of the game and during the game.<br />
<br />
* Fixed a regression in the prior version of the game where the first time any camera loaded a "traditional skybox" type of background, it would be solid black instead.<br />
<br />
* Fixed an issue where the construction part of the sidebar could show some stale data when switching from a planet with a builder to one without a builder.<br />
** Thanks to hawk for reporting.<br />
<br />
* Fixed a bug that nobody had reported yet with lightning attacks being very strange-looking and not like lightning bolts anymore.<br />
<br />
* Fixed a bug with the various type of geometry-based explosions (flak, lightning, etc) so that they now render additively in the transparent queue rather than the overlay queue, and so that they read from the zbuffer but no longer write to it.<br />
** This changes the effects a fair bit so that they no longer do things like eat into one another or the ship icons around them.<br />
** These will need further tuning to not be over-bright in huge battles, and they're on our list for further improvements visually anyway, but for now it's a good enough start.<br />
<br />
* Risk Analyzers: code tidying, also track the total and net AIP generated by Risk Analyzers. Eventually this is going to turn into 'When X AIP is generated by Risk Analyzers, do something unpleasant to the player', probably an exo wave, once exo waves are added<br />
<br />
* Map Types: Add a new planet placement mechanism for Simple and Realistic, and tweak one of the previous placement algorithms for Simple and Realistic<br />
<br />
* Fix some bugs with Marauders, where outposts weren't upgrading properly.<br />
<br />
== Version 0.740 Clean Up That Nebula, Young Man! ==<br />
(Released April 26th, 2018)<br />
<br />
* Fix some dumb bugs in the HumanMarauders faction that was preventing the marauders from correctly analyzing your planets to see which they should attack<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a bug where the Vis layer was not correctly setting the Shot location when we tabbed into a planet with the shot in flight; it was assuming the shots should be at the middle of the planet, which is manifestly incorrect<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fix a bug where where if a non-Nanocaust faction killed a unit that had taken Nanocaust damage, the killing faction would get the new zombie ship instead of the Nanocaust. <br />
** Thanks to OvalCircle for reporting<br />
<br />
* A new and frightening visual look for Usurpers has been added. These will be absent for a while until we get past the "Fun point" once Keith gets his first wave in place, but then we expect these to come back pretty darn fast, so we want them to look nice and scary). (These are the AI ships that recapture planets)<br />
<br />
* The infrequently-changed space backgrounds, and planet graphics, have all been moved into a new internal AIW2Scenery unity project, which saves us a _ton_ of time when actually building the gui asset bundles, or ship asset bundles, for the game.<br />
<br />
* The sound effects and voice acting files have all been moved out of the platform-specific projects, and out of the modding and gui project in general.<br />
** These are now in the GlobalBundles folder, which saves some disk space if you've got multiple OSes of the game installed at once. It also saves us time when pushing new versions of the game, and has less of a footprint on the system for everybody thanks to the modding unity project now being much smaller without all those files.<br />
** This does make some of the sound stuff a bit harder to mod, but we'll just throw that stuff up on github or google drive or something when the time comes. It's not worth inconveniencing everyone over putting it directly in the build.<br />
<br />
* There were a variety of old "space boxes" that were from back in the kickstarter days that were just... underwhelming. They were nicely colorful, but had kind of gross large stars in them, and in some cases just junky colors in general. These have either had their gross big stars patched out, or they've been removed.<br />
** Overall these have mostly been removed except for the best couple of them (which now have color variants!). <br />
** This saves about 200mb of RAM for something that wasn't looking so hot in general, and makes the game load faster, too.<br />
<br />
* Our middle-style "nebula sphere" type of backgrounds previously had a really bad problem with distortion on the starfields. This was just embarrassing, and led to some perfectly-fine spaceboxes looking really gross depending on the angle of view, instead. These have all been fixed up with a revised shader for handling those starfields as simple tiling rather than triplanar reading.<br />
<br />
* Our most recent, and best-lookg style of space backgrounds, which are based on traditional skyboxes, were absolutely HUGE, taking up more than 450mb on disk, and in RAM. Each one was 12MB of VRAM to render, as well, although that's unavoidable to keep the starfields crisp using a non-tiling cubemap like that.<br />
** We've now split these out so that the stars themselves are in a separate cubemap which is the larger size, and then the nebula parts are able to be a quarter of the size (half the side length) without any drop in quality. This adds 3MB of VRAM usage per draw (of which there is exactly one per frame), but saves over 300mb of disk space and system RAM during runtime, as well as making the game, once again, load faster.<br />
<br />
* 49 new space backgrounds have been added, based on 8 source cubemaps, to replace the ones that were taken away (though this actually adds back more than were taken).<br />
** The new skyboxes are way higher quality than the ones that were removed, is the main point, anyhow.<br />
<br />
* The starfield backgrounds on the galaxy map are now much more neutral, with mostly black and a little bit of white. Easier to see foreground objects on them, now.<br />
<br />
* Fixed a bug where once you viewed an old-style spacebox background, it wasn't letting you view any "traditional skybox" backgrounds, which explained the over-prevalence of the former.<br />
<br />
* The settings option for "background style" has been removed, as that's no longer really relevant to anything.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Final Pre-Beta Checks]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Pivot&diff=30911AI War 2:The Pivot2018-06-30T00:21:10Z<p>Keith.lamothe: /* Version 0.747 */</p>
<hr />
<div>== Known Issues ==<br />
* The lobby interface is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* '''Multiplayer is temporarily disabled''' while we focus on tightening up the single-player loop.<br />
<br />
* Arks are presently not used in the game, which means that also Chief Advisers are not used for now.<br />
<br />
* There are roughly 100ish ships/units that we still have not reimplemented from Pivot phases 3-5.<br />
<br />
* There are a variety of ships/units that don't have proper graphics or reuse icons at the moment.<br />
<br />
* There is not an in-game way to see and edit the control bindings yet.<br />
** But you can go into the created bindings file inside the PlayerData folder to edit them in a text editor.<br />
<br />
== What is this "Pivot?" ==<br />
<br />
The full details are on kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
<br />
The short answer is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
== Version 0.747 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Added the Advanced Factory and Advanced Starship Constructor back in, with AIWC-like mechanics.<br />
<br />
* Fixed a bug where special seeding logic (for capturables, among other things) would always put a unit at the dead-center of the planet if that spot was safe for placement.<br />
<br />
* Added the Zenith Power Generator, with AIWC-like mechanics.<br />
<br />
* Added the Mobile Builder, with AIWC-like mechanics.<br />
<br />
== Version 0.746 Disposing of the Invisible Man ==<br />
(Released June 29th, 2018)<br />
<br />
* A few tweaks to prevent nullrefs in hovertext over ships, and to make them work properly in build and tech modes, as well.<br />
<br />
* Further protection against some data garbling that could happen on worker threads, which led to things like AOE attacks striking ships on other planets from the current one.<br />
<br />
* Fixed an issue where newly-created ships that were rallying into a control group could rally to themselves if they were suddenly the strongest ship in the control group.<br />
<br />
* Fixed an issue with Infrastructure being spelled wrong.<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
* Put in a variety of protections against exceptions that could happen due to units no longer existing or being removed from any planet (aka the game) but having orders queued up for them and executed later.<br />
** Thanks to Ovalcircle and BadgerBadger.<br />
<br />
* Fixed a bug with 8 of the skyboxes that were causing nothing to render on their planets except wormholes. Uh... whoops!<br />
** Thanks to Ovalcircle and Badger.<br />
<br />
* Updated one of the really dark and pretty ugly skyboxes to instead be more white cloudy so that it's still faded out, but you can see more of what is going on.<br />
<br />
* Fixed the middle-mouse pan controls so that they act as expected; they were reversed as of the first pivot release.<br />
<br />
* Fixed an issue where if you upgraded a ship type (such as Fighter 1) to a higher mark (Fighter 2), it wouldn't keep the new level of fighters in all your queues. Now it immediately starts cranking out Fighter 2s instead of Fighter 1s after that upgrade.<br />
** Thanks to Badger for reporting.<br />
<br />
* There is now a brighter version of the colors that always shows when the game is writing text using a team color. This keeps text actually legible, while still giving the general feel of the player color in question.<br />
<br />
* Rather than showing the generic yellow strength color on the wave warnings, it now shows the color of the first AI faction in the game (waves are not attached to factions directly, apparently).<br />
** Ditto the colors now used on the attacking-my-planets warnings, except in this case it uses the color of the first-found attacking faction. Before it was using yellow for players and purple for AIs, but now it uses the colors that are more specific.<br />
** Same for the CPA notices now, actually -- instead of showing red text, it shows whatever the first AI color is, like the waves (by default this is actually red anyway). The actual icon portion is of course still red and white, since that's an icon.<br />
** Same also for on the galaxy map when you're viewing colors of unit counts on planets. For the threat color, if there is a hostile count AND threat count (aka on enemy planets), it draws the border color instead of the center color.<br />
<br />
* Fixed an issue with the text colors in the galaxy map over planets, as well as on the planet view over wormholes. They were being translated from gamma color space to linear color space incorrectly, and we're now using Color.linear to fix that manually on our end. Now the colors there match the colors on the UI parts of the interface.<br />
<br />
* The wormhole names now show all the time by default (like they did pre-pivot), since that's pretty helpful data.<br />
** If you prefer the more recent way of having those off unless you hold Ctrl, there is a new settings option you can disable.<br />
** Thanks to dv = i ln(w0 / wf) for suggesting.<br />
<br />
* Scout starships now provide some decloaking abilities around themselves, as in the first game.<br />
** Unlike in the first game, they are now unlocked by default from the start of the game. This way the players have some way to deal with cloaked ships on enemy planets.<br />
** Thanks to dv = i ln(w0 / wf) for suggesting.<br />
<br />
* Player tachyon arrays now have the same icon as AI tachyon sentinels.<br />
** Thanks to dv = i ln(w0 / wf) for suggesting.<br />
<br />
=== Wave 3 of 5 of the Pivot (Part 1) ===<br />
<br />
* Added Ion Cannons back into the game, with the old AIWC-like ion mechanic of simply insta-killing anything of a low-enough mark level (in this case it's actually mark level <= the cannon's, instead of strictly less-than, and the cannons are Mark 1 through 5 instead of 2 through 6).<br />
<br />
* Added the "Bulletproof Fighter" bonus ship type. Basically just a fighter that's immune to ion cannons.<br />
<br />
=== Attack Move And Group Move! ===<br />
<br />
* Added keybind "Group Move" (default G)<br />
** Normally when you give units an order to move, attack, or enter a wormhole they go as fast as they can. Hold this button down to make them go at the speed of the slowest (mobile) unit to whom the order applies. Ignores speed debuffs like engine-damage, tractors, gravity, or paralysis.<br />
<br />
* Added keybind "Attack Move" (default X)<br />
** Normally when you give units an order to move, attack, or enter a wormhole they pursue the target point/object without regard to (other) enemies. Hold this button down to make them stop to fight anything they run across (more specifically, any time they're reloading).<br />
<br />
== Version 0.745 A Pivot And A Leap Forward ==<br />
(Released June 27th, 2018)<br />
<br />
* This is the first release of "The Pivot," which you can read full details of on Kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
** The short description is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
* As part of this, basically all of the game content that was pre-existing has been removed, and we're adding new content in a fashion as described below.<br />
** The interface and such from before has been retained, and then greatly expanded as part of this release.<br />
** The underlying engine and whatnot that we built has also obviously been retained, and we've also expanded that where needed in order to support the new content.<br />
<br />
* Existing savegames are all broken now. With the game basically being redone from the ground up in terms of units and content, this seems pretty reasonable. Older savegames would have been incredibly strange in the new version, anyway.<br />
<br />
=== Wave 1 of 5 of the Pivot ===<br />
<br />
* Wave 1 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Note that this obliterates a lot of the game that was previously known as AI War 2, and we're going to be adding back to this rapidly.<br />
** Please also note that a lot of the graphics for the post-pivot stuff is still inwork, which includes both icons and actual ship graphics. We have a lot to do!<br />
** Lastly, please note that this is putting a variety of kinks in our current GUI, so there is work incoming on that, too. We're basically making a mess at the moment, so please excuse our sawdust.<br />
** The overall goal of Wave 1 of the pivot was to get an end-to-end playable version of the game. By that, we mean the MINIMUM possible possible playable stuff, to be clear.<br />
** Main things that were thus included:<br />
*** Removing all the ships that previously existed, and then adding as new:<br />
*** Command station mechanics, and home command stations.<br />
*** AIWC-style mechanics for the AI home command station.<br />
*** Upgradeable mechanics for other command stations (so we can do econ, military, etc).<br />
*** AIWC-style metal harvesters, the seeding of them, and all that.<br />
*** Ditching power and fuel, and going back to the AIWC-style Energy mechanic, and adding energy collectors.<br />
*** Going back to AIWC-style mechanics for the space docks.<br />
*** Fighters, Bombers, and Missile Corvettes; and with that, a framework for applying the old AIWC balance numbers on top of our newer xml balance framework (until the framework and the numbers can be made to meet in the middle)<br />
*** Warp Gates for the AI, those were already pretty much the same between games.<br />
*** Engineers, and all the AIWC-style mechanics associated with them.<br />
*** A variety of turrets from the first game.<br />
*** Tractor turrets, but this time switching to the older AIWC-style mechanics for how those work.<br />
*** Scouts, and the AIWC-style scouting mechanics.<br />
*** AI Tachyon Guardians, which are simply a new unit, although possibly this included a shift to the AIWC-style cloaking mechanics? Not sure on that one bit.<br />
*** Science Labs, and the AIWC-style knowledge-gathering mechancis.<br />
*** Colony ships, and the AIWC style of those working.<br />
*** Mine layers, and the rebuilder mechanics that go along with those.<br />
*** Guard posts for the AI, and the mechanics that go with that.<br />
*** Some of the AI guardians, and the AIWC style of guardian mechanics (AIW2 was previously wrapping guard posts and guardians into one thing, but now that's more split)<br />
*** Force field generators, and a return to the AIWC style mechanic (with those now being present at all in general, too.<br />
*** Starship constructors, nothing major different here between the two games.<br />
*** Some of the basic starships.<br />
<br />
* For the time being, in the xml and underlying data structures, we still have global fuel and per-planet power.<br />
** However, everything is just using the global fuel now, to be more AIWC-like.<br />
** On the interface, we are now referring to this global fuel as being Energy again, as with AIWC.<br />
** We'll see how this continues to evolve, but for now that was the simplest thing.<br />
<br />
=== Wave 2 of 5 of the Pivot ===<br />
<br />
* Wave 2 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Now we're building back up a bit more in terms of having the game more recognizable, but there's still a lot to clean up before we even release it to you.<br />
** New ships, with their attendant mechanics, added:<br />
** Scout Starship mk1-4, Stealth Starship mk1-4, Shield Starship mk1-4, Siege Starship mk1-4, Sniper Starship mk1-4, Carrier Starship mk1-4.<br />
** Arachnid Guard Post mk1-5, Missile Guard Post mk1-5, MLRS Guard Post mk1-5, Laser Guard Post mk1-5, Shield Guard Post mk1-5, Stealth Guard Post mk1-5.<br />
** Tachyon Guardian is now Tachyon Sentinel. Added Wormhole Sentinel, Data Center, Advanced Research Station.<br />
** Matter Converter, Mercenary Space Dock (and mercenary versions of relevant ships), Home Human Settlement, Human Cryogenic Pod.<br />
** Multi-Needler Corvette mk1-5, Eyebot mk1-5, Armor Ship mk1-5, Autocannon Minipod mk1-5, Lightning Corvette mk1-5, Grenade Launcher mk1-5, Infiltrator mk1-5, Laser Gatling mk1-5, MLRS mk1-5, Raider mk1-5, Raptor mk1-5, Sentinel Frigate mk1-5, Sniper mk1-5, Space Plane mk1-5, Space Tank mk1-5, Spider mk1-5, Vampire Claw mk1-5, Vorticular Cutlass mk1-5, Tachyon MicroFighter mk1-5, <br />
** Flak Turret mk1-5, Laser Turret mk1-5, Lightning Turret mk1-5, Missile Turret mk1-5, MLRS Turret mk1-5, Sniper Turret mk1-5, Spider Turret mk1-5, Beam Cannon mk1-5, <br />
** Tachyon Array, Stealth Tachyon Array, Focused Gravity Generator mk1-5.<br />
** Laser Guardian mk1-5 as a rename from Needler Guardian, Stealth Guardian mk1-5, Sniper Guardian mk1-5, Missile Guardian mk1-5, Widow Guardian mk1-5, Tractor Guardian mk1-5, Lightning Guardian mk1-5, Flak Guardian mk1-5, <br />
<br />
=== New Faction: Astro Trains (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Astro Trains'.<br />
** When enabled, a bunch of Astro Train Stations are seeded on the map. Every so often the AI will create a Depot, then begin to spawn trains that head to the Depot. Trains will travel between the Stations, then eventually to the Depot. <br />
** For some depots, a train will be required to go "near" a player if possible so that you always have a chance to kill them. Whether trains are required to go near the player is tunable on a per-Depot basis.<br />
** There will be a number of different types of Depots. Some produce an effect whenever a train arrives ("Increase the next CPA's strength", "Spawn some ships for the Warden Fleet", etc), others produce an effect after a certain number of trains ("If 4 trains arrive then spawn a Golem"). Depots are defined entirely in XML so it's easy to add new ones or change their balance<br />
** There will also be a number of types of Trains based on the defenses they have. At the moment there is only 1 (and it's misnamed, Keith hasn't added its weapon system back into the Pivot yet)<br />
** Eventually I'd like to have the Trains give you metal when killed, but that mechanic isn't added yet. <br />
** This faction intended to be a More Interactive and Fun version of AIWC's astro trains, which I always found rather frustrating.<br />
** For other modders, this faction is a great example to look to since it defines a new table in the XML, which allows for very complex behaviour.<br />
<br />
=== New Faction: Macrophage (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Macrophage'<br />
** This faction is an invasion of giant organic Macrophage. They prey on Metal, devouring ships and structures they come across, and in particular they prey on the AI (since you haven't encountered them yet). <br />
** Macrophage live in colonies called Telium, which are hidden from the AI. A Telium sends out Macrophage to harvest metal by destroying human or AI ships. When a Colony has been fed enough metal it will create cloaked and harmless Spores which wander the galaxy. When spores encounter spores from other Telium they can reproduce to spawn a new Telium.<br />
** They are hostile to humans and AI alike, but not very intelligent.<br />
** If a Telium produces enough Macrophage, some of the Macrophage will be transformed into an Aggressive form and then go try to kill the human player. If a Telium is destroyed, all of the Macrophages associated with it will attack the player.<br />
** This faction is a bit like reimagining the Devourer Golem as a part of an ecosystem.<br />
<br />
=== Dyson Rework (Thanks, Badger!) === <br />
<br />
* The Dyson Sphere now uses a "Metal income per second" mechanic to spawn units instead of just arbitrarily creating things at a time interval. This makes it much much easier to balance.<br />
** Changing the intensity of a Dyson Sphere changes the income per second; the balance numbers for a given intensity are now in the XML.<br />
* Multiple Dyson Spheres can be enabled at a time, and each can have a different colour and intensity. Enabling X dyson spheres divides the income of a given sphere by X so multiple Dysons won't be able to just crush the Galaxy.<br />
* Dyson Spheres can be Antagonized, like AIWC. If a Dyson Antagonizer exists, all the Dyson Spheres drop what they are doing and start sending units to attack you. Previously created Dyson Sphere ships will keep their previous alignment (so if they were friendly before, they will fight Antagonized ships)<br />
** Antagonizers are not currently created by anything yet, so don't worry about them showing up yet. I imagine one of the Astro Train Depots will create antagonizers eventually, but there may be other mechanisms worth exploring.<br />
* Each Dyson Sphere now has a max Strength Allowed based on the current AIP; the higher the AIP the stronger the Dyson can get. The tuning for this is in the XML<br />
<br />
=== New Faction: Mercenaries (Thanks -- yet again -- Badger!) ===<br />
<br />
* Add new faction for Mercenaries. The Mercenaries are a much fancier version of the AIWC mercenaries (which are rebranded as "Auxiliaries").<br />
* Mercenaries are groups of units defined in the XML that can be hired to come fight for you temporarily using metal or hacking points. We may define other costs for them as appropriate going forward. A small set of mercenaries are defined right now with no attempt for balance, just to illustrate the various options that exist. Each group has a name and backstory and different behaviour. Some only defend one planet, others patrol nearby worlds (and will go help any of your planets if they are attacked), others will kamikaze at the AI. Some groups consist only of turrets and engineers. One group is a large cloaked unit that can be summoned on an AI world which will hopefully distract the Warden fleet, but that's untested.<br />
<br />
* Options for mercenary groups that can be specified in the XML<br />
** On Spawn behaviour: Fight all enemies on a current planet, then warp out. Defend this planet. Patrol nearby friendly planets (they will detect attacks on nearby planets and go help). Kamikaze into the AI. <br />
** Planet summoning restrictions: Can only be summoned on a Friendly planet, an AI planet, a planet not owned by the AI, or anywhere<br />
** Seconds allowed to exist: mercenaries will only stick around for a certain amount of time (in seconds)<br />
** Times allowed to summon: If the Primary unit of the mercenary group survives to the end of its "Seconds allowed to exist" then you can summon these mercs again, up to a certain number of times.<br />
** Cost: Metal, hacking points or both<br />
** Spawn Delay: the mercenary group in question will appear after this many seconds<br />
** Primary/Secondary/Tertiary units: A mercenary group can have up to 3 unit classes. You set these classes with the "[primary|secondary|tertiary]_unit_tag" field in the XML. Note that a tag can be on multiple types of units, and it will choose randomly among them. For example, we might have multiple units tagged with "MercenaryFleetship", and specifying that as one of the unit tags will pick among those at random. You can specify either a specific number of units with that tag, a strength of units, or both. So for example, one might say primary_unit_tag="MercenaryFlagship" primary_number_to_spawn="1" primary_strength_to_spawn="2000". If the Mercenary Flagship units all have 900 strength then this will summon 1 + 3 (we round up when calculating how many units for the strength) = 4 flagships.<br />
** Class: Defense/Offense/Utility. This is future proofing, we don't do anything with it yet.<br />
<br />
*At the beginning of the game, a number of Mercenary Communicators (I am open to a more flavorful name) are seeded on the map. Each Communicator grants access to some unique mercenary groups. If you are holding a planet with a Mercenary Communicator then you can summon those mercenaries.<br />
<br />
*The two key advantages of mercenaries over regular ships are that they don't cost energy and they can be summoned more quickly. Also some may do other fancier things later (like the warden fleet distractor). There is nothing preventing someone from tweaking the XML to allow you to hire the Devourer, for example, as a fun alternate win condition.<br />
<br />
*How quickly the Mercs appear is tunable on a per Group basis (so we could have identical groups, one that spawns in 60 seconds and costs X metal, another that spawns in 5 seconds and costs 5X metal).<br />
<br />
* AIWC style mercenaries are rebranded as "Auxiliaries"<br />
<br />
=== Marauders Expansionism ===<br />
<br />
* When the Marauders capture a planet, if they get up to Mark III outposts then they will begin spawning Raiders, powerful starships that will attack weakly defended nearby worlds. So if you give the Marauders and inch they will expand rapidly (the ideal case is "You've cleared out a bunch of planets but haven't captured them, and the Marauders will build an empire there if you don't watch out").<br />
* Make Marauders hostile to everyone. This means that neutral planets or weakly defended AI planets are eligible to be captured by the Marauders. Remember that the Marauders capturing a planet will permanently strengthen the faction.<br />
** Thanks to Ovalcircle for the suggestion<br />
<br />
=== Misc Bugfixes ===<br />
<br />
* Fixed an oversight in some of the recent versions where the Dyson Sphere was missing its cage. It now has a shiny (literally) new material on it.<br />
<br />
* Slight rework of the Autosave code. You now can specify the interval for autosaves and the number of previous autosaves to keep. So if I want to take autosaves every 10 minutes and keep the last 6 then I'll be able to easily jump back to the game up to an hour before. The goal is to make it easy to savescum efficiently and effectively ;-)<br />
<br />
* Provide a workaround for the problem where people who had last used a no-longer-extant map type would hit a crash when they start the game. Those deprecated map types are now defined (so it won't cause a crash anymore), but hidden by default so they can't be selected.<br />
** This was reported by numerous people, including Valeroth, Clasmir, zeusalmighty and probably others<br />
<br />
* Fixed a since-forever bug where ships fast ships that wind up needing to move to not overlap something would start bouncing around like they needed to go to the little starship's room.<br />
<br />
* Fixed the scales and collision radii of the assault starships.<br />
<br />
* For now at least, the bobbing of ships within squads has been turned off. As steam user Bucketsmith pointed out, it looked too much like ships on the ocean. It was meant to give a sense of life to the ships, but after he pointed this out to us, we couldn't stop seeing it, either...<br />
<br />
* The game now has proper settings on all the ship renderers for dynamic occlusion, motion vectors, shadows, etc. This should lead to a slight performance bump.<br />
** The editor has also now been set up to detect incorrect settings for these.<br />
<br />
* We had some extra uv2 and color and so forth channels on about 510 of our meshes, and we've now removed those. The amount of data was small, but it was useless info to be sending to the GPU since our shaders don't read from those. Every little bit of data shaved off when you're pushing millions of polygons on a millisecond scale is a win, not that it was causing problems in our testing thus far.<br />
<br />
* Fixed a bug where the single-ship-in-a-squad units were not being properly scaled down location-wise.<br />
* There was previously a bug in the profile screen where it was reversing what your body and trim color selections were on the box-based examples.<br />
** The icon-based examples were fine, but now the boxes have been corrected to match the icons.<br />
<br />
* Fixed a likely-longstanding bug where the scale of ships would drift smaller and smaller the longer you played, depending on how many times pooled ship visual instances of that type were reused due to deaths or due to switching in and out of the galaxy map view or between planets. Some went extremely fast, such as the recently added AI command stations. We suspect this is also what was going on previously with the warp gates.<br />
<br />
* Previously, the icon scales could sometimes be incorrect when tabbing back from the galaxy map, until you scrolled the camera around a bit. Fixed.<br />
<br />
* The placement mode icons were never scaled up or down to match the size they would be once placement was complete. Fixed.<br />
<br />
* Fixed a since-forever bug where the colors of icons in the main view were lighter than those in the sidebar. Turns out it was not color grading being applied, but rather that we were passing in our Color type parameters as Vector4s. This worked, sort of, but the typo wound up transposing the data slightly for some reason. Why it didn't just function correctly or fail completely is a solid mystery, to be honest.<br />
<br />
* Fixed an issue where opening savegames that were originally saved in a different campaign name but have been manually moved to a new folder were using the old campaign name instead of the new one as far as "continue last save" was considered.<br />
<br />
* Previously, if continue last save was not able to load the last save because it couldn't find the file, it was not showing any error. Now it tells you what the issue is.<br />
<br />
* In the game setup screen on the galaxy map, it no longer shows the colors of any factions other than player planet names (since in games with a lot of factions that actually gives away info).<br />
<br />
* In the game setup screen on the galaxy map, it now shows the player names under each planet name controlled by one.<br />
<br />
* Once into the game, it no longer shows the color of the faction on the other side of a wormhole if you've never scouted that planet at all.<br />
<br />
* Fixed an issue with the little bottom-left menus where the mouseover of elements behind them could sometimes happen because there were cracks between the buttons. Now there's a backplate behind the entire windows in those locations.<br />
<br />
* The underlying flag under the queue pause button was not actually implemented (it may have previously been the loop flag), so it didn't work; now it's implemented and works to pause that queue. Incidentally this does not disable any other functions of the building unit, unlike in AIWC where it was done through the general "disable everything" mode<br />
<br />
* Removed requirement that you have had units on a planet before you can send units there on the galaxy map (leftover from the sensor-scrambler scouting model)<br />
<br />
* Fixed a bug where the game was still trying to seed design-template-servers when the AI unlocked something new, despite those not currently being defined in the game, and thus throwing errors<br />
<br />
* Fixed a bug where AI ships freed by a minor faction still just went after the humans<br />
<br />
=== Misc Improvements And Additions ===<br />
<br />
* Added a new IGameEntityDescriptionAppender, which can be linked up using the new xml tags description_appender_dll and description_appender_type.<br />
** One example is presently in place with the human home command station and a test class called AnyUnitExampleAppender.<br />
** This is something that can be used for adding arbitrary unit-specific or class-specific dynamic text to the description of any unit or unit type. This is likely to be widely useful as we build out the UI later on, because we can put in context-specific warnings and commentary, for instance.<br />
<br />
* If a ship has been shot to death into remains, it now says REMAINS in red after the name of the ship in the mouseover, and it tells you what the remains means and that you need a remains rebuilder in the description text. Otherwise this was absolutely mystifying as to what was going on!<br />
<br />
* When ships are under construction directly on the battlefield, it now shows the health bar to show the progress that they are making towards completion. Holy cow did things feel incomplete without that.<br />
<br />
* Hey, does the scale of the grav wells on planets feel too small to you? Here's how you can tune the numbers. For example, at the moment we've doubled the size of the grav wells, and we'll see how that feels. To do the doubling, since that's simple math, here are the changes:<br />
** GameData/Configuration/ExternalConstants/KDL_VanillaConstants.xml<br />
*** distance_scale_gravwell_radius 13000 to 26000 (This makes the sim-level grav well twice as large, but if you just change this then visually things will draw very wrong. Must be an integer.)<br />
*** asset_base_unit_radius from 100 to 200 (This makes the units draw half as large as they previously were. It has to be an integer).<br />
** GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml<br />
*** combat_visual_scale_divisor from 10 to 20 (This makes the position of units, and the size of their selection radius, all make sense visually. Whatever multiplier you apply to distance_scale_gravwell_radius, apply the same one here).<br />
*** forcefield_visual_scale_divisor from 5 to 10 (Same deal, forcefields will look the wrong size if this isn't adjusted).<br />
** There actually may be a few other settings that we overlooked, but hopefully this is a comprehensive guide. If not, we'll update this in the future if we discover a hole.<br />
<br />
* Selecting a constructor unit (like the Space Dock or Starship Constructor) will automatically open the Build Tab on the sidebar. It was really annoying to click on a constructor, then realize you need to also click on the Build Tab. Note that hitting "B" is more efficient than clicking on a constructor anyway.<br />
<br />
* Dark Spire: Different factions produce different amounts of Energy when their units kill or are killed. These values are tunable in the XML. The AI or players units produce more energy than minor factions like the Macrophage, Devourer or Nanocaust.<br />
<br />
* In the planet view, linked planet names are no longer shown over wormholes unless you are holding down the ctrl key. Thus you can easily see the names, still, but they aren't cluttering up your view all the time (and making the gravity well feel smaller in the process). This also has the benefit of making it really obvious when you can click to send your ships or camera through the wormholes.<br />
<br />
* Now that warheads are no longer a resource that should be shown on the top bar, we're bringing back the attack warning/numbers up there. This shifted around several elements on the top bar, spatially, but put the new attack warning in the bottom right of that bar.<br />
** Slightly different from the first game, the new attack indicator shows the number of hostile enemy ships on ANY player planets, not just those you own. That seems relevant. It has three states: a greyed-out "nothing's here" safe shield with checkmark, a yellow and orange "things are here, but not on your personal home planet," and then a red and white warning "there are at least some of these guys on YOUR home planet."<br />
** Undoubtedly we'll adjust this some over time. One oddity you'll notice is that the frequency of the flashing of the text in this field is inconsistent. That's unfortunate, but a side effect of the way that unity dirties its GUIs rather than drawing every frame, along with the multithreaded queued approach we take on top of that.<br />
** The tooltip will list all your planets that are under attack sorted by the strength of the attack<br />
<br />
* The quick start button now actually works, although it goes to the same location as the custom start. A tooltip notes that the quick start variant is coming soon. However, some folks were confused and not thinking to go to the custom start, so here we are.<br />
<br />
* On the galaxy map and in the planet view, the icons for ships now are rotated to billboard toward the camera on the GPU instead of on the CPU. This saves an enormous amount of processing when there are many icons, and means that we can update the scale of icons more rapidly even when there are many many icons on screen -- getting rid of that delay in rotation/scale that was seen in prior versions of the game. There still IS a delay built in, just in case you absolutely flood your screen with icons, but it shouldn't be hit in normal gameplay (or if it is, we'll adjust this further based on profiling of said savegames). Additionally, since the rotation is run on the GPU, that means that CAN'T happen any way other than instantly, which is nice.<br />
<br />
* The color picker UI has seen a number of updates:<br />
** The individual color cells are now far smaller, letting you see tons more of them at once, and feeling more like traditional color pickers.<br />
** The selected color cells no longer blink their main color, but instead blink a little border around them. It's a lot more obvious what is going on now, and no longer seems like a bug. The flashing is still needed because the borders get lost in the riot of colors, otherwise. Hazard of having so many options.<br />
** There is now a section of preset options (combos of body and trim colors) down at the bottom of the screen. These give attractive options that also don't conflict with any of the NPC factions. This is one of those things that makes the game infinitely more usable.<br />
*** There are eight of these right now, but it's possible to define more via xml.<br />
<br />
* The in-game tooltips for planets and units/objects now shows in the bottom left, as it previously did in AIWC.<br />
<br />
* The selected ships notice now also shows up down at the bottom of the screen, where the tooltips do. It only shows if a tooltip (or the escape menu) is not showing. This saves important space in general, and also paves the way for the notifications bar up at the top to finally have room.<br />
<br />
* Scouts have a much higher movespeed than anything in the game, so the approximation for lerping squad movement was much higher than anything else. This caused scout movement to feel very jerky. Instead we put a cap on the fastest possible visual movespeed for a squad.<br />
<br />
* Fixed a bug deep in the bowels of our UI code that was leading to a lot of higher-level bugs with things being positioned incorrectly, etc. The most recent manifestation of this, in the working versions of the pivot build, were un-owned metal desposit spots showing up half off the sidebar.<br />
<br />
* Added a new "Owned by Nobody" section on the ships section of the sidebar, since that's a legitimate fourth category. Golems that nobody controls yet, un-owned metal spots, etc, etc.<br />
** Also new, the items in this category can be seen on the sidebar if you've ever been to the planet before, even if you don't have vision of the planet right now. This is pretty handy.<br />
<br />
* Engineer and Rebuilder FRD now works (though their prioritization leaves something to be desired)<br />
<br />
* AI planets directly adjacent to a human homeworld no longer seed guardians or sentinels, to match AIWC (AIWC had wormhole guard posts, now known as wormhole sentinels, but their omission is not significant)<br />
<br />
* Guardian counts have generally been significant reduced, and are now proportional to planet mark level as well as number of guard posts<br />
<br />
* A bonus ship type can now be selected for each human faction (currently you have to click "more" to get to this, since the space is already taken by the two color dropdowns and the Ark dropdown)<br />
<br />
* You now start with 10k science, and all weapon turrets (except beam), to parallel AIWC<br />
<br />
* Your command stations will now automatically claim metal spots, to better resemble what happened after capturing a planet in AIWC.<br />
<br />
* Made the planet view cursor code moddable and open source.<br />
<br />
* Constructors can now be set to rally units they build to either an already existing control group or to a point chosen by the player.<br />
<br />
=== Keyboard/Mouse Input Overhaul ===<br />
<br />
* Previously we were using some middleware called Rewired, which was bulky and inflexible in a variety of ways. It's super useful if you want to handle a bunch of gamepads and in particular if you want to have design-time-defined controls. Our use case was diverging enough that all it added was bloat, though, because we had to write our own runtime-control-definition layer, poll the list of all our controls while it polled all the keys under the hood, and other messy things like that. So Rewired is out.<br />
<br />
* We brought in what started as EasyInput from ootii as replacement middleware, then pared that down to just the keyboard and mouse bits. We then basically rewrote the entire thing so that it's more efficient, uses no dictionary lookups during the game loop, and is compatible with all the things we want it to do for this game. So ultimately we wound up just kind of creating our own.<br />
<br />
* The new input system has a lot of performance benefits, but one of the biggest things it will do is make it easier for us to define all of the keybinds in xml, no matter how many we have. All of the keybinds that were previously hardcoded have now been moved to xml.<br />
** It was previously somewhat difficult for us to check if something was just pressed, just released, being held, etc, in an efficient and automated way. This is now something that can be directly specified in our xml definitions for the keybinds.<br />
** We also have a new Custom type of key check, which basically skips the whole Handler reflection-linking process and instead just lets classes elsewhere in the code get an object reference to that key and then check it as needed. This is very useful for modifier keys of any sort, and for all of the camera controls.<br />
<br />
* Work has also been done to prep this for an actual interface for viewing and editing keybinds in game. We'll get that in place prior to Early Access, but for now we have a few other fish to fry.<br />
<br />
* A variety of bugs relating to keys that could be triggered on the main menu that were only supposed to be in-game have been fixed.<br />
<br />
=== Galaxy Map Improvements ===<br />
<br />
* The galaxy map is now using a purely top-down camera with the ability to pan and zoom but no ability to tilt or rotate the view. There have been a number of valid issues brought up with the existing galaxy map, and we're starting to work through those now. Lots more to come, but here are some of the first bits.<br />
<br />
* Players can now see the entire galaxy map structure -- meaning the actual planets and their wormhole links and lines -- from the start of the game.<br />
** This is the same data you see in the lobby, so it was always strange that we took it away after the game started in Classic and this game.<br />
** This does NOT grant you any actual visibility on the planets as to their contents, owners, resources, ships present, or anything else.<br />
*** Aka, this is not a reduction of fog of war, it's just the ability to see the shape of the battlefield, same as you already could in the lobby.<br />
<br />
* Previously, on the galaxy map it would take you into the planet view as soon as you clicked a planet, unless you held Alt. This was not helpful for a variety of reasons, so based on user feedback it now by default just switches which planet is selected but doesn't change the view unless you hold Ctrl.<br />
<br />
* When you are on the galaxy map, it now only shows the name of the planet you are currently viewing unless you hold down the ctrl key. This is a lot more like the first game, and is way less cluttered.<br />
** In the lobby, it shows the names for all human planets, with their colors on there.<br />
<br />
* You can no longer zoom the galaxy map so far in, you start further zoomed out, and you can zoom out further.<br />
<br />
* On the galaxy map, the visuals for the planet are now 4x larger, making them easier to see at farther zoom ranges. This is essentially the same as making the planets "closer together," so to speak, in its effect on how you view the map.<br />
<br />
* Rather than drawing the literal visual of the planet on the galaxy map, which turned out to be fairly pointless, we now draw icon-like 3D models in place of them.<br />
** These show the color of the owning party for the planet, if there is one, and they show a different icon for unscouted (ever), regular, and homeworld planets.<br />
** The regular-planet icons are a bit different for marks 1-5 of regular planets, incidentally (anything over mark v shows the mark 5 graphic for the planet itself). These help give you an indicator of the strength of planets when they are in the hands of the AI.<br />
*** After you capture a planet, it still retains its graphical styling for what mark level it used to be, which is a subtle but cool way of showing your progress in the past.<br />
<br />
* On the galaxy map, the selection ring is now fancier, easier to see from a distance, and it rotates to make it even more obvious where it is.<br />
<br />
* The "king unit" no longer shows up next to home planets on the galaxy map. Instead, now the planet itself is showing up looking different. It's a lot easier to tell what the heck is going on, now!<br />
<br />
* The text on the galaxy map that shows the strength at planets is now a lot more clear, and more useful in general. Before it just showed the amount of threat at any given planet, period.<br />
** Now it shows a yellow row with a strength icon for any allied + self units that are on that planet (or omits the line if that total is zero).<br />
** In the same fashion, it shows a purple row for any threat on the planet IF you currently have vision there. Or omits the line if none.<br />
** And also in that same fashion, again if you have vision there, it shows a red row for the total of hostile strength on that planet that is NOT threat.<br />
** Now you can actually see what sort of dangers there are to your planets, which planets of yours are outnumbered, and all sorts of other useful things like that!<br />
** It actually shows the strongest forces (allied or enemy) on the top or bottom. It doesn't sort the threat vs not threat, but moves those as a bloc.<br />
<br />
* Also adjusted the placement of the "lower text" on the galaxy map to be centered right below the planet name, rather than down and to the side. Previously it often looked like the threat counts were located at some other planet instead of the planet they were actually on.<br />
<br />
=== Camera Improvements ===<br />
<br />
* The camera in the planet view has been something of a bugbear for a little while, because there were a variety of things that could go wrong with it. But even more than that, it was using a TON of keys on the keyboard: WASD and the arrow keys for movement, Q and E for rotation, and R and F for tilt. Time for revisions!<br />
<br />
* One of the new things that was most interesting was the idea of a "tilt and rotate" mode, rather like what happens if you hold the right mouse button in Planet Coaster. We can't really use the right mouse button that way, and the middle mouse button makes more sense as the existing "grab and pan" functionality, so we've defined the mode modifier for that as Q now, or Mouse4 if you have a 4+ button mouse (those are awesome, incidentally).<br />
** Along with this change, the default bindings for rotation and tilt are simply set to nothing. If you want to bring back the Q and E and R and F the way they were, that ability didn't go away, but we're claiming those keys for other things instead (Q is already the tilt and rotate mode, whereas the others are unbound at the moment).<br />
<br />
* Along with this, zooming out could potentially put you out of bounds previously, if you had the camera tilted sideways a lot. Now when you zoom out, it un-tilts your camera to avoid this happening. Most other games do this same thing; technically it wasn't zooming out before, but just backing up laterally, anyway, if your angle was shallow enough. Now it actually always zooms out.<br />
<br />
* Previously it was possible for sometimes the mouse wheel to give way too much input in one frame, and send you shooting forward. Probably this was happening directly during a long Garbage Collector frame, although we're not sure. We've put in some safeguards to prevent this from happening, although if it is caused by something other than what we guessed then it will still happen and we'll have to add more safeguards elsewhere.<br />
<br />
* There's a new setting for the tilt/rotate mode that lets you set the sensitivity of that.<br />
<br />
* The "free look camera" stuff has all been commented out for now. We could in theory bring that back, but it felt awkward and was not really needed, ultimately. This removal also helps the settings menus be a little less overwhelming when it comes to camera options.<br />
<br />
=== Notifications Bar Added! ===<br />
<br />
* The wave and CPA warnings are back! Actually, they never were quite in the game in this fashion showing a proper countdown. They show a little icon and number box in the upper left of the screen, which you can hover over for more info.<br />
** Clicking on them takes you to the planet that is involved, if it's a specific planet.<br />
** For waves, it shows you the planet it is headed to, and it strength, on the notification badge itself. For CPAs, it just tells you a CPA is coming and when.<br />
** For these, it has a tooltip for each of them that tells you what a CPA is if you don't know, or what the composition of the incoming wave is if it's a wave.<br />
<br />
* The notification bar now includes entries for planets of yours that are under attack, and shows the total strength counts for those ships that are aggressing and those that are defending.<br />
** These are color-coded, and whichever is on top is stronger, so you can tell at a glance if you should be winning this fight (on paper; positioning and tactics are important if the numbers are close, of course).<br />
** The icon for this is different if it's your home planet versus one of your other planets, so this is yet another source of visible warning when your home planet is under attack.<br />
** As with the wave warnings, you can click these to immediately go to the planet in question.<br />
** The tooltips for these show the name of the planet that is being attacked, who the attackers are, who the defenders are, what small ships, large ships, non-combatants, and strength each participant has, and what critical infrastructure is located here for the defenders.<br />
*** Big thanks to Eric for designing all of these things (as with almost all of the GUI now, but this in particular is super cool).<br />
<br />
* There is now a general-purpose framework where developers and modders can add items to the notification bar from any faction.<br />
** This is useful for a variety of things, ranging from alerting you that a trader is visiting a planet and wanting to trade, to telling you marauders are after you, to other things of that nature.<br />
*** Note that we're not using it for any of those purposes yet, but the capability is now there -- and the first proof of concept is actually the planet under attack notices.<br />
<br />
* We now have the concept of critical infrastructure, which are simply items that you get warned about in the tooltip when they are on planets of yours that are under attack.<br />
<br />
=== Visual, Audio, and Workflow Improvements ===<br />
<br />
* The icons for ships are now just stored once in the game, at a single size, rather than twice at two different sizes. This makes it a lot faster for us to update the icons, and uses a bit less disk space.<br />
<br />
* Added a new visuals_scale_multiplier xml entry for GameEntities that lets us scale up or down entities as we wish for whatever purposes.<br />
** One of the biggest uses is so that we can have fewer prefabs that we have to initialize and keep in memory for ships that grow in size but nothing else during mark-level changes.<br />
** This is now in use on the AssaultStarship and the NeedlerGuardian, which are the only two ships re-implemented at this point for which this is relevant.<br />
<br />
* The tractor turrets look so cool that we've made them a bit larger and made it so that there is only one per "squad" on them. They look like they individually mean business as it is.<br />
<br />
* The visuals, icons, and scales for engineers, rebuilders, and human cryogenic pods are all now in place.<br />
** Note that only engineers and rebuilders are actually in the game yet.<br />
<br />
* Adjusted gimbal_base_scale from 2 to 2.5 in GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml so that the gimbal icons aren't so darn tiny. This seems to feel more like AIWC, now.<br />
<br />
* Human scouts and AI tachyon sentinels now have their graphics in place.<br />
<br />
* Added a new y_offset_of_ship_in_formation xml tag, which allows us to raise and lower ships from a squad as a group. This is useful for really tall structures, for instance.<br />
<br />
* Added the visuals for all of the command stations (AI, basic human, economic, logistical, military, warp jammer, human home, human home core).<br />
** This was quite a task to pull off in a satisfying yet recognizable way, but we finally have it. Basically these needed to be larger and more epic, yet stand out and not have too many polygons, etc.<br />
<br />
* All of the icons for the new command stations and such are now in place, and the icons for command stations show larger than other icons on the planet. The icons for the king units now show even larger. There are also different icons for each type of command station, in such a way that you can easily tell something is a command station, but also that it is some other kind of command station beyond the basic sort.<br />
<br />
* The voice_group xml tag that specifies what voice is used for ships is now required. For non-human-controllable ships, just using Silent is preferred, although it doesn't really matter since these voices only happen when a human player gives orders to the ship in question.<br />
** Previously these were partly defined on the weapon types, but this was far too broad a way of doing it (and had stopped working on our internal versions as part of the Pivot anyhow).<br />
<br />
* Visuals have been created for the energy collector, matter converter, science lab 1 and 2 (though only mk1 is in the game), raid starships mk1-4, metal harvester (and empty version), tractor guardians mk1-5, scout starships mk1-4, home human settlements, and hackers (though hackers are not in the game yet).<br />
<br />
* The visuals for the colony ship are now in place.<br />
<br />
* There are a lot more Arcen-based header menus in unity now for us to speed up repetitive tasks. Also ones for opening folders, and in general letting us work faster and with fewer clicks to get things done.<br />
<br />
* The icon definitions no longer need a _border entry in xml. They still need the actual files, but the game can find them just based off the original icon entry. Yay less typing and chances for typos.<br />
<br />
* Wormhole scaling-up has been removed, and will be replaced by a far-zoom icon like ships/squads get.<br />
<br />
* "GenericObjects" can now have a list of AlternativeMaterials specified. <br />
** This is used for the wormholes in particular so that they can change colors and cubemaps in order to represent different things, or even being hovered.<br />
*** On the wormholes, if you look into them, you'll see a distorted view of actual images from the ESA/Hubble, used with attribution. It's a neat little detail, and you have to get extremely close in to see it.<br />
<br />
* The wormhole visuals have been completely redone AGAIN, probably for the last time this time. We're using something called Scingularity, heavily modified for our purposes.<br />
** The wormholes are drawn using a single untextured quad, which then does a ton of math and uses a cubemap for the center of the singularity, and then a pixel shader to do the outer swirl. Because of this, it looks fantastic at any zoom level. And amazingly, it performs well. You don't need any special hardware.<br />
** In our case, we're using those EA/Hubble images noted above for the center of the wormholes, and then different normal maps for swirl patterns on each color of wormhole, and different colorizations on the wormhole swirls to indicate different things.<br />
** Greenish ones go to enemy planets, darker blue ones go to your planets, lighter blue ones go to allied planets, red/orange ones have a wave incoming, pale green ones go to allied or neutral NPC factions, and white goes to unowned planets.<br />
** When you are hovering over the wormhole -- which requires you to be holding ctrl down, incidentally, so that you can send either the camea or units through it -- then it glows at a much brighter temperature. Makes it far easier to know if you're actually hovering over it.<br />
<br />
* At long last, your choice of colors in the profile menu actually means something! Whatever you select on your profile for your body and trim colors are now used next time you go into the lobby.<br />
** The lobby is still the outdated style with the dropdown for colors, but now it has two colors there for your choosing, too. Using it that way is not ideal, but we'll get to that in the next few weeks.<br />
** For now, it's a very happy thing that we finally have two-color player colors in the game!<br />
*** For each place text is using the colors, it just uses the body color right now.<br />
*** There are presently be some issues with the icons in the main not matching the colors exactly, which is probably due to color-correction post-processing. We're going to be shifting those icons into the GUI camera soon anyhow, so that should solve that when we do. Until then, everything looks washed out in the main icon view.<br />
*** When it comes to showing that a unit is hovered-over, it now goes darker or lighter depending on whether its average color is greater than or less than half brightness; this is instead of the <br />
*** When it comes to showing that a unit is selected, it now adds a border around the mark level icon itself, and brightens the border of the unit color.<br />
** As an aside, when you change the colors and hit OK in the color picker in the player profile screen, it writes to the underlying log what the color selections are called. You can then use this in xml defaults if you're doing modding. Otherwise this doesn't affect you.<br />
** For all of the special factions, AI factions and subfactions, humans, and so forth, there are now default colors! With the two-tone colors we were able to do a lot more theming and nuance.<br />
*** Player colors are going to need to include some defaults for people to choose from, since it can be time-consuming to do so otherwise and you don't know if you're potentially selecting something similar to another faction's defaults. Providing some quick-pick attractive defaults is on our list prior to EA; we already have 8 sets of colors, but the interface isn't updated for that yet.<br />
<br />
* The icons for all ships have been improved, with more darkness and light on them, and more layers of borders and sub-borders, to make things really have contrast and stand out so that they are more legible.<br />
<br />
* Put in a fix to our spritesheet for the ship icons so that now there is substantially more padding in them, fixing some bleed-over between sprites (causing line artifacts, etc) at smaller mipmap levels (when an icon is shrunk a lot).<br />
<br />
* The game finally has "burning and dying" effects on the ship icons as they are killed. Thanks to Badger for continuously pushing for this, as well as for implementing the timing code portion of this. This really helps make the battles both more dramatic from the far zoom view, as well as frankly clearer what is going on.<br />
** We implemented this in completely open-source code between the C# and shader bits, so it can be tuned by other folks if desired. We though about using a ramp texture, but wound up going with a series of lerps between vector4s instead.<br />
<br />
* The font for the mark level numbers has been changed again, and looks much better now.<br />
<br />
* On the sidebar, the strength number is now shown abbreviated instead of written all the way out -- we're trying to standardize on that everywhere, as it's the easiest to read.<br />
** This also now applies to the resource bar at the top of the screen.<br />
<br />
* Fixed a variety of places that were incorrectly using the strength per subsquad instead of the strength per squad -- including in some of the targeting logic for ships.<br />
<br />
* Fixed a bug with the ships tab of the sidebar where it was including the strength of noncombatants in the total strength for the planet, which was not remotely useful. Now it just shows the strength of combatants, like everywhere else, which gives you a much more valid picture of the battlefield. Defensive strength of noncombatants is kind of incidental to that.<br />
<br />
* At a few places in the game, we were showing "Human Remnant" as the faction name instead the name of the player in question. Now we show the player name.<br />
<br />
== Version 0.743 Music Blooms ==<br />
(Released May 2nd, 2018)<br />
<br />
* The second half of the AI War 2 soundtrack is now in place! These pieces, as specified in the kickstarter, are all remixed/remastered versions of tracks from AI War Classic. In there we have the Defeat and Victory tracks from the first game, Nomad Sunrise from DoW, Intro and Midnight from the base game, Night Light from LOTS, Rising Up from VOTM, and Voyage to Zenith from TZR.<br />
** With this, we're now also distributing the full soundtrack (plus a variety of bonuses!) to all those backers who signed up for it. You should have an email with that link, and/or be able to see it in your backerkit profile page: https://aiwar2.backerkit.com/<br />
<br />
* The game now actually plays defeat music when you lose.<br />
<br />
* When you win, the game first plays the For The Fallen vocal track, and then goes into the from-Classic Victory track, then goes on to play regular music from the in-game rotation.<br />
** When you lose, the game plays the defeat track, then also goes back to the regular in-game rotation.<br />
** These two changes are aimed at people who want to keep playing after a victory or loss, which are a not-insubstantial number of people.<br />
** We actually have not tested this bit at all, so, uh, if it doesn't work properly like this then please do let us know and give us a savegame. We're kinda busy on a lot of fronts right now! Normally we unit-test things, though.<br />
<br />
* We're now internally using the Asset Bundle Browser to help us find trouble spots with overlarge pieces of data in our asset bundles that we're building for the game. This helps with load speed, runtime efficiency, and asset bundle build speed.<br />
** On github: https://github.com/Unity-Technologies/AssetBundles-Browser<br />
<br />
* Slightly improved the efficiency/size of the effects asset bundle.<br />
<br />
* Reworked the bloom effects to use the Natural Amplify Bloom effect rather than the Realistic one. This, plus a couple of other tweaks in that area, lead to something that still has bloom, but is a lot more subtle than before. Some folks were complaining about that with the teaser trailer, and we can see their point.<br />
<br />
== Version 0.742 Hotfix ==<br />
(Released May 1st, 2018)<br />
<br />
* Fixed a bug where the total seconds to load was only being reported in output.log, and not in the ArcenDebugLog.<br />
<br />
* On the main menu, it now shows how long it took to load the game, and you can hover over that to get details if you want. The "logged in as Steam user" info is right below that, and both are a bit smaller now.<br />
<br />
* The loading feedback on the sound effect items and graphics items are now more coarse, leading to faster overall loading times compared to the last internal versions.<br />
<br />
* The method for tracking how much time has passed has been adjusted to use DateTime.Now instead of the Stopwatch class, since we had some questions about accuracy.<br />
<br />
== Version 0.742 Darkly Loading Spire ==<br />
(Released May 1st, 2018)<br />
<br />
* Rather than looking like the application is hung when it starts, the game now shows the loading progress in the form of what it's doing at the bottom. It doesn't show a loading bar, but it does show a counter of how long has elapsed, and how long specific long-running bits are taking.<br />
** This is useful both for us to know in terms of telling when something is overly slow to load, and it also gives players something to look at and a cue that there's not just a frozen application in front of them.<br />
<br />
* Surprisingly, the sound effects loading is taking twice as long as the loading of the graphical data right now (9.6s versus 4.4s on Chris's machine), so this is already an example of where we can optimize our loading speeds a bit, which saves everybody a lot of grief and saves the devs here time staring at the screen when it's time to test each item.<br />
<br />
* Additionally, now if the game has an error during load, it won't show a mishmash of all the gui windows all overlapping themselves in an insane and obviously-glitchy way. There is no functional difference between before and now, but it seems a lot less terrifying now if you're seeing it for the first time.<br />
<br />
* The loading log for how the game starts up is now more informative than ever, and on the long-running sections it actually shows a progress count rather than just hanging on those sub-parts. Sometimes those sub-parts can take 30 seconds or more on first run (though usually 4 seconds or so on subsequent runs), so having this feedback is pretty vital to this not feeling like maybe it locked up.<br />
<br />
* The alpha channel has been removed from a ton of images that didn't need it, letting the compression format be smaller on disk, in RAM, and in VRAM, as well as loading faster. This will definitely be kept, as it was useless data.<br />
<br />
* The max texture size for some of the non-diffuse texture channels for the ships are now cut way down from what they were before, to reflect the distances you typically see these from. This saves 300MB of RAM, disk space, and also lowers the VRAM requirements and makes rendering faster. It also makes loading vastly faster. This is definitely a quality/compression tradeoff, and we do still have the originals, so we may wind up making this an option or something in the future if it seems ugly to folks this new way. At a fairly casual glance by those who worked on the ship graphics, we can't really tell the difference, though; in side-by-side shots you would notice it, but that's about it unless we are mistaken.<br />
<br />
* The compression style for weapons effects and other sound effects has been changed to ADPCM instead of Vorbis, and these are now set to load on a background thread rather than the main thread. This makes loading vastly faster for the sound effects, although it does use something like 20MB of extra disk space. The amount of space used in RAM is identical, since we always decompress on load, anyway.<br />
<br />
* The voice acting clips are now set to stream in like the music does, as well as load on a background thread, rather than being preloaded or decompressed early. This actually saves quite a bit of RAM, and doesn't affect disk space, and saves an enormous amount of loading time. The downside is that it can cause a sub-second delay in playback of voice clips, but given the nature of a voice clip that is both imperceptible and irrelevant.<br />
** Different types of sounds have different characteristics and need different settings, and we've optimized these, in short.<br />
<br />
* Speaking of optimization, we're no longer doing full error-checks on load for each ship visual that is loaded in. That was time-consuming and pointless. In the ship designer windows it shows errors, and if someone commits a ship with errors that's something that is a goof on their part and not something we need every player machine checking for every time the game starts. So that saves another batch of time.<br />
<br />
* We're also doing another experimental thing, where with the solomesh ships we're directly using the asset bundle copies of the ships to get their meshes and materials, rather than instantiating a copy first.<br />
** Generally this is not advised, since it can cause a bunch of extra disk reads and other general slowness when accessing that data. However, in this particular case, since we're not actually accessing anything more than the data on these objects (we're not making copies of the object), we think it's not hitting the disk like that. We don't see any evidence of it in the profiler now, anyway, and we were in the past.<br />
** This speeds things up yet again, and so far so good on that front, but we may have to back this one out later.<br />
<br />
* Overall the loading speed of the game has more than doubled, in typical test cases thus far, and it actually is responsive while loading as well, which is an important first impression piece.<br />
<br />
* Fix a bug where the Nanocaust was never losing influence over a planet even after the constructor was destroyed<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Change the default colour of the Risk Analyzers<br />
<br />
* When the Human Marauders put Marauder Outposts on a planet, give them Influence over the planet (so it will be shown on the Galaxy map)<br />
<br />
* Initial commit of Dark Spire. Like in AIWC, it spawns ships based on energy it gains when ships die on a planet with a Vengeance Generator (VG).<br />
** Energy is tracked per VG. When VG energy > threshold it either shares energy with the VG with lowest energy or it spawns ships to attack. There's a Conversion Ratio when turning energy into ships; it starts out not very efficient (maybe 50% of the energy becomes ships), but every time a VG spawns new ships it becomes more efficient. <br />
** AI Overlords start with a Dark Spire Ward structure on their planets which prevents Dark Spire ships from going there. If a player destroys the Ward then the Dark Spire will be able to attack the AI overlord, thus giving you a new win condition.<br />
** Every so often the Dark Spire will attempt to spawn a Vengeance Generator Locus. The Locus will transform into a full Vengeance Generator in 5 minutes. If you don't kill the Locus in that time period then it turns into a Vengeance Generator. Planets are eligible for a Locus to spawn if they have no Human or AI ships on them, and they are adjacent to a Vengeance Generator without any human or AI ships on it.<br />
<br />
== Version 0.741 Music Part 1 Of 2 ==<br />
(Released April 29th, 2018)<br />
<br />
* The first half of the new tracks for the AI War 2 soundtrack are now in place: Abandoned Ship, Absolute Zero, Bouncing Lights, Event Horizon, Light Year, and Supercluster.<br />
** All by Pablo Vega, mastered by Dio, and all fantastic.<br />
<br />
* Update to Human Marauders behaviour. If they destroy all your forces on a planet then they will begin to construct Marauder Outposts which will spawn Marauder new units. This will make it harder to recapture planets. Every so often a new MarauderOutpost will be added, and existing MarauderOutposts will upgrade themselves to make stronger units. Note also that when the Marauders capture a planet they get a permanent boost to their MaxBudget, making them more dangerous.<br />
** If you allow the Marauders to get Mark 3 outposts then they will start getting Budget faster.<br />
** The balance levers are in XML for ease of use<br />
<br />
* The default game volume is now quieter in the hope of not deafening new players<br />
** Thanks to Flavin for the report<br />
<br />
* Improved the performance of music loading at the start of the game and during the game.<br />
<br />
* Fixed a regression in the prior version of the game where the first time any camera loaded a "traditional skybox" type of background, it would be solid black instead.<br />
<br />
* Fixed an issue where the construction part of the sidebar could show some stale data when switching from a planet with a builder to one without a builder.<br />
** Thanks to hawk for reporting.<br />
<br />
* Fixed a bug that nobody had reported yet with lightning attacks being very strange-looking and not like lightning bolts anymore.<br />
<br />
* Fixed a bug with the various type of geometry-based explosions (flak, lightning, etc) so that they now render additively in the transparent queue rather than the overlay queue, and so that they read from the zbuffer but no longer write to it.<br />
** This changes the effects a fair bit so that they no longer do things like eat into one another or the ship icons around them.<br />
** These will need further tuning to not be over-bright in huge battles, and they're on our list for further improvements visually anyway, but for now it's a good enough start.<br />
<br />
* Risk Analyzers: code tidying, also track the total and net AIP generated by Risk Analyzers. Eventually this is going to turn into 'When X AIP is generated by Risk Analyzers, do something unpleasant to the player', probably an exo wave, once exo waves are added<br />
<br />
* Map Types: Add a new planet placement mechanism for Simple and Realistic, and tweak one of the previous placement algorithms for Simple and Realistic<br />
<br />
* Fix some bugs with Marauders, where outposts weren't upgrading properly.<br />
<br />
== Version 0.740 Clean Up That Nebula, Young Man! ==<br />
(Released April 26th, 2018)<br />
<br />
* Fix some dumb bugs in the HumanMarauders faction that was preventing the marauders from correctly analyzing your planets to see which they should attack<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a bug where the Vis layer was not correctly setting the Shot location when we tabbed into a planet with the shot in flight; it was assuming the shots should be at the middle of the planet, which is manifestly incorrect<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fix a bug where where if a non-Nanocaust faction killed a unit that had taken Nanocaust damage, the killing faction would get the new zombie ship instead of the Nanocaust. <br />
** Thanks to OvalCircle for reporting<br />
<br />
* A new and frightening visual look for Usurpers has been added. These will be absent for a while until we get past the "Fun point" once Keith gets his first wave in place, but then we expect these to come back pretty darn fast, so we want them to look nice and scary). (These are the AI ships that recapture planets)<br />
<br />
* The infrequently-changed space backgrounds, and planet graphics, have all been moved into a new internal AIW2Scenery unity project, which saves us a _ton_ of time when actually building the gui asset bundles, or ship asset bundles, for the game.<br />
<br />
* The sound effects and voice acting files have all been moved out of the platform-specific projects, and out of the modding and gui project in general.<br />
** These are now in the GlobalBundles folder, which saves some disk space if you've got multiple OSes of the game installed at once. It also saves us time when pushing new versions of the game, and has less of a footprint on the system for everybody thanks to the modding unity project now being much smaller without all those files.<br />
** This does make some of the sound stuff a bit harder to mod, but we'll just throw that stuff up on github or google drive or something when the time comes. It's not worth inconveniencing everyone over putting it directly in the build.<br />
<br />
* There were a variety of old "space boxes" that were from back in the kickstarter days that were just... underwhelming. They were nicely colorful, but had kind of gross large stars in them, and in some cases just junky colors in general. These have either had their gross big stars patched out, or they've been removed.<br />
** Overall these have mostly been removed except for the best couple of them (which now have color variants!). <br />
** This saves about 200mb of RAM for something that wasn't looking so hot in general, and makes the game load faster, too.<br />
<br />
* Our middle-style "nebula sphere" type of backgrounds previously had a really bad problem with distortion on the starfields. This was just embarrassing, and led to some perfectly-fine spaceboxes looking really gross depending on the angle of view, instead. These have all been fixed up with a revised shader for handling those starfields as simple tiling rather than triplanar reading.<br />
<br />
* Our most recent, and best-lookg style of space backgrounds, which are based on traditional skyboxes, were absolutely HUGE, taking up more than 450mb on disk, and in RAM. Each one was 12MB of VRAM to render, as well, although that's unavoidable to keep the starfields crisp using a non-tiling cubemap like that.<br />
** We've now split these out so that the stars themselves are in a separate cubemap which is the larger size, and then the nebula parts are able to be a quarter of the size (half the side length) without any drop in quality. This adds 3MB of VRAM usage per draw (of which there is exactly one per frame), but saves over 300mb of disk space and system RAM during runtime, as well as making the game, once again, load faster.<br />
<br />
* 49 new space backgrounds have been added, based on 8 source cubemaps, to replace the ones that were taken away (though this actually adds back more than were taken).<br />
** The new skyboxes are way higher quality than the ones that were removed, is the main point, anyhow.<br />
<br />
* The starfield backgrounds on the galaxy map are now much more neutral, with mostly black and a little bit of white. Easier to see foreground objects on them, now.<br />
<br />
* Fixed a bug where once you viewed an old-style spacebox background, it wasn't letting you view any "traditional skybox" backgrounds, which explained the over-prevalence of the former.<br />
<br />
* The settings option for "background style" has been removed, as that's no longer really relevant to anything.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Final Pre-Beta Checks]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Pivot&diff=30910AI War 2:The Pivot2018-06-29T23:49:22Z<p>Keith.lamothe: /* Version 0.747 */</p>
<hr />
<div>== Known Issues ==<br />
* The lobby interface is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* '''Multiplayer is temporarily disabled''' while we focus on tightening up the single-player loop.<br />
<br />
* Arks are presently not used in the game, which means that also Chief Advisers are not used for now.<br />
<br />
* There are roughly 100ish ships/units that we still have not reimplemented from Pivot phases 3-5.<br />
<br />
* There are a variety of ships/units that don't have proper graphics or reuse icons at the moment.<br />
<br />
* There is not an in-game way to see and edit the control bindings yet.<br />
** But you can go into the created bindings file inside the PlayerData folder to edit them in a text editor.<br />
<br />
== What is this "Pivot?" ==<br />
<br />
The full details are on kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
<br />
The short answer is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
== Version 0.747 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Added the Advanced Factory and Advanced Starship Constructor back in, with AIWC-like mechanics.<br />
<br />
* Fixed a bug where special seeding logic (for capturables, among other things) would always put a unit at the dead-center of the planet if that spot was safe for placement.<br />
<br />
* Added the Zenith Power Generator, with AIWC-like mechanics.<br />
<br />
== Version 0.746 Disposing of the Invisible Man ==<br />
(Released June 29th, 2018)<br />
<br />
* A few tweaks to prevent nullrefs in hovertext over ships, and to make them work properly in build and tech modes, as well.<br />
<br />
* Further protection against some data garbling that could happen on worker threads, which led to things like AOE attacks striking ships on other planets from the current one.<br />
<br />
* Fixed an issue where newly-created ships that were rallying into a control group could rally to themselves if they were suddenly the strongest ship in the control group.<br />
<br />
* Fixed an issue with Infrastructure being spelled wrong.<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
* Put in a variety of protections against exceptions that could happen due to units no longer existing or being removed from any planet (aka the game) but having orders queued up for them and executed later.<br />
** Thanks to Ovalcircle and BadgerBadger.<br />
<br />
* Fixed a bug with 8 of the skyboxes that were causing nothing to render on their planets except wormholes. Uh... whoops!<br />
** Thanks to Ovalcircle and Badger.<br />
<br />
* Updated one of the really dark and pretty ugly skyboxes to instead be more white cloudy so that it's still faded out, but you can see more of what is going on.<br />
<br />
* Fixed the middle-mouse pan controls so that they act as expected; they were reversed as of the first pivot release.<br />
<br />
* Fixed an issue where if you upgraded a ship type (such as Fighter 1) to a higher mark (Fighter 2), it wouldn't keep the new level of fighters in all your queues. Now it immediately starts cranking out Fighter 2s instead of Fighter 1s after that upgrade.<br />
** Thanks to Badger for reporting.<br />
<br />
* There is now a brighter version of the colors that always shows when the game is writing text using a team color. This keeps text actually legible, while still giving the general feel of the player color in question.<br />
<br />
* Rather than showing the generic yellow strength color on the wave warnings, it now shows the color of the first AI faction in the game (waves are not attached to factions directly, apparently).<br />
** Ditto the colors now used on the attacking-my-planets warnings, except in this case it uses the color of the first-found attacking faction. Before it was using yellow for players and purple for AIs, but now it uses the colors that are more specific.<br />
** Same for the CPA notices now, actually -- instead of showing red text, it shows whatever the first AI color is, like the waves (by default this is actually red anyway). The actual icon portion is of course still red and white, since that's an icon.<br />
** Same also for on the galaxy map when you're viewing colors of unit counts on planets. For the threat color, if there is a hostile count AND threat count (aka on enemy planets), it draws the border color instead of the center color.<br />
<br />
* Fixed an issue with the text colors in the galaxy map over planets, as well as on the planet view over wormholes. They were being translated from gamma color space to linear color space incorrectly, and we're now using Color.linear to fix that manually on our end. Now the colors there match the colors on the UI parts of the interface.<br />
<br />
* The wormhole names now show all the time by default (like they did pre-pivot), since that's pretty helpful data.<br />
** If you prefer the more recent way of having those off unless you hold Ctrl, there is a new settings option you can disable.<br />
** Thanks to dv = i ln(w0 / wf) for suggesting.<br />
<br />
* Scout starships now provide some decloaking abilities around themselves, as in the first game.<br />
** Unlike in the first game, they are now unlocked by default from the start of the game. This way the players have some way to deal with cloaked ships on enemy planets.<br />
** Thanks to dv = i ln(w0 / wf) for suggesting.<br />
<br />
* Player tachyon arrays now have the same icon as AI tachyon sentinels.<br />
** Thanks to dv = i ln(w0 / wf) for suggesting.<br />
<br />
=== Wave 3 of 5 of the Pivot (Part 1) ===<br />
<br />
* Added Ion Cannons back into the game, with the old AIWC-like ion mechanic of simply insta-killing anything of a low-enough mark level (in this case it's actually mark level <= the cannon's, instead of strictly less-than, and the cannons are Mark 1 through 5 instead of 2 through 6).<br />
<br />
* Added the "Bulletproof Fighter" bonus ship type. Basically just a fighter that's immune to ion cannons.<br />
<br />
=== Attack Move And Group Move! ===<br />
<br />
* Added keybind "Group Move" (default G)<br />
** Normally when you give units an order to move, attack, or enter a wormhole they go as fast as they can. Hold this button down to make them go at the speed of the slowest (mobile) unit to whom the order applies. Ignores speed debuffs like engine-damage, tractors, gravity, or paralysis.<br />
<br />
* Added keybind "Attack Move" (default X)<br />
** Normally when you give units an order to move, attack, or enter a wormhole they pursue the target point/object without regard to (other) enemies. Hold this button down to make them stop to fight anything they run across (more specifically, any time they're reloading).<br />
<br />
== Version 0.745 A Pivot And A Leap Forward ==<br />
(Released June 27th, 2018)<br />
<br />
* This is the first release of "The Pivot," which you can read full details of on Kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
** The short description is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
* As part of this, basically all of the game content that was pre-existing has been removed, and we're adding new content in a fashion as described below.<br />
** The interface and such from before has been retained, and then greatly expanded as part of this release.<br />
** The underlying engine and whatnot that we built has also obviously been retained, and we've also expanded that where needed in order to support the new content.<br />
<br />
* Existing savegames are all broken now. With the game basically being redone from the ground up in terms of units and content, this seems pretty reasonable. Older savegames would have been incredibly strange in the new version, anyway.<br />
<br />
=== Wave 1 of 5 of the Pivot ===<br />
<br />
* Wave 1 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Note that this obliterates a lot of the game that was previously known as AI War 2, and we're going to be adding back to this rapidly.<br />
** Please also note that a lot of the graphics for the post-pivot stuff is still inwork, which includes both icons and actual ship graphics. We have a lot to do!<br />
** Lastly, please note that this is putting a variety of kinks in our current GUI, so there is work incoming on that, too. We're basically making a mess at the moment, so please excuse our sawdust.<br />
** The overall goal of Wave 1 of the pivot was to get an end-to-end playable version of the game. By that, we mean the MINIMUM possible possible playable stuff, to be clear.<br />
** Main things that were thus included:<br />
*** Removing all the ships that previously existed, and then adding as new:<br />
*** Command station mechanics, and home command stations.<br />
*** AIWC-style mechanics for the AI home command station.<br />
*** Upgradeable mechanics for other command stations (so we can do econ, military, etc).<br />
*** AIWC-style metal harvesters, the seeding of them, and all that.<br />
*** Ditching power and fuel, and going back to the AIWC-style Energy mechanic, and adding energy collectors.<br />
*** Going back to AIWC-style mechanics for the space docks.<br />
*** Fighters, Bombers, and Missile Corvettes; and with that, a framework for applying the old AIWC balance numbers on top of our newer xml balance framework (until the framework and the numbers can be made to meet in the middle)<br />
*** Warp Gates for the AI, those were already pretty much the same between games.<br />
*** Engineers, and all the AIWC-style mechanics associated with them.<br />
*** A variety of turrets from the first game.<br />
*** Tractor turrets, but this time switching to the older AIWC-style mechanics for how those work.<br />
*** Scouts, and the AIWC-style scouting mechanics.<br />
*** AI Tachyon Guardians, which are simply a new unit, although possibly this included a shift to the AIWC-style cloaking mechanics? Not sure on that one bit.<br />
*** Science Labs, and the AIWC-style knowledge-gathering mechancis.<br />
*** Colony ships, and the AIWC style of those working.<br />
*** Mine layers, and the rebuilder mechanics that go along with those.<br />
*** Guard posts for the AI, and the mechanics that go with that.<br />
*** Some of the AI guardians, and the AIWC style of guardian mechanics (AIW2 was previously wrapping guard posts and guardians into one thing, but now that's more split)<br />
*** Force field generators, and a return to the AIWC style mechanic (with those now being present at all in general, too.<br />
*** Starship constructors, nothing major different here between the two games.<br />
*** Some of the basic starships.<br />
<br />
* For the time being, in the xml and underlying data structures, we still have global fuel and per-planet power.<br />
** However, everything is just using the global fuel now, to be more AIWC-like.<br />
** On the interface, we are now referring to this global fuel as being Energy again, as with AIWC.<br />
** We'll see how this continues to evolve, but for now that was the simplest thing.<br />
<br />
=== Wave 2 of 5 of the Pivot ===<br />
<br />
* Wave 2 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Now we're building back up a bit more in terms of having the game more recognizable, but there's still a lot to clean up before we even release it to you.<br />
** New ships, with their attendant mechanics, added:<br />
** Scout Starship mk1-4, Stealth Starship mk1-4, Shield Starship mk1-4, Siege Starship mk1-4, Sniper Starship mk1-4, Carrier Starship mk1-4.<br />
** Arachnid Guard Post mk1-5, Missile Guard Post mk1-5, MLRS Guard Post mk1-5, Laser Guard Post mk1-5, Shield Guard Post mk1-5, Stealth Guard Post mk1-5.<br />
** Tachyon Guardian is now Tachyon Sentinel. Added Wormhole Sentinel, Data Center, Advanced Research Station.<br />
** Matter Converter, Mercenary Space Dock (and mercenary versions of relevant ships), Home Human Settlement, Human Cryogenic Pod.<br />
** Multi-Needler Corvette mk1-5, Eyebot mk1-5, Armor Ship mk1-5, Autocannon Minipod mk1-5, Lightning Corvette mk1-5, Grenade Launcher mk1-5, Infiltrator mk1-5, Laser Gatling mk1-5, MLRS mk1-5, Raider mk1-5, Raptor mk1-5, Sentinel Frigate mk1-5, Sniper mk1-5, Space Plane mk1-5, Space Tank mk1-5, Spider mk1-5, Vampire Claw mk1-5, Vorticular Cutlass mk1-5, Tachyon MicroFighter mk1-5, <br />
** Flak Turret mk1-5, Laser Turret mk1-5, Lightning Turret mk1-5, Missile Turret mk1-5, MLRS Turret mk1-5, Sniper Turret mk1-5, Spider Turret mk1-5, Beam Cannon mk1-5, <br />
** Tachyon Array, Stealth Tachyon Array, Focused Gravity Generator mk1-5.<br />
** Laser Guardian mk1-5 as a rename from Needler Guardian, Stealth Guardian mk1-5, Sniper Guardian mk1-5, Missile Guardian mk1-5, Widow Guardian mk1-5, Tractor Guardian mk1-5, Lightning Guardian mk1-5, Flak Guardian mk1-5, <br />
<br />
=== New Faction: Astro Trains (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Astro Trains'.<br />
** When enabled, a bunch of Astro Train Stations are seeded on the map. Every so often the AI will create a Depot, then begin to spawn trains that head to the Depot. Trains will travel between the Stations, then eventually to the Depot. <br />
** For some depots, a train will be required to go "near" a player if possible so that you always have a chance to kill them. Whether trains are required to go near the player is tunable on a per-Depot basis.<br />
** There will be a number of different types of Depots. Some produce an effect whenever a train arrives ("Increase the next CPA's strength", "Spawn some ships for the Warden Fleet", etc), others produce an effect after a certain number of trains ("If 4 trains arrive then spawn a Golem"). Depots are defined entirely in XML so it's easy to add new ones or change their balance<br />
** There will also be a number of types of Trains based on the defenses they have. At the moment there is only 1 (and it's misnamed, Keith hasn't added its weapon system back into the Pivot yet)<br />
** Eventually I'd like to have the Trains give you metal when killed, but that mechanic isn't added yet. <br />
** This faction intended to be a More Interactive and Fun version of AIWC's astro trains, which I always found rather frustrating.<br />
** For other modders, this faction is a great example to look to since it defines a new table in the XML, which allows for very complex behaviour.<br />
<br />
=== New Faction: Macrophage (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Macrophage'<br />
** This faction is an invasion of giant organic Macrophage. They prey on Metal, devouring ships and structures they come across, and in particular they prey on the AI (since you haven't encountered them yet). <br />
** Macrophage live in colonies called Telium, which are hidden from the AI. A Telium sends out Macrophage to harvest metal by destroying human or AI ships. When a Colony has been fed enough metal it will create cloaked and harmless Spores which wander the galaxy. When spores encounter spores from other Telium they can reproduce to spawn a new Telium.<br />
** They are hostile to humans and AI alike, but not very intelligent.<br />
** If a Telium produces enough Macrophage, some of the Macrophage will be transformed into an Aggressive form and then go try to kill the human player. If a Telium is destroyed, all of the Macrophages associated with it will attack the player.<br />
** This faction is a bit like reimagining the Devourer Golem as a part of an ecosystem.<br />
<br />
=== Dyson Rework (Thanks, Badger!) === <br />
<br />
* The Dyson Sphere now uses a "Metal income per second" mechanic to spawn units instead of just arbitrarily creating things at a time interval. This makes it much much easier to balance.<br />
** Changing the intensity of a Dyson Sphere changes the income per second; the balance numbers for a given intensity are now in the XML.<br />
* Multiple Dyson Spheres can be enabled at a time, and each can have a different colour and intensity. Enabling X dyson spheres divides the income of a given sphere by X so multiple Dysons won't be able to just crush the Galaxy.<br />
* Dyson Spheres can be Antagonized, like AIWC. If a Dyson Antagonizer exists, all the Dyson Spheres drop what they are doing and start sending units to attack you. Previously created Dyson Sphere ships will keep their previous alignment (so if they were friendly before, they will fight Antagonized ships)<br />
** Antagonizers are not currently created by anything yet, so don't worry about them showing up yet. I imagine one of the Astro Train Depots will create antagonizers eventually, but there may be other mechanisms worth exploring.<br />
* Each Dyson Sphere now has a max Strength Allowed based on the current AIP; the higher the AIP the stronger the Dyson can get. The tuning for this is in the XML<br />
<br />
=== New Faction: Mercenaries (Thanks -- yet again -- Badger!) ===<br />
<br />
* Add new faction for Mercenaries. The Mercenaries are a much fancier version of the AIWC mercenaries (which are rebranded as "Auxiliaries").<br />
* Mercenaries are groups of units defined in the XML that can be hired to come fight for you temporarily using metal or hacking points. We may define other costs for them as appropriate going forward. A small set of mercenaries are defined right now with no attempt for balance, just to illustrate the various options that exist. Each group has a name and backstory and different behaviour. Some only defend one planet, others patrol nearby worlds (and will go help any of your planets if they are attacked), others will kamikaze at the AI. Some groups consist only of turrets and engineers. One group is a large cloaked unit that can be summoned on an AI world which will hopefully distract the Warden fleet, but that's untested.<br />
<br />
* Options for mercenary groups that can be specified in the XML<br />
** On Spawn behaviour: Fight all enemies on a current planet, then warp out. Defend this planet. Patrol nearby friendly planets (they will detect attacks on nearby planets and go help). Kamikaze into the AI. <br />
** Planet summoning restrictions: Can only be summoned on a Friendly planet, an AI planet, a planet not owned by the AI, or anywhere<br />
** Seconds allowed to exist: mercenaries will only stick around for a certain amount of time (in seconds)<br />
** Times allowed to summon: If the Primary unit of the mercenary group survives to the end of its "Seconds allowed to exist" then you can summon these mercs again, up to a certain number of times.<br />
** Cost: Metal, hacking points or both<br />
** Spawn Delay: the mercenary group in question will appear after this many seconds<br />
** Primary/Secondary/Tertiary units: A mercenary group can have up to 3 unit classes. You set these classes with the "[primary|secondary|tertiary]_unit_tag" field in the XML. Note that a tag can be on multiple types of units, and it will choose randomly among them. For example, we might have multiple units tagged with "MercenaryFleetship", and specifying that as one of the unit tags will pick among those at random. You can specify either a specific number of units with that tag, a strength of units, or both. So for example, one might say primary_unit_tag="MercenaryFlagship" primary_number_to_spawn="1" primary_strength_to_spawn="2000". If the Mercenary Flagship units all have 900 strength then this will summon 1 + 3 (we round up when calculating how many units for the strength) = 4 flagships.<br />
** Class: Defense/Offense/Utility. This is future proofing, we don't do anything with it yet.<br />
<br />
*At the beginning of the game, a number of Mercenary Communicators (I am open to a more flavorful name) are seeded on the map. Each Communicator grants access to some unique mercenary groups. If you are holding a planet with a Mercenary Communicator then you can summon those mercenaries.<br />
<br />
*The two key advantages of mercenaries over regular ships are that they don't cost energy and they can be summoned more quickly. Also some may do other fancier things later (like the warden fleet distractor). There is nothing preventing someone from tweaking the XML to allow you to hire the Devourer, for example, as a fun alternate win condition.<br />
<br />
*How quickly the Mercs appear is tunable on a per Group basis (so we could have identical groups, one that spawns in 60 seconds and costs X metal, another that spawns in 5 seconds and costs 5X metal).<br />
<br />
* AIWC style mercenaries are rebranded as "Auxiliaries"<br />
<br />
=== Marauders Expansionism ===<br />
<br />
* When the Marauders capture a planet, if they get up to Mark III outposts then they will begin spawning Raiders, powerful starships that will attack weakly defended nearby worlds. So if you give the Marauders and inch they will expand rapidly (the ideal case is "You've cleared out a bunch of planets but haven't captured them, and the Marauders will build an empire there if you don't watch out").<br />
* Make Marauders hostile to everyone. This means that neutral planets or weakly defended AI planets are eligible to be captured by the Marauders. Remember that the Marauders capturing a planet will permanently strengthen the faction.<br />
** Thanks to Ovalcircle for the suggestion<br />
<br />
=== Misc Bugfixes ===<br />
<br />
* Fixed an oversight in some of the recent versions where the Dyson Sphere was missing its cage. It now has a shiny (literally) new material on it.<br />
<br />
* Slight rework of the Autosave code. You now can specify the interval for autosaves and the number of previous autosaves to keep. So if I want to take autosaves every 10 minutes and keep the last 6 then I'll be able to easily jump back to the game up to an hour before. The goal is to make it easy to savescum efficiently and effectively ;-)<br />
<br />
* Provide a workaround for the problem where people who had last used a no-longer-extant map type would hit a crash when they start the game. Those deprecated map types are now defined (so it won't cause a crash anymore), but hidden by default so they can't be selected.<br />
** This was reported by numerous people, including Valeroth, Clasmir, zeusalmighty and probably others<br />
<br />
* Fixed a since-forever bug where ships fast ships that wind up needing to move to not overlap something would start bouncing around like they needed to go to the little starship's room.<br />
<br />
* Fixed the scales and collision radii of the assault starships.<br />
<br />
* For now at least, the bobbing of ships within squads has been turned off. As steam user Bucketsmith pointed out, it looked too much like ships on the ocean. It was meant to give a sense of life to the ships, but after he pointed this out to us, we couldn't stop seeing it, either...<br />
<br />
* The game now has proper settings on all the ship renderers for dynamic occlusion, motion vectors, shadows, etc. This should lead to a slight performance bump.<br />
** The editor has also now been set up to detect incorrect settings for these.<br />
<br />
* We had some extra uv2 and color and so forth channels on about 510 of our meshes, and we've now removed those. The amount of data was small, but it was useless info to be sending to the GPU since our shaders don't read from those. Every little bit of data shaved off when you're pushing millions of polygons on a millisecond scale is a win, not that it was causing problems in our testing thus far.<br />
<br />
* Fixed a bug where the single-ship-in-a-squad units were not being properly scaled down location-wise.<br />
* There was previously a bug in the profile screen where it was reversing what your body and trim color selections were on the box-based examples.<br />
** The icon-based examples were fine, but now the boxes have been corrected to match the icons.<br />
<br />
* Fixed a likely-longstanding bug where the scale of ships would drift smaller and smaller the longer you played, depending on how many times pooled ship visual instances of that type were reused due to deaths or due to switching in and out of the galaxy map view or between planets. Some went extremely fast, such as the recently added AI command stations. We suspect this is also what was going on previously with the warp gates.<br />
<br />
* Previously, the icon scales could sometimes be incorrect when tabbing back from the galaxy map, until you scrolled the camera around a bit. Fixed.<br />
<br />
* The placement mode icons were never scaled up or down to match the size they would be once placement was complete. Fixed.<br />
<br />
* Fixed a since-forever bug where the colors of icons in the main view were lighter than those in the sidebar. Turns out it was not color grading being applied, but rather that we were passing in our Color type parameters as Vector4s. This worked, sort of, but the typo wound up transposing the data slightly for some reason. Why it didn't just function correctly or fail completely is a solid mystery, to be honest.<br />
<br />
* Fixed an issue where opening savegames that were originally saved in a different campaign name but have been manually moved to a new folder were using the old campaign name instead of the new one as far as "continue last save" was considered.<br />
<br />
* Previously, if continue last save was not able to load the last save because it couldn't find the file, it was not showing any error. Now it tells you what the issue is.<br />
<br />
* In the game setup screen on the galaxy map, it no longer shows the colors of any factions other than player planet names (since in games with a lot of factions that actually gives away info).<br />
<br />
* In the game setup screen on the galaxy map, it now shows the player names under each planet name controlled by one.<br />
<br />
* Once into the game, it no longer shows the color of the faction on the other side of a wormhole if you've never scouted that planet at all.<br />
<br />
* Fixed an issue with the little bottom-left menus where the mouseover of elements behind them could sometimes happen because there were cracks between the buttons. Now there's a backplate behind the entire windows in those locations.<br />
<br />
* The underlying flag under the queue pause button was not actually implemented (it may have previously been the loop flag), so it didn't work; now it's implemented and works to pause that queue. Incidentally this does not disable any other functions of the building unit, unlike in AIWC where it was done through the general "disable everything" mode<br />
<br />
* Removed requirement that you have had units on a planet before you can send units there on the galaxy map (leftover from the sensor-scrambler scouting model)<br />
<br />
* Fixed a bug where the game was still trying to seed design-template-servers when the AI unlocked something new, despite those not currently being defined in the game, and thus throwing errors<br />
<br />
* Fixed a bug where AI ships freed by a minor faction still just went after the humans<br />
<br />
=== Misc Improvements And Additions ===<br />
<br />
* Added a new IGameEntityDescriptionAppender, which can be linked up using the new xml tags description_appender_dll and description_appender_type.<br />
** One example is presently in place with the human home command station and a test class called AnyUnitExampleAppender.<br />
** This is something that can be used for adding arbitrary unit-specific or class-specific dynamic text to the description of any unit or unit type. This is likely to be widely useful as we build out the UI later on, because we can put in context-specific warnings and commentary, for instance.<br />
<br />
* If a ship has been shot to death into remains, it now says REMAINS in red after the name of the ship in the mouseover, and it tells you what the remains means and that you need a remains rebuilder in the description text. Otherwise this was absolutely mystifying as to what was going on!<br />
<br />
* When ships are under construction directly on the battlefield, it now shows the health bar to show the progress that they are making towards completion. Holy cow did things feel incomplete without that.<br />
<br />
* Hey, does the scale of the grav wells on planets feel too small to you? Here's how you can tune the numbers. For example, at the moment we've doubled the size of the grav wells, and we'll see how that feels. To do the doubling, since that's simple math, here are the changes:<br />
** GameData/Configuration/ExternalConstants/KDL_VanillaConstants.xml<br />
*** distance_scale_gravwell_radius 13000 to 26000 (This makes the sim-level grav well twice as large, but if you just change this then visually things will draw very wrong. Must be an integer.)<br />
*** asset_base_unit_radius from 100 to 200 (This makes the units draw half as large as they previously were. It has to be an integer).<br />
** GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml<br />
*** combat_visual_scale_divisor from 10 to 20 (This makes the position of units, and the size of their selection radius, all make sense visually. Whatever multiplier you apply to distance_scale_gravwell_radius, apply the same one here).<br />
*** forcefield_visual_scale_divisor from 5 to 10 (Same deal, forcefields will look the wrong size if this isn't adjusted).<br />
** There actually may be a few other settings that we overlooked, but hopefully this is a comprehensive guide. If not, we'll update this in the future if we discover a hole.<br />
<br />
* Selecting a constructor unit (like the Space Dock or Starship Constructor) will automatically open the Build Tab on the sidebar. It was really annoying to click on a constructor, then realize you need to also click on the Build Tab. Note that hitting "B" is more efficient than clicking on a constructor anyway.<br />
<br />
* Dark Spire: Different factions produce different amounts of Energy when their units kill or are killed. These values are tunable in the XML. The AI or players units produce more energy than minor factions like the Macrophage, Devourer or Nanocaust.<br />
<br />
* In the planet view, linked planet names are no longer shown over wormholes unless you are holding down the ctrl key. Thus you can easily see the names, still, but they aren't cluttering up your view all the time (and making the gravity well feel smaller in the process). This also has the benefit of making it really obvious when you can click to send your ships or camera through the wormholes.<br />
<br />
* Now that warheads are no longer a resource that should be shown on the top bar, we're bringing back the attack warning/numbers up there. This shifted around several elements on the top bar, spatially, but put the new attack warning in the bottom right of that bar.<br />
** Slightly different from the first game, the new attack indicator shows the number of hostile enemy ships on ANY player planets, not just those you own. That seems relevant. It has three states: a greyed-out "nothing's here" safe shield with checkmark, a yellow and orange "things are here, but not on your personal home planet," and then a red and white warning "there are at least some of these guys on YOUR home planet."<br />
** Undoubtedly we'll adjust this some over time. One oddity you'll notice is that the frequency of the flashing of the text in this field is inconsistent. That's unfortunate, but a side effect of the way that unity dirties its GUIs rather than drawing every frame, along with the multithreaded queued approach we take on top of that.<br />
** The tooltip will list all your planets that are under attack sorted by the strength of the attack<br />
<br />
* The quick start button now actually works, although it goes to the same location as the custom start. A tooltip notes that the quick start variant is coming soon. However, some folks were confused and not thinking to go to the custom start, so here we are.<br />
<br />
* On the galaxy map and in the planet view, the icons for ships now are rotated to billboard toward the camera on the GPU instead of on the CPU. This saves an enormous amount of processing when there are many icons, and means that we can update the scale of icons more rapidly even when there are many many icons on screen -- getting rid of that delay in rotation/scale that was seen in prior versions of the game. There still IS a delay built in, just in case you absolutely flood your screen with icons, but it shouldn't be hit in normal gameplay (or if it is, we'll adjust this further based on profiling of said savegames). Additionally, since the rotation is run on the GPU, that means that CAN'T happen any way other than instantly, which is nice.<br />
<br />
* The color picker UI has seen a number of updates:<br />
** The individual color cells are now far smaller, letting you see tons more of them at once, and feeling more like traditional color pickers.<br />
** The selected color cells no longer blink their main color, but instead blink a little border around them. It's a lot more obvious what is going on now, and no longer seems like a bug. The flashing is still needed because the borders get lost in the riot of colors, otherwise. Hazard of having so many options.<br />
** There is now a section of preset options (combos of body and trim colors) down at the bottom of the screen. These give attractive options that also don't conflict with any of the NPC factions. This is one of those things that makes the game infinitely more usable.<br />
*** There are eight of these right now, but it's possible to define more via xml.<br />
<br />
* The in-game tooltips for planets and units/objects now shows in the bottom left, as it previously did in AIWC.<br />
<br />
* The selected ships notice now also shows up down at the bottom of the screen, where the tooltips do. It only shows if a tooltip (or the escape menu) is not showing. This saves important space in general, and also paves the way for the notifications bar up at the top to finally have room.<br />
<br />
* Scouts have a much higher movespeed than anything in the game, so the approximation for lerping squad movement was much higher than anything else. This caused scout movement to feel very jerky. Instead we put a cap on the fastest possible visual movespeed for a squad.<br />
<br />
* Fixed a bug deep in the bowels of our UI code that was leading to a lot of higher-level bugs with things being positioned incorrectly, etc. The most recent manifestation of this, in the working versions of the pivot build, were un-owned metal desposit spots showing up half off the sidebar.<br />
<br />
* Added a new "Owned by Nobody" section on the ships section of the sidebar, since that's a legitimate fourth category. Golems that nobody controls yet, un-owned metal spots, etc, etc.<br />
** Also new, the items in this category can be seen on the sidebar if you've ever been to the planet before, even if you don't have vision of the planet right now. This is pretty handy.<br />
<br />
* Engineer and Rebuilder FRD now works (though their prioritization leaves something to be desired)<br />
<br />
* AI planets directly adjacent to a human homeworld no longer seed guardians or sentinels, to match AIWC (AIWC had wormhole guard posts, now known as wormhole sentinels, but their omission is not significant)<br />
<br />
* Guardian counts have generally been significant reduced, and are now proportional to planet mark level as well as number of guard posts<br />
<br />
* A bonus ship type can now be selected for each human faction (currently you have to click "more" to get to this, since the space is already taken by the two color dropdowns and the Ark dropdown)<br />
<br />
* You now start with 10k science, and all weapon turrets (except beam), to parallel AIWC<br />
<br />
* Your command stations will now automatically claim metal spots, to better resemble what happened after capturing a planet in AIWC.<br />
<br />
* Made the planet view cursor code moddable and open source.<br />
<br />
* Constructors can now be set to rally units they build to either an already existing control group or to a point chosen by the player.<br />
<br />
=== Keyboard/Mouse Input Overhaul ===<br />
<br />
* Previously we were using some middleware called Rewired, which was bulky and inflexible in a variety of ways. It's super useful if you want to handle a bunch of gamepads and in particular if you want to have design-time-defined controls. Our use case was diverging enough that all it added was bloat, though, because we had to write our own runtime-control-definition layer, poll the list of all our controls while it polled all the keys under the hood, and other messy things like that. So Rewired is out.<br />
<br />
* We brought in what started as EasyInput from ootii as replacement middleware, then pared that down to just the keyboard and mouse bits. We then basically rewrote the entire thing so that it's more efficient, uses no dictionary lookups during the game loop, and is compatible with all the things we want it to do for this game. So ultimately we wound up just kind of creating our own.<br />
<br />
* The new input system has a lot of performance benefits, but one of the biggest things it will do is make it easier for us to define all of the keybinds in xml, no matter how many we have. All of the keybinds that were previously hardcoded have now been moved to xml.<br />
** It was previously somewhat difficult for us to check if something was just pressed, just released, being held, etc, in an efficient and automated way. This is now something that can be directly specified in our xml definitions for the keybinds.<br />
** We also have a new Custom type of key check, which basically skips the whole Handler reflection-linking process and instead just lets classes elsewhere in the code get an object reference to that key and then check it as needed. This is very useful for modifier keys of any sort, and for all of the camera controls.<br />
<br />
* Work has also been done to prep this for an actual interface for viewing and editing keybinds in game. We'll get that in place prior to Early Access, but for now we have a few other fish to fry.<br />
<br />
* A variety of bugs relating to keys that could be triggered on the main menu that were only supposed to be in-game have been fixed.<br />
<br />
=== Galaxy Map Improvements ===<br />
<br />
* The galaxy map is now using a purely top-down camera with the ability to pan and zoom but no ability to tilt or rotate the view. There have been a number of valid issues brought up with the existing galaxy map, and we're starting to work through those now. Lots more to come, but here are some of the first bits.<br />
<br />
* Players can now see the entire galaxy map structure -- meaning the actual planets and their wormhole links and lines -- from the start of the game.<br />
** This is the same data you see in the lobby, so it was always strange that we took it away after the game started in Classic and this game.<br />
** This does NOT grant you any actual visibility on the planets as to their contents, owners, resources, ships present, or anything else.<br />
*** Aka, this is not a reduction of fog of war, it's just the ability to see the shape of the battlefield, same as you already could in the lobby.<br />
<br />
* Previously, on the galaxy map it would take you into the planet view as soon as you clicked a planet, unless you held Alt. This was not helpful for a variety of reasons, so based on user feedback it now by default just switches which planet is selected but doesn't change the view unless you hold Ctrl.<br />
<br />
* When you are on the galaxy map, it now only shows the name of the planet you are currently viewing unless you hold down the ctrl key. This is a lot more like the first game, and is way less cluttered.<br />
** In the lobby, it shows the names for all human planets, with their colors on there.<br />
<br />
* You can no longer zoom the galaxy map so far in, you start further zoomed out, and you can zoom out further.<br />
<br />
* On the galaxy map, the visuals for the planet are now 4x larger, making them easier to see at farther zoom ranges. This is essentially the same as making the planets "closer together," so to speak, in its effect on how you view the map.<br />
<br />
* Rather than drawing the literal visual of the planet on the galaxy map, which turned out to be fairly pointless, we now draw icon-like 3D models in place of them.<br />
** These show the color of the owning party for the planet, if there is one, and they show a different icon for unscouted (ever), regular, and homeworld planets.<br />
** The regular-planet icons are a bit different for marks 1-5 of regular planets, incidentally (anything over mark v shows the mark 5 graphic for the planet itself). These help give you an indicator of the strength of planets when they are in the hands of the AI.<br />
*** After you capture a planet, it still retains its graphical styling for what mark level it used to be, which is a subtle but cool way of showing your progress in the past.<br />
<br />
* On the galaxy map, the selection ring is now fancier, easier to see from a distance, and it rotates to make it even more obvious where it is.<br />
<br />
* The "king unit" no longer shows up next to home planets on the galaxy map. Instead, now the planet itself is showing up looking different. It's a lot easier to tell what the heck is going on, now!<br />
<br />
* The text on the galaxy map that shows the strength at planets is now a lot more clear, and more useful in general. Before it just showed the amount of threat at any given planet, period.<br />
** Now it shows a yellow row with a strength icon for any allied + self units that are on that planet (or omits the line if that total is zero).<br />
** In the same fashion, it shows a purple row for any threat on the planet IF you currently have vision there. Or omits the line if none.<br />
** And also in that same fashion, again if you have vision there, it shows a red row for the total of hostile strength on that planet that is NOT threat.<br />
** Now you can actually see what sort of dangers there are to your planets, which planets of yours are outnumbered, and all sorts of other useful things like that!<br />
** It actually shows the strongest forces (allied or enemy) on the top or bottom. It doesn't sort the threat vs not threat, but moves those as a bloc.<br />
<br />
* Also adjusted the placement of the "lower text" on the galaxy map to be centered right below the planet name, rather than down and to the side. Previously it often looked like the threat counts were located at some other planet instead of the planet they were actually on.<br />
<br />
=== Camera Improvements ===<br />
<br />
* The camera in the planet view has been something of a bugbear for a little while, because there were a variety of things that could go wrong with it. But even more than that, it was using a TON of keys on the keyboard: WASD and the arrow keys for movement, Q and E for rotation, and R and F for tilt. Time for revisions!<br />
<br />
* One of the new things that was most interesting was the idea of a "tilt and rotate" mode, rather like what happens if you hold the right mouse button in Planet Coaster. We can't really use the right mouse button that way, and the middle mouse button makes more sense as the existing "grab and pan" functionality, so we've defined the mode modifier for that as Q now, or Mouse4 if you have a 4+ button mouse (those are awesome, incidentally).<br />
** Along with this change, the default bindings for rotation and tilt are simply set to nothing. If you want to bring back the Q and E and R and F the way they were, that ability didn't go away, but we're claiming those keys for other things instead (Q is already the tilt and rotate mode, whereas the others are unbound at the moment).<br />
<br />
* Along with this, zooming out could potentially put you out of bounds previously, if you had the camera tilted sideways a lot. Now when you zoom out, it un-tilts your camera to avoid this happening. Most other games do this same thing; technically it wasn't zooming out before, but just backing up laterally, anyway, if your angle was shallow enough. Now it actually always zooms out.<br />
<br />
* Previously it was possible for sometimes the mouse wheel to give way too much input in one frame, and send you shooting forward. Probably this was happening directly during a long Garbage Collector frame, although we're not sure. We've put in some safeguards to prevent this from happening, although if it is caused by something other than what we guessed then it will still happen and we'll have to add more safeguards elsewhere.<br />
<br />
* There's a new setting for the tilt/rotate mode that lets you set the sensitivity of that.<br />
<br />
* The "free look camera" stuff has all been commented out for now. We could in theory bring that back, but it felt awkward and was not really needed, ultimately. This removal also helps the settings menus be a little less overwhelming when it comes to camera options.<br />
<br />
=== Notifications Bar Added! ===<br />
<br />
* The wave and CPA warnings are back! Actually, they never were quite in the game in this fashion showing a proper countdown. They show a little icon and number box in the upper left of the screen, which you can hover over for more info.<br />
** Clicking on them takes you to the planet that is involved, if it's a specific planet.<br />
** For waves, it shows you the planet it is headed to, and it strength, on the notification badge itself. For CPAs, it just tells you a CPA is coming and when.<br />
** For these, it has a tooltip for each of them that tells you what a CPA is if you don't know, or what the composition of the incoming wave is if it's a wave.<br />
<br />
* The notification bar now includes entries for planets of yours that are under attack, and shows the total strength counts for those ships that are aggressing and those that are defending.<br />
** These are color-coded, and whichever is on top is stronger, so you can tell at a glance if you should be winning this fight (on paper; positioning and tactics are important if the numbers are close, of course).<br />
** The icon for this is different if it's your home planet versus one of your other planets, so this is yet another source of visible warning when your home planet is under attack.<br />
** As with the wave warnings, you can click these to immediately go to the planet in question.<br />
** The tooltips for these show the name of the planet that is being attacked, who the attackers are, who the defenders are, what small ships, large ships, non-combatants, and strength each participant has, and what critical infrastructure is located here for the defenders.<br />
*** Big thanks to Eric for designing all of these things (as with almost all of the GUI now, but this in particular is super cool).<br />
<br />
* There is now a general-purpose framework where developers and modders can add items to the notification bar from any faction.<br />
** This is useful for a variety of things, ranging from alerting you that a trader is visiting a planet and wanting to trade, to telling you marauders are after you, to other things of that nature.<br />
*** Note that we're not using it for any of those purposes yet, but the capability is now there -- and the first proof of concept is actually the planet under attack notices.<br />
<br />
* We now have the concept of critical infrastructure, which are simply items that you get warned about in the tooltip when they are on planets of yours that are under attack.<br />
<br />
=== Visual, Audio, and Workflow Improvements ===<br />
<br />
* The icons for ships are now just stored once in the game, at a single size, rather than twice at two different sizes. This makes it a lot faster for us to update the icons, and uses a bit less disk space.<br />
<br />
* Added a new visuals_scale_multiplier xml entry for GameEntities that lets us scale up or down entities as we wish for whatever purposes.<br />
** One of the biggest uses is so that we can have fewer prefabs that we have to initialize and keep in memory for ships that grow in size but nothing else during mark-level changes.<br />
** This is now in use on the AssaultStarship and the NeedlerGuardian, which are the only two ships re-implemented at this point for which this is relevant.<br />
<br />
* The tractor turrets look so cool that we've made them a bit larger and made it so that there is only one per "squad" on them. They look like they individually mean business as it is.<br />
<br />
* The visuals, icons, and scales for engineers, rebuilders, and human cryogenic pods are all now in place.<br />
** Note that only engineers and rebuilders are actually in the game yet.<br />
<br />
* Adjusted gimbal_base_scale from 2 to 2.5 in GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml so that the gimbal icons aren't so darn tiny. This seems to feel more like AIWC, now.<br />
<br />
* Human scouts and AI tachyon sentinels now have their graphics in place.<br />
<br />
* Added a new y_offset_of_ship_in_formation xml tag, which allows us to raise and lower ships from a squad as a group. This is useful for really tall structures, for instance.<br />
<br />
* Added the visuals for all of the command stations (AI, basic human, economic, logistical, military, warp jammer, human home, human home core).<br />
** This was quite a task to pull off in a satisfying yet recognizable way, but we finally have it. Basically these needed to be larger and more epic, yet stand out and not have too many polygons, etc.<br />
<br />
* All of the icons for the new command stations and such are now in place, and the icons for command stations show larger than other icons on the planet. The icons for the king units now show even larger. There are also different icons for each type of command station, in such a way that you can easily tell something is a command station, but also that it is some other kind of command station beyond the basic sort.<br />
<br />
* The voice_group xml tag that specifies what voice is used for ships is now required. For non-human-controllable ships, just using Silent is preferred, although it doesn't really matter since these voices only happen when a human player gives orders to the ship in question.<br />
** Previously these were partly defined on the weapon types, but this was far too broad a way of doing it (and had stopped working on our internal versions as part of the Pivot anyhow).<br />
<br />
* Visuals have been created for the energy collector, matter converter, science lab 1 and 2 (though only mk1 is in the game), raid starships mk1-4, metal harvester (and empty version), tractor guardians mk1-5, scout starships mk1-4, home human settlements, and hackers (though hackers are not in the game yet).<br />
<br />
* The visuals for the colony ship are now in place.<br />
<br />
* There are a lot more Arcen-based header menus in unity now for us to speed up repetitive tasks. Also ones for opening folders, and in general letting us work faster and with fewer clicks to get things done.<br />
<br />
* The icon definitions no longer need a _border entry in xml. They still need the actual files, but the game can find them just based off the original icon entry. Yay less typing and chances for typos.<br />
<br />
* Wormhole scaling-up has been removed, and will be replaced by a far-zoom icon like ships/squads get.<br />
<br />
* "GenericObjects" can now have a list of AlternativeMaterials specified. <br />
** This is used for the wormholes in particular so that they can change colors and cubemaps in order to represent different things, or even being hovered.<br />
*** On the wormholes, if you look into them, you'll see a distorted view of actual images from the ESA/Hubble, used with attribution. It's a neat little detail, and you have to get extremely close in to see it.<br />
<br />
* The wormhole visuals have been completely redone AGAIN, probably for the last time this time. We're using something called Scingularity, heavily modified for our purposes.<br />
** The wormholes are drawn using a single untextured quad, which then does a ton of math and uses a cubemap for the center of the singularity, and then a pixel shader to do the outer swirl. Because of this, it looks fantastic at any zoom level. And amazingly, it performs well. You don't need any special hardware.<br />
** In our case, we're using those EA/Hubble images noted above for the center of the wormholes, and then different normal maps for swirl patterns on each color of wormhole, and different colorizations on the wormhole swirls to indicate different things.<br />
** Greenish ones go to enemy planets, darker blue ones go to your planets, lighter blue ones go to allied planets, red/orange ones have a wave incoming, pale green ones go to allied or neutral NPC factions, and white goes to unowned planets.<br />
** When you are hovering over the wormhole -- which requires you to be holding ctrl down, incidentally, so that you can send either the camea or units through it -- then it glows at a much brighter temperature. Makes it far easier to know if you're actually hovering over it.<br />
<br />
* At long last, your choice of colors in the profile menu actually means something! Whatever you select on your profile for your body and trim colors are now used next time you go into the lobby.<br />
** The lobby is still the outdated style with the dropdown for colors, but now it has two colors there for your choosing, too. Using it that way is not ideal, but we'll get to that in the next few weeks.<br />
** For now, it's a very happy thing that we finally have two-color player colors in the game!<br />
*** For each place text is using the colors, it just uses the body color right now.<br />
*** There are presently be some issues with the icons in the main not matching the colors exactly, which is probably due to color-correction post-processing. We're going to be shifting those icons into the GUI camera soon anyhow, so that should solve that when we do. Until then, everything looks washed out in the main icon view.<br />
*** When it comes to showing that a unit is hovered-over, it now goes darker or lighter depending on whether its average color is greater than or less than half brightness; this is instead of the <br />
*** When it comes to showing that a unit is selected, it now adds a border around the mark level icon itself, and brightens the border of the unit color.<br />
** As an aside, when you change the colors and hit OK in the color picker in the player profile screen, it writes to the underlying log what the color selections are called. You can then use this in xml defaults if you're doing modding. Otherwise this doesn't affect you.<br />
** For all of the special factions, AI factions and subfactions, humans, and so forth, there are now default colors! With the two-tone colors we were able to do a lot more theming and nuance.<br />
*** Player colors are going to need to include some defaults for people to choose from, since it can be time-consuming to do so otherwise and you don't know if you're potentially selecting something similar to another faction's defaults. Providing some quick-pick attractive defaults is on our list prior to EA; we already have 8 sets of colors, but the interface isn't updated for that yet.<br />
<br />
* The icons for all ships have been improved, with more darkness and light on them, and more layers of borders and sub-borders, to make things really have contrast and stand out so that they are more legible.<br />
<br />
* Put in a fix to our spritesheet for the ship icons so that now there is substantially more padding in them, fixing some bleed-over between sprites (causing line artifacts, etc) at smaller mipmap levels (when an icon is shrunk a lot).<br />
<br />
* The game finally has "burning and dying" effects on the ship icons as they are killed. Thanks to Badger for continuously pushing for this, as well as for implementing the timing code portion of this. This really helps make the battles both more dramatic from the far zoom view, as well as frankly clearer what is going on.<br />
** We implemented this in completely open-source code between the C# and shader bits, so it can be tuned by other folks if desired. We though about using a ramp texture, but wound up going with a series of lerps between vector4s instead.<br />
<br />
* The font for the mark level numbers has been changed again, and looks much better now.<br />
<br />
* On the sidebar, the strength number is now shown abbreviated instead of written all the way out -- we're trying to standardize on that everywhere, as it's the easiest to read.<br />
** This also now applies to the resource bar at the top of the screen.<br />
<br />
* Fixed a variety of places that were incorrectly using the strength per subsquad instead of the strength per squad -- including in some of the targeting logic for ships.<br />
<br />
* Fixed a bug with the ships tab of the sidebar where it was including the strength of noncombatants in the total strength for the planet, which was not remotely useful. Now it just shows the strength of combatants, like everywhere else, which gives you a much more valid picture of the battlefield. Defensive strength of noncombatants is kind of incidental to that.<br />
<br />
* At a few places in the game, we were showing "Human Remnant" as the faction name instead the name of the player in question. Now we show the player name.<br />
<br />
== Version 0.743 Music Blooms ==<br />
(Released May 2nd, 2018)<br />
<br />
* The second half of the AI War 2 soundtrack is now in place! These pieces, as specified in the kickstarter, are all remixed/remastered versions of tracks from AI War Classic. In there we have the Defeat and Victory tracks from the first game, Nomad Sunrise from DoW, Intro and Midnight from the base game, Night Light from LOTS, Rising Up from VOTM, and Voyage to Zenith from TZR.<br />
** With this, we're now also distributing the full soundtrack (plus a variety of bonuses!) to all those backers who signed up for it. You should have an email with that link, and/or be able to see it in your backerkit profile page: https://aiwar2.backerkit.com/<br />
<br />
* The game now actually plays defeat music when you lose.<br />
<br />
* When you win, the game first plays the For The Fallen vocal track, and then goes into the from-Classic Victory track, then goes on to play regular music from the in-game rotation.<br />
** When you lose, the game plays the defeat track, then also goes back to the regular in-game rotation.<br />
** These two changes are aimed at people who want to keep playing after a victory or loss, which are a not-insubstantial number of people.<br />
** We actually have not tested this bit at all, so, uh, if it doesn't work properly like this then please do let us know and give us a savegame. We're kinda busy on a lot of fronts right now! Normally we unit-test things, though.<br />
<br />
* We're now internally using the Asset Bundle Browser to help us find trouble spots with overlarge pieces of data in our asset bundles that we're building for the game. This helps with load speed, runtime efficiency, and asset bundle build speed.<br />
** On github: https://github.com/Unity-Technologies/AssetBundles-Browser<br />
<br />
* Slightly improved the efficiency/size of the effects asset bundle.<br />
<br />
* Reworked the bloom effects to use the Natural Amplify Bloom effect rather than the Realistic one. This, plus a couple of other tweaks in that area, lead to something that still has bloom, but is a lot more subtle than before. Some folks were complaining about that with the teaser trailer, and we can see their point.<br />
<br />
== Version 0.742 Hotfix ==<br />
(Released May 1st, 2018)<br />
<br />
* Fixed a bug where the total seconds to load was only being reported in output.log, and not in the ArcenDebugLog.<br />
<br />
* On the main menu, it now shows how long it took to load the game, and you can hover over that to get details if you want. The "logged in as Steam user" info is right below that, and both are a bit smaller now.<br />
<br />
* The loading feedback on the sound effect items and graphics items are now more coarse, leading to faster overall loading times compared to the last internal versions.<br />
<br />
* The method for tracking how much time has passed has been adjusted to use DateTime.Now instead of the Stopwatch class, since we had some questions about accuracy.<br />
<br />
== Version 0.742 Darkly Loading Spire ==<br />
(Released May 1st, 2018)<br />
<br />
* Rather than looking like the application is hung when it starts, the game now shows the loading progress in the form of what it's doing at the bottom. It doesn't show a loading bar, but it does show a counter of how long has elapsed, and how long specific long-running bits are taking.<br />
** This is useful both for us to know in terms of telling when something is overly slow to load, and it also gives players something to look at and a cue that there's not just a frozen application in front of them.<br />
<br />
* Surprisingly, the sound effects loading is taking twice as long as the loading of the graphical data right now (9.6s versus 4.4s on Chris's machine), so this is already an example of where we can optimize our loading speeds a bit, which saves everybody a lot of grief and saves the devs here time staring at the screen when it's time to test each item.<br />
<br />
* Additionally, now if the game has an error during load, it won't show a mishmash of all the gui windows all overlapping themselves in an insane and obviously-glitchy way. There is no functional difference between before and now, but it seems a lot less terrifying now if you're seeing it for the first time.<br />
<br />
* The loading log for how the game starts up is now more informative than ever, and on the long-running sections it actually shows a progress count rather than just hanging on those sub-parts. Sometimes those sub-parts can take 30 seconds or more on first run (though usually 4 seconds or so on subsequent runs), so having this feedback is pretty vital to this not feeling like maybe it locked up.<br />
<br />
* The alpha channel has been removed from a ton of images that didn't need it, letting the compression format be smaller on disk, in RAM, and in VRAM, as well as loading faster. This will definitely be kept, as it was useless data.<br />
<br />
* The max texture size for some of the non-diffuse texture channels for the ships are now cut way down from what they were before, to reflect the distances you typically see these from. This saves 300MB of RAM, disk space, and also lowers the VRAM requirements and makes rendering faster. It also makes loading vastly faster. This is definitely a quality/compression tradeoff, and we do still have the originals, so we may wind up making this an option or something in the future if it seems ugly to folks this new way. At a fairly casual glance by those who worked on the ship graphics, we can't really tell the difference, though; in side-by-side shots you would notice it, but that's about it unless we are mistaken.<br />
<br />
* The compression style for weapons effects and other sound effects has been changed to ADPCM instead of Vorbis, and these are now set to load on a background thread rather than the main thread. This makes loading vastly faster for the sound effects, although it does use something like 20MB of extra disk space. The amount of space used in RAM is identical, since we always decompress on load, anyway.<br />
<br />
* The voice acting clips are now set to stream in like the music does, as well as load on a background thread, rather than being preloaded or decompressed early. This actually saves quite a bit of RAM, and doesn't affect disk space, and saves an enormous amount of loading time. The downside is that it can cause a sub-second delay in playback of voice clips, but given the nature of a voice clip that is both imperceptible and irrelevant.<br />
** Different types of sounds have different characteristics and need different settings, and we've optimized these, in short.<br />
<br />
* Speaking of optimization, we're no longer doing full error-checks on load for each ship visual that is loaded in. That was time-consuming and pointless. In the ship designer windows it shows errors, and if someone commits a ship with errors that's something that is a goof on their part and not something we need every player machine checking for every time the game starts. So that saves another batch of time.<br />
<br />
* We're also doing another experimental thing, where with the solomesh ships we're directly using the asset bundle copies of the ships to get their meshes and materials, rather than instantiating a copy first.<br />
** Generally this is not advised, since it can cause a bunch of extra disk reads and other general slowness when accessing that data. However, in this particular case, since we're not actually accessing anything more than the data on these objects (we're not making copies of the object), we think it's not hitting the disk like that. We don't see any evidence of it in the profiler now, anyway, and we were in the past.<br />
** This speeds things up yet again, and so far so good on that front, but we may have to back this one out later.<br />
<br />
* Overall the loading speed of the game has more than doubled, in typical test cases thus far, and it actually is responsive while loading as well, which is an important first impression piece.<br />
<br />
* Fix a bug where the Nanocaust was never losing influence over a planet even after the constructor was destroyed<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Change the default colour of the Risk Analyzers<br />
<br />
* When the Human Marauders put Marauder Outposts on a planet, give them Influence over the planet (so it will be shown on the Galaxy map)<br />
<br />
* Initial commit of Dark Spire. Like in AIWC, it spawns ships based on energy it gains when ships die on a planet with a Vengeance Generator (VG).<br />
** Energy is tracked per VG. When VG energy > threshold it either shares energy with the VG with lowest energy or it spawns ships to attack. There's a Conversion Ratio when turning energy into ships; it starts out not very efficient (maybe 50% of the energy becomes ships), but every time a VG spawns new ships it becomes more efficient. <br />
** AI Overlords start with a Dark Spire Ward structure on their planets which prevents Dark Spire ships from going there. If a player destroys the Ward then the Dark Spire will be able to attack the AI overlord, thus giving you a new win condition.<br />
** Every so often the Dark Spire will attempt to spawn a Vengeance Generator Locus. The Locus will transform into a full Vengeance Generator in 5 minutes. If you don't kill the Locus in that time period then it turns into a Vengeance Generator. Planets are eligible for a Locus to spawn if they have no Human or AI ships on them, and they are adjacent to a Vengeance Generator without any human or AI ships on it.<br />
<br />
== Version 0.741 Music Part 1 Of 2 ==<br />
(Released April 29th, 2018)<br />
<br />
* The first half of the new tracks for the AI War 2 soundtrack are now in place: Abandoned Ship, Absolute Zero, Bouncing Lights, Event Horizon, Light Year, and Supercluster.<br />
** All by Pablo Vega, mastered by Dio, and all fantastic.<br />
<br />
* Update to Human Marauders behaviour. If they destroy all your forces on a planet then they will begin to construct Marauder Outposts which will spawn Marauder new units. This will make it harder to recapture planets. Every so often a new MarauderOutpost will be added, and existing MarauderOutposts will upgrade themselves to make stronger units. Note also that when the Marauders capture a planet they get a permanent boost to their MaxBudget, making them more dangerous.<br />
** If you allow the Marauders to get Mark 3 outposts then they will start getting Budget faster.<br />
** The balance levers are in XML for ease of use<br />
<br />
* The default game volume is now quieter in the hope of not deafening new players<br />
** Thanks to Flavin for the report<br />
<br />
* Improved the performance of music loading at the start of the game and during the game.<br />
<br />
* Fixed a regression in the prior version of the game where the first time any camera loaded a "traditional skybox" type of background, it would be solid black instead.<br />
<br />
* Fixed an issue where the construction part of the sidebar could show some stale data when switching from a planet with a builder to one without a builder.<br />
** Thanks to hawk for reporting.<br />
<br />
* Fixed a bug that nobody had reported yet with lightning attacks being very strange-looking and not like lightning bolts anymore.<br />
<br />
* Fixed a bug with the various type of geometry-based explosions (flak, lightning, etc) so that they now render additively in the transparent queue rather than the overlay queue, and so that they read from the zbuffer but no longer write to it.<br />
** This changes the effects a fair bit so that they no longer do things like eat into one another or the ship icons around them.<br />
** These will need further tuning to not be over-bright in huge battles, and they're on our list for further improvements visually anyway, but for now it's a good enough start.<br />
<br />
* Risk Analyzers: code tidying, also track the total and net AIP generated by Risk Analyzers. Eventually this is going to turn into 'When X AIP is generated by Risk Analyzers, do something unpleasant to the player', probably an exo wave, once exo waves are added<br />
<br />
* Map Types: Add a new planet placement mechanism for Simple and Realistic, and tweak one of the previous placement algorithms for Simple and Realistic<br />
<br />
* Fix some bugs with Marauders, where outposts weren't upgrading properly.<br />
<br />
== Version 0.740 Clean Up That Nebula, Young Man! ==<br />
(Released April 26th, 2018)<br />
<br />
* Fix some dumb bugs in the HumanMarauders faction that was preventing the marauders from correctly analyzing your planets to see which they should attack<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a bug where the Vis layer was not correctly setting the Shot location when we tabbed into a planet with the shot in flight; it was assuming the shots should be at the middle of the planet, which is manifestly incorrect<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fix a bug where where if a non-Nanocaust faction killed a unit that had taken Nanocaust damage, the killing faction would get the new zombie ship instead of the Nanocaust. <br />
** Thanks to OvalCircle for reporting<br />
<br />
* A new and frightening visual look for Usurpers has been added. These will be absent for a while until we get past the "Fun point" once Keith gets his first wave in place, but then we expect these to come back pretty darn fast, so we want them to look nice and scary). (These are the AI ships that recapture planets)<br />
<br />
* The infrequently-changed space backgrounds, and planet graphics, have all been moved into a new internal AIW2Scenery unity project, which saves us a _ton_ of time when actually building the gui asset bundles, or ship asset bundles, for the game.<br />
<br />
* The sound effects and voice acting files have all been moved out of the platform-specific projects, and out of the modding and gui project in general.<br />
** These are now in the GlobalBundles folder, which saves some disk space if you've got multiple OSes of the game installed at once. It also saves us time when pushing new versions of the game, and has less of a footprint on the system for everybody thanks to the modding unity project now being much smaller without all those files.<br />
** This does make some of the sound stuff a bit harder to mod, but we'll just throw that stuff up on github or google drive or something when the time comes. It's not worth inconveniencing everyone over putting it directly in the build.<br />
<br />
* There were a variety of old "space boxes" that were from back in the kickstarter days that were just... underwhelming. They were nicely colorful, but had kind of gross large stars in them, and in some cases just junky colors in general. These have either had their gross big stars patched out, or they've been removed.<br />
** Overall these have mostly been removed except for the best couple of them (which now have color variants!). <br />
** This saves about 200mb of RAM for something that wasn't looking so hot in general, and makes the game load faster, too.<br />
<br />
* Our middle-style "nebula sphere" type of backgrounds previously had a really bad problem with distortion on the starfields. This was just embarrassing, and led to some perfectly-fine spaceboxes looking really gross depending on the angle of view, instead. These have all been fixed up with a revised shader for handling those starfields as simple tiling rather than triplanar reading.<br />
<br />
* Our most recent, and best-lookg style of space backgrounds, which are based on traditional skyboxes, were absolutely HUGE, taking up more than 450mb on disk, and in RAM. Each one was 12MB of VRAM to render, as well, although that's unavoidable to keep the starfields crisp using a non-tiling cubemap like that.<br />
** We've now split these out so that the stars themselves are in a separate cubemap which is the larger size, and then the nebula parts are able to be a quarter of the size (half the side length) without any drop in quality. This adds 3MB of VRAM usage per draw (of which there is exactly one per frame), but saves over 300mb of disk space and system RAM during runtime, as well as making the game, once again, load faster.<br />
<br />
* 49 new space backgrounds have been added, based on 8 source cubemaps, to replace the ones that were taken away (though this actually adds back more than were taken).<br />
** The new skyboxes are way higher quality than the ones that were removed, is the main point, anyhow.<br />
<br />
* The starfield backgrounds on the galaxy map are now much more neutral, with mostly black and a little bit of white. Easier to see foreground objects on them, now.<br />
<br />
* Fixed a bug where once you viewed an old-style spacebox background, it wasn't letting you view any "traditional skybox" backgrounds, which explained the over-prevalence of the former.<br />
<br />
* The settings option for "background style" has been removed, as that's no longer really relevant to anything.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Final Pre-Beta Checks]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Pivot&diff=30909AI War 2:The Pivot2018-06-29T23:38:29Z<p>Keith.lamothe: /* Version 0.747 */</p>
<hr />
<div>== Known Issues ==<br />
* The lobby interface is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* '''Multiplayer is temporarily disabled''' while we focus on tightening up the single-player loop.<br />
<br />
* Arks are presently not used in the game, which means that also Chief Advisers are not used for now.<br />
<br />
* There are roughly 100ish ships/units that we still have not reimplemented from Pivot phases 3-5.<br />
<br />
* There are a variety of ships/units that don't have proper graphics or reuse icons at the moment.<br />
<br />
* There is not an in-game way to see and edit the control bindings yet.<br />
** But you can go into the created bindings file inside the PlayerData folder to edit them in a text editor.<br />
<br />
== What is this "Pivot?" ==<br />
<br />
The full details are on kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
<br />
The short answer is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
== Version 0.747 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Added the Advanced Factory and Advanced Starship Constructor back in, with AIWC-like mechanics.<br />
<br />
* Fixed a bug where special seeding logic (for capturables, among other things) would always put a unit at the dead-center of the planet if that spot was safe for placement.<br />
<br />
== Version 0.746 Disposing of the Invisible Man ==<br />
(Released June 29th, 2018)<br />
<br />
* A few tweaks to prevent nullrefs in hovertext over ships, and to make them work properly in build and tech modes, as well.<br />
<br />
* Further protection against some data garbling that could happen on worker threads, which led to things like AOE attacks striking ships on other planets from the current one.<br />
<br />
* Fixed an issue where newly-created ships that were rallying into a control group could rally to themselves if they were suddenly the strongest ship in the control group.<br />
<br />
* Fixed an issue with Infrastructure being spelled wrong.<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
* Put in a variety of protections against exceptions that could happen due to units no longer existing or being removed from any planet (aka the game) but having orders queued up for them and executed later.<br />
** Thanks to Ovalcircle and BadgerBadger.<br />
<br />
* Fixed a bug with 8 of the skyboxes that were causing nothing to render on their planets except wormholes. Uh... whoops!<br />
** Thanks to Ovalcircle and Badger.<br />
<br />
* Updated one of the really dark and pretty ugly skyboxes to instead be more white cloudy so that it's still faded out, but you can see more of what is going on.<br />
<br />
* Fixed the middle-mouse pan controls so that they act as expected; they were reversed as of the first pivot release.<br />
<br />
* Fixed an issue where if you upgraded a ship type (such as Fighter 1) to a higher mark (Fighter 2), it wouldn't keep the new level of fighters in all your queues. Now it immediately starts cranking out Fighter 2s instead of Fighter 1s after that upgrade.<br />
** Thanks to Badger for reporting.<br />
<br />
* There is now a brighter version of the colors that always shows when the game is writing text using a team color. This keeps text actually legible, while still giving the general feel of the player color in question.<br />
<br />
* Rather than showing the generic yellow strength color on the wave warnings, it now shows the color of the first AI faction in the game (waves are not attached to factions directly, apparently).<br />
** Ditto the colors now used on the attacking-my-planets warnings, except in this case it uses the color of the first-found attacking faction. Before it was using yellow for players and purple for AIs, but now it uses the colors that are more specific.<br />
** Same for the CPA notices now, actually -- instead of showing red text, it shows whatever the first AI color is, like the waves (by default this is actually red anyway). The actual icon portion is of course still red and white, since that's an icon.<br />
** Same also for on the galaxy map when you're viewing colors of unit counts on planets. For the threat color, if there is a hostile count AND threat count (aka on enemy planets), it draws the border color instead of the center color.<br />
<br />
* Fixed an issue with the text colors in the galaxy map over planets, as well as on the planet view over wormholes. They were being translated from gamma color space to linear color space incorrectly, and we're now using Color.linear to fix that manually on our end. Now the colors there match the colors on the UI parts of the interface.<br />
<br />
* The wormhole names now show all the time by default (like they did pre-pivot), since that's pretty helpful data.<br />
** If you prefer the more recent way of having those off unless you hold Ctrl, there is a new settings option you can disable.<br />
** Thanks to dv = i ln(w0 / wf) for suggesting.<br />
<br />
* Scout starships now provide some decloaking abilities around themselves, as in the first game.<br />
** Unlike in the first game, they are now unlocked by default from the start of the game. This way the players have some way to deal with cloaked ships on enemy planets.<br />
** Thanks to dv = i ln(w0 / wf) for suggesting.<br />
<br />
* Player tachyon arrays now have the same icon as AI tachyon sentinels.<br />
** Thanks to dv = i ln(w0 / wf) for suggesting.<br />
<br />
=== Wave 3 of 5 of the Pivot (Part 1) ===<br />
<br />
* Added Ion Cannons back into the game, with the old AIWC-like ion mechanic of simply insta-killing anything of a low-enough mark level (in this case it's actually mark level <= the cannon's, instead of strictly less-than, and the cannons are Mark 1 through 5 instead of 2 through 6).<br />
<br />
* Added the "Bulletproof Fighter" bonus ship type. Basically just a fighter that's immune to ion cannons.<br />
<br />
=== Attack Move And Group Move! ===<br />
<br />
* Added keybind "Group Move" (default G)<br />
** Normally when you give units an order to move, attack, or enter a wormhole they go as fast as they can. Hold this button down to make them go at the speed of the slowest (mobile) unit to whom the order applies. Ignores speed debuffs like engine-damage, tractors, gravity, or paralysis.<br />
<br />
* Added keybind "Attack Move" (default X)<br />
** Normally when you give units an order to move, attack, or enter a wormhole they pursue the target point/object without regard to (other) enemies. Hold this button down to make them stop to fight anything they run across (more specifically, any time they're reloading).<br />
<br />
== Version 0.745 A Pivot And A Leap Forward ==<br />
(Released June 27th, 2018)<br />
<br />
* This is the first release of "The Pivot," which you can read full details of on Kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
** The short description is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
* As part of this, basically all of the game content that was pre-existing has been removed, and we're adding new content in a fashion as described below.<br />
** The interface and such from before has been retained, and then greatly expanded as part of this release.<br />
** The underlying engine and whatnot that we built has also obviously been retained, and we've also expanded that where needed in order to support the new content.<br />
<br />
* Existing savegames are all broken now. With the game basically being redone from the ground up in terms of units and content, this seems pretty reasonable. Older savegames would have been incredibly strange in the new version, anyway.<br />
<br />
=== Wave 1 of 5 of the Pivot ===<br />
<br />
* Wave 1 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Note that this obliterates a lot of the game that was previously known as AI War 2, and we're going to be adding back to this rapidly.<br />
** Please also note that a lot of the graphics for the post-pivot stuff is still inwork, which includes both icons and actual ship graphics. We have a lot to do!<br />
** Lastly, please note that this is putting a variety of kinks in our current GUI, so there is work incoming on that, too. We're basically making a mess at the moment, so please excuse our sawdust.<br />
** The overall goal of Wave 1 of the pivot was to get an end-to-end playable version of the game. By that, we mean the MINIMUM possible possible playable stuff, to be clear.<br />
** Main things that were thus included:<br />
*** Removing all the ships that previously existed, and then adding as new:<br />
*** Command station mechanics, and home command stations.<br />
*** AIWC-style mechanics for the AI home command station.<br />
*** Upgradeable mechanics for other command stations (so we can do econ, military, etc).<br />
*** AIWC-style metal harvesters, the seeding of them, and all that.<br />
*** Ditching power and fuel, and going back to the AIWC-style Energy mechanic, and adding energy collectors.<br />
*** Going back to AIWC-style mechanics for the space docks.<br />
*** Fighters, Bombers, and Missile Corvettes; and with that, a framework for applying the old AIWC balance numbers on top of our newer xml balance framework (until the framework and the numbers can be made to meet in the middle)<br />
*** Warp Gates for the AI, those were already pretty much the same between games.<br />
*** Engineers, and all the AIWC-style mechanics associated with them.<br />
*** A variety of turrets from the first game.<br />
*** Tractor turrets, but this time switching to the older AIWC-style mechanics for how those work.<br />
*** Scouts, and the AIWC-style scouting mechanics.<br />
*** AI Tachyon Guardians, which are simply a new unit, although possibly this included a shift to the AIWC-style cloaking mechanics? Not sure on that one bit.<br />
*** Science Labs, and the AIWC-style knowledge-gathering mechancis.<br />
*** Colony ships, and the AIWC style of those working.<br />
*** Mine layers, and the rebuilder mechanics that go along with those.<br />
*** Guard posts for the AI, and the mechanics that go with that.<br />
*** Some of the AI guardians, and the AIWC style of guardian mechanics (AIW2 was previously wrapping guard posts and guardians into one thing, but now that's more split)<br />
*** Force field generators, and a return to the AIWC style mechanic (with those now being present at all in general, too.<br />
*** Starship constructors, nothing major different here between the two games.<br />
*** Some of the basic starships.<br />
<br />
* For the time being, in the xml and underlying data structures, we still have global fuel and per-planet power.<br />
** However, everything is just using the global fuel now, to be more AIWC-like.<br />
** On the interface, we are now referring to this global fuel as being Energy again, as with AIWC.<br />
** We'll see how this continues to evolve, but for now that was the simplest thing.<br />
<br />
=== Wave 2 of 5 of the Pivot ===<br />
<br />
* Wave 2 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Now we're building back up a bit more in terms of having the game more recognizable, but there's still a lot to clean up before we even release it to you.<br />
** New ships, with their attendant mechanics, added:<br />
** Scout Starship mk1-4, Stealth Starship mk1-4, Shield Starship mk1-4, Siege Starship mk1-4, Sniper Starship mk1-4, Carrier Starship mk1-4.<br />
** Arachnid Guard Post mk1-5, Missile Guard Post mk1-5, MLRS Guard Post mk1-5, Laser Guard Post mk1-5, Shield Guard Post mk1-5, Stealth Guard Post mk1-5.<br />
** Tachyon Guardian is now Tachyon Sentinel. Added Wormhole Sentinel, Data Center, Advanced Research Station.<br />
** Matter Converter, Mercenary Space Dock (and mercenary versions of relevant ships), Home Human Settlement, Human Cryogenic Pod.<br />
** Multi-Needler Corvette mk1-5, Eyebot mk1-5, Armor Ship mk1-5, Autocannon Minipod mk1-5, Lightning Corvette mk1-5, Grenade Launcher mk1-5, Infiltrator mk1-5, Laser Gatling mk1-5, MLRS mk1-5, Raider mk1-5, Raptor mk1-5, Sentinel Frigate mk1-5, Sniper mk1-5, Space Plane mk1-5, Space Tank mk1-5, Spider mk1-5, Vampire Claw mk1-5, Vorticular Cutlass mk1-5, Tachyon MicroFighter mk1-5, <br />
** Flak Turret mk1-5, Laser Turret mk1-5, Lightning Turret mk1-5, Missile Turret mk1-5, MLRS Turret mk1-5, Sniper Turret mk1-5, Spider Turret mk1-5, Beam Cannon mk1-5, <br />
** Tachyon Array, Stealth Tachyon Array, Focused Gravity Generator mk1-5.<br />
** Laser Guardian mk1-5 as a rename from Needler Guardian, Stealth Guardian mk1-5, Sniper Guardian mk1-5, Missile Guardian mk1-5, Widow Guardian mk1-5, Tractor Guardian mk1-5, Lightning Guardian mk1-5, Flak Guardian mk1-5, <br />
<br />
=== New Faction: Astro Trains (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Astro Trains'.<br />
** When enabled, a bunch of Astro Train Stations are seeded on the map. Every so often the AI will create a Depot, then begin to spawn trains that head to the Depot. Trains will travel between the Stations, then eventually to the Depot. <br />
** For some depots, a train will be required to go "near" a player if possible so that you always have a chance to kill them. Whether trains are required to go near the player is tunable on a per-Depot basis.<br />
** There will be a number of different types of Depots. Some produce an effect whenever a train arrives ("Increase the next CPA's strength", "Spawn some ships for the Warden Fleet", etc), others produce an effect after a certain number of trains ("If 4 trains arrive then spawn a Golem"). Depots are defined entirely in XML so it's easy to add new ones or change their balance<br />
** There will also be a number of types of Trains based on the defenses they have. At the moment there is only 1 (and it's misnamed, Keith hasn't added its weapon system back into the Pivot yet)<br />
** Eventually I'd like to have the Trains give you metal when killed, but that mechanic isn't added yet. <br />
** This faction intended to be a More Interactive and Fun version of AIWC's astro trains, which I always found rather frustrating.<br />
** For other modders, this faction is a great example to look to since it defines a new table in the XML, which allows for very complex behaviour.<br />
<br />
=== New Faction: Macrophage (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Macrophage'<br />
** This faction is an invasion of giant organic Macrophage. They prey on Metal, devouring ships and structures they come across, and in particular they prey on the AI (since you haven't encountered them yet). <br />
** Macrophage live in colonies called Telium, which are hidden from the AI. A Telium sends out Macrophage to harvest metal by destroying human or AI ships. When a Colony has been fed enough metal it will create cloaked and harmless Spores which wander the galaxy. When spores encounter spores from other Telium they can reproduce to spawn a new Telium.<br />
** They are hostile to humans and AI alike, but not very intelligent.<br />
** If a Telium produces enough Macrophage, some of the Macrophage will be transformed into an Aggressive form and then go try to kill the human player. If a Telium is destroyed, all of the Macrophages associated with it will attack the player.<br />
** This faction is a bit like reimagining the Devourer Golem as a part of an ecosystem.<br />
<br />
=== Dyson Rework (Thanks, Badger!) === <br />
<br />
* The Dyson Sphere now uses a "Metal income per second" mechanic to spawn units instead of just arbitrarily creating things at a time interval. This makes it much much easier to balance.<br />
** Changing the intensity of a Dyson Sphere changes the income per second; the balance numbers for a given intensity are now in the XML.<br />
* Multiple Dyson Spheres can be enabled at a time, and each can have a different colour and intensity. Enabling X dyson spheres divides the income of a given sphere by X so multiple Dysons won't be able to just crush the Galaxy.<br />
* Dyson Spheres can be Antagonized, like AIWC. If a Dyson Antagonizer exists, all the Dyson Spheres drop what they are doing and start sending units to attack you. Previously created Dyson Sphere ships will keep their previous alignment (so if they were friendly before, they will fight Antagonized ships)<br />
** Antagonizers are not currently created by anything yet, so don't worry about them showing up yet. I imagine one of the Astro Train Depots will create antagonizers eventually, but there may be other mechanisms worth exploring.<br />
* Each Dyson Sphere now has a max Strength Allowed based on the current AIP; the higher the AIP the stronger the Dyson can get. The tuning for this is in the XML<br />
<br />
=== New Faction: Mercenaries (Thanks -- yet again -- Badger!) ===<br />
<br />
* Add new faction for Mercenaries. The Mercenaries are a much fancier version of the AIWC mercenaries (which are rebranded as "Auxiliaries").<br />
* Mercenaries are groups of units defined in the XML that can be hired to come fight for you temporarily using metal or hacking points. We may define other costs for them as appropriate going forward. A small set of mercenaries are defined right now with no attempt for balance, just to illustrate the various options that exist. Each group has a name and backstory and different behaviour. Some only defend one planet, others patrol nearby worlds (and will go help any of your planets if they are attacked), others will kamikaze at the AI. Some groups consist only of turrets and engineers. One group is a large cloaked unit that can be summoned on an AI world which will hopefully distract the Warden fleet, but that's untested.<br />
<br />
* Options for mercenary groups that can be specified in the XML<br />
** On Spawn behaviour: Fight all enemies on a current planet, then warp out. Defend this planet. Patrol nearby friendly planets (they will detect attacks on nearby planets and go help). Kamikaze into the AI. <br />
** Planet summoning restrictions: Can only be summoned on a Friendly planet, an AI planet, a planet not owned by the AI, or anywhere<br />
** Seconds allowed to exist: mercenaries will only stick around for a certain amount of time (in seconds)<br />
** Times allowed to summon: If the Primary unit of the mercenary group survives to the end of its "Seconds allowed to exist" then you can summon these mercs again, up to a certain number of times.<br />
** Cost: Metal, hacking points or both<br />
** Spawn Delay: the mercenary group in question will appear after this many seconds<br />
** Primary/Secondary/Tertiary units: A mercenary group can have up to 3 unit classes. You set these classes with the "[primary|secondary|tertiary]_unit_tag" field in the XML. Note that a tag can be on multiple types of units, and it will choose randomly among them. For example, we might have multiple units tagged with "MercenaryFleetship", and specifying that as one of the unit tags will pick among those at random. You can specify either a specific number of units with that tag, a strength of units, or both. So for example, one might say primary_unit_tag="MercenaryFlagship" primary_number_to_spawn="1" primary_strength_to_spawn="2000". If the Mercenary Flagship units all have 900 strength then this will summon 1 + 3 (we round up when calculating how many units for the strength) = 4 flagships.<br />
** Class: Defense/Offense/Utility. This is future proofing, we don't do anything with it yet.<br />
<br />
*At the beginning of the game, a number of Mercenary Communicators (I am open to a more flavorful name) are seeded on the map. Each Communicator grants access to some unique mercenary groups. If you are holding a planet with a Mercenary Communicator then you can summon those mercenaries.<br />
<br />
*The two key advantages of mercenaries over regular ships are that they don't cost energy and they can be summoned more quickly. Also some may do other fancier things later (like the warden fleet distractor). There is nothing preventing someone from tweaking the XML to allow you to hire the Devourer, for example, as a fun alternate win condition.<br />
<br />
*How quickly the Mercs appear is tunable on a per Group basis (so we could have identical groups, one that spawns in 60 seconds and costs X metal, another that spawns in 5 seconds and costs 5X metal).<br />
<br />
* AIWC style mercenaries are rebranded as "Auxiliaries"<br />
<br />
=== Marauders Expansionism ===<br />
<br />
* When the Marauders capture a planet, if they get up to Mark III outposts then they will begin spawning Raiders, powerful starships that will attack weakly defended nearby worlds. So if you give the Marauders and inch they will expand rapidly (the ideal case is "You've cleared out a bunch of planets but haven't captured them, and the Marauders will build an empire there if you don't watch out").<br />
* Make Marauders hostile to everyone. This means that neutral planets or weakly defended AI planets are eligible to be captured by the Marauders. Remember that the Marauders capturing a planet will permanently strengthen the faction.<br />
** Thanks to Ovalcircle for the suggestion<br />
<br />
=== Misc Bugfixes ===<br />
<br />
* Fixed an oversight in some of the recent versions where the Dyson Sphere was missing its cage. It now has a shiny (literally) new material on it.<br />
<br />
* Slight rework of the Autosave code. You now can specify the interval for autosaves and the number of previous autosaves to keep. So if I want to take autosaves every 10 minutes and keep the last 6 then I'll be able to easily jump back to the game up to an hour before. The goal is to make it easy to savescum efficiently and effectively ;-)<br />
<br />
* Provide a workaround for the problem where people who had last used a no-longer-extant map type would hit a crash when they start the game. Those deprecated map types are now defined (so it won't cause a crash anymore), but hidden by default so they can't be selected.<br />
** This was reported by numerous people, including Valeroth, Clasmir, zeusalmighty and probably others<br />
<br />
* Fixed a since-forever bug where ships fast ships that wind up needing to move to not overlap something would start bouncing around like they needed to go to the little starship's room.<br />
<br />
* Fixed the scales and collision radii of the assault starships.<br />
<br />
* For now at least, the bobbing of ships within squads has been turned off. As steam user Bucketsmith pointed out, it looked too much like ships on the ocean. It was meant to give a sense of life to the ships, but after he pointed this out to us, we couldn't stop seeing it, either...<br />
<br />
* The game now has proper settings on all the ship renderers for dynamic occlusion, motion vectors, shadows, etc. This should lead to a slight performance bump.<br />
** The editor has also now been set up to detect incorrect settings for these.<br />
<br />
* We had some extra uv2 and color and so forth channels on about 510 of our meshes, and we've now removed those. The amount of data was small, but it was useless info to be sending to the GPU since our shaders don't read from those. Every little bit of data shaved off when you're pushing millions of polygons on a millisecond scale is a win, not that it was causing problems in our testing thus far.<br />
<br />
* Fixed a bug where the single-ship-in-a-squad units were not being properly scaled down location-wise.<br />
* There was previously a bug in the profile screen where it was reversing what your body and trim color selections were on the box-based examples.<br />
** The icon-based examples were fine, but now the boxes have been corrected to match the icons.<br />
<br />
* Fixed a likely-longstanding bug where the scale of ships would drift smaller and smaller the longer you played, depending on how many times pooled ship visual instances of that type were reused due to deaths or due to switching in and out of the galaxy map view or between planets. Some went extremely fast, such as the recently added AI command stations. We suspect this is also what was going on previously with the warp gates.<br />
<br />
* Previously, the icon scales could sometimes be incorrect when tabbing back from the galaxy map, until you scrolled the camera around a bit. Fixed.<br />
<br />
* The placement mode icons were never scaled up or down to match the size they would be once placement was complete. Fixed.<br />
<br />
* Fixed a since-forever bug where the colors of icons in the main view were lighter than those in the sidebar. Turns out it was not color grading being applied, but rather that we were passing in our Color type parameters as Vector4s. This worked, sort of, but the typo wound up transposing the data slightly for some reason. Why it didn't just function correctly or fail completely is a solid mystery, to be honest.<br />
<br />
* Fixed an issue where opening savegames that were originally saved in a different campaign name but have been manually moved to a new folder were using the old campaign name instead of the new one as far as "continue last save" was considered.<br />
<br />
* Previously, if continue last save was not able to load the last save because it couldn't find the file, it was not showing any error. Now it tells you what the issue is.<br />
<br />
* In the game setup screen on the galaxy map, it no longer shows the colors of any factions other than player planet names (since in games with a lot of factions that actually gives away info).<br />
<br />
* In the game setup screen on the galaxy map, it now shows the player names under each planet name controlled by one.<br />
<br />
* Once into the game, it no longer shows the color of the faction on the other side of a wormhole if you've never scouted that planet at all.<br />
<br />
* Fixed an issue with the little bottom-left menus where the mouseover of elements behind them could sometimes happen because there were cracks between the buttons. Now there's a backplate behind the entire windows in those locations.<br />
<br />
* The underlying flag under the queue pause button was not actually implemented (it may have previously been the loop flag), so it didn't work; now it's implemented and works to pause that queue. Incidentally this does not disable any other functions of the building unit, unlike in AIWC where it was done through the general "disable everything" mode<br />
<br />
* Removed requirement that you have had units on a planet before you can send units there on the galaxy map (leftover from the sensor-scrambler scouting model)<br />
<br />
* Fixed a bug where the game was still trying to seed design-template-servers when the AI unlocked something new, despite those not currently being defined in the game, and thus throwing errors<br />
<br />
* Fixed a bug where AI ships freed by a minor faction still just went after the humans<br />
<br />
=== Misc Improvements And Additions ===<br />
<br />
* Added a new IGameEntityDescriptionAppender, which can be linked up using the new xml tags description_appender_dll and description_appender_type.<br />
** One example is presently in place with the human home command station and a test class called AnyUnitExampleAppender.<br />
** This is something that can be used for adding arbitrary unit-specific or class-specific dynamic text to the description of any unit or unit type. This is likely to be widely useful as we build out the UI later on, because we can put in context-specific warnings and commentary, for instance.<br />
<br />
* If a ship has been shot to death into remains, it now says REMAINS in red after the name of the ship in the mouseover, and it tells you what the remains means and that you need a remains rebuilder in the description text. Otherwise this was absolutely mystifying as to what was going on!<br />
<br />
* When ships are under construction directly on the battlefield, it now shows the health bar to show the progress that they are making towards completion. Holy cow did things feel incomplete without that.<br />
<br />
* Hey, does the scale of the grav wells on planets feel too small to you? Here's how you can tune the numbers. For example, at the moment we've doubled the size of the grav wells, and we'll see how that feels. To do the doubling, since that's simple math, here are the changes:<br />
** GameData/Configuration/ExternalConstants/KDL_VanillaConstants.xml<br />
*** distance_scale_gravwell_radius 13000 to 26000 (This makes the sim-level grav well twice as large, but if you just change this then visually things will draw very wrong. Must be an integer.)<br />
*** asset_base_unit_radius from 100 to 200 (This makes the units draw half as large as they previously were. It has to be an integer).<br />
** GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml<br />
*** combat_visual_scale_divisor from 10 to 20 (This makes the position of units, and the size of their selection radius, all make sense visually. Whatever multiplier you apply to distance_scale_gravwell_radius, apply the same one here).<br />
*** forcefield_visual_scale_divisor from 5 to 10 (Same deal, forcefields will look the wrong size if this isn't adjusted).<br />
** There actually may be a few other settings that we overlooked, but hopefully this is a comprehensive guide. If not, we'll update this in the future if we discover a hole.<br />
<br />
* Selecting a constructor unit (like the Space Dock or Starship Constructor) will automatically open the Build Tab on the sidebar. It was really annoying to click on a constructor, then realize you need to also click on the Build Tab. Note that hitting "B" is more efficient than clicking on a constructor anyway.<br />
<br />
* Dark Spire: Different factions produce different amounts of Energy when their units kill or are killed. These values are tunable in the XML. The AI or players units produce more energy than minor factions like the Macrophage, Devourer or Nanocaust.<br />
<br />
* In the planet view, linked planet names are no longer shown over wormholes unless you are holding down the ctrl key. Thus you can easily see the names, still, but they aren't cluttering up your view all the time (and making the gravity well feel smaller in the process). This also has the benefit of making it really obvious when you can click to send your ships or camera through the wormholes.<br />
<br />
* Now that warheads are no longer a resource that should be shown on the top bar, we're bringing back the attack warning/numbers up there. This shifted around several elements on the top bar, spatially, but put the new attack warning in the bottom right of that bar.<br />
** Slightly different from the first game, the new attack indicator shows the number of hostile enemy ships on ANY player planets, not just those you own. That seems relevant. It has three states: a greyed-out "nothing's here" safe shield with checkmark, a yellow and orange "things are here, but not on your personal home planet," and then a red and white warning "there are at least some of these guys on YOUR home planet."<br />
** Undoubtedly we'll adjust this some over time. One oddity you'll notice is that the frequency of the flashing of the text in this field is inconsistent. That's unfortunate, but a side effect of the way that unity dirties its GUIs rather than drawing every frame, along with the multithreaded queued approach we take on top of that.<br />
** The tooltip will list all your planets that are under attack sorted by the strength of the attack<br />
<br />
* The quick start button now actually works, although it goes to the same location as the custom start. A tooltip notes that the quick start variant is coming soon. However, some folks were confused and not thinking to go to the custom start, so here we are.<br />
<br />
* On the galaxy map and in the planet view, the icons for ships now are rotated to billboard toward the camera on the GPU instead of on the CPU. This saves an enormous amount of processing when there are many icons, and means that we can update the scale of icons more rapidly even when there are many many icons on screen -- getting rid of that delay in rotation/scale that was seen in prior versions of the game. There still IS a delay built in, just in case you absolutely flood your screen with icons, but it shouldn't be hit in normal gameplay (or if it is, we'll adjust this further based on profiling of said savegames). Additionally, since the rotation is run on the GPU, that means that CAN'T happen any way other than instantly, which is nice.<br />
<br />
* The color picker UI has seen a number of updates:<br />
** The individual color cells are now far smaller, letting you see tons more of them at once, and feeling more like traditional color pickers.<br />
** The selected color cells no longer blink their main color, but instead blink a little border around them. It's a lot more obvious what is going on now, and no longer seems like a bug. The flashing is still needed because the borders get lost in the riot of colors, otherwise. Hazard of having so many options.<br />
** There is now a section of preset options (combos of body and trim colors) down at the bottom of the screen. These give attractive options that also don't conflict with any of the NPC factions. This is one of those things that makes the game infinitely more usable.<br />
*** There are eight of these right now, but it's possible to define more via xml.<br />
<br />
* The in-game tooltips for planets and units/objects now shows in the bottom left, as it previously did in AIWC.<br />
<br />
* The selected ships notice now also shows up down at the bottom of the screen, where the tooltips do. It only shows if a tooltip (or the escape menu) is not showing. This saves important space in general, and also paves the way for the notifications bar up at the top to finally have room.<br />
<br />
* Scouts have a much higher movespeed than anything in the game, so the approximation for lerping squad movement was much higher than anything else. This caused scout movement to feel very jerky. Instead we put a cap on the fastest possible visual movespeed for a squad.<br />
<br />
* Fixed a bug deep in the bowels of our UI code that was leading to a lot of higher-level bugs with things being positioned incorrectly, etc. The most recent manifestation of this, in the working versions of the pivot build, were un-owned metal desposit spots showing up half off the sidebar.<br />
<br />
* Added a new "Owned by Nobody" section on the ships section of the sidebar, since that's a legitimate fourth category. Golems that nobody controls yet, un-owned metal spots, etc, etc.<br />
** Also new, the items in this category can be seen on the sidebar if you've ever been to the planet before, even if you don't have vision of the planet right now. This is pretty handy.<br />
<br />
* Engineer and Rebuilder FRD now works (though their prioritization leaves something to be desired)<br />
<br />
* AI planets directly adjacent to a human homeworld no longer seed guardians or sentinels, to match AIWC (AIWC had wormhole guard posts, now known as wormhole sentinels, but their omission is not significant)<br />
<br />
* Guardian counts have generally been significant reduced, and are now proportional to planet mark level as well as number of guard posts<br />
<br />
* A bonus ship type can now be selected for each human faction (currently you have to click "more" to get to this, since the space is already taken by the two color dropdowns and the Ark dropdown)<br />
<br />
* You now start with 10k science, and all weapon turrets (except beam), to parallel AIWC<br />
<br />
* Your command stations will now automatically claim metal spots, to better resemble what happened after capturing a planet in AIWC.<br />
<br />
* Made the planet view cursor code moddable and open source.<br />
<br />
* Constructors can now be set to rally units they build to either an already existing control group or to a point chosen by the player.<br />
<br />
=== Keyboard/Mouse Input Overhaul ===<br />
<br />
* Previously we were using some middleware called Rewired, which was bulky and inflexible in a variety of ways. It's super useful if you want to handle a bunch of gamepads and in particular if you want to have design-time-defined controls. Our use case was diverging enough that all it added was bloat, though, because we had to write our own runtime-control-definition layer, poll the list of all our controls while it polled all the keys under the hood, and other messy things like that. So Rewired is out.<br />
<br />
* We brought in what started as EasyInput from ootii as replacement middleware, then pared that down to just the keyboard and mouse bits. We then basically rewrote the entire thing so that it's more efficient, uses no dictionary lookups during the game loop, and is compatible with all the things we want it to do for this game. So ultimately we wound up just kind of creating our own.<br />
<br />
* The new input system has a lot of performance benefits, but one of the biggest things it will do is make it easier for us to define all of the keybinds in xml, no matter how many we have. All of the keybinds that were previously hardcoded have now been moved to xml.<br />
** It was previously somewhat difficult for us to check if something was just pressed, just released, being held, etc, in an efficient and automated way. This is now something that can be directly specified in our xml definitions for the keybinds.<br />
** We also have a new Custom type of key check, which basically skips the whole Handler reflection-linking process and instead just lets classes elsewhere in the code get an object reference to that key and then check it as needed. This is very useful for modifier keys of any sort, and for all of the camera controls.<br />
<br />
* Work has also been done to prep this for an actual interface for viewing and editing keybinds in game. We'll get that in place prior to Early Access, but for now we have a few other fish to fry.<br />
<br />
* A variety of bugs relating to keys that could be triggered on the main menu that were only supposed to be in-game have been fixed.<br />
<br />
=== Galaxy Map Improvements ===<br />
<br />
* The galaxy map is now using a purely top-down camera with the ability to pan and zoom but no ability to tilt or rotate the view. There have been a number of valid issues brought up with the existing galaxy map, and we're starting to work through those now. Lots more to come, but here are some of the first bits.<br />
<br />
* Players can now see the entire galaxy map structure -- meaning the actual planets and their wormhole links and lines -- from the start of the game.<br />
** This is the same data you see in the lobby, so it was always strange that we took it away after the game started in Classic and this game.<br />
** This does NOT grant you any actual visibility on the planets as to their contents, owners, resources, ships present, or anything else.<br />
*** Aka, this is not a reduction of fog of war, it's just the ability to see the shape of the battlefield, same as you already could in the lobby.<br />
<br />
* Previously, on the galaxy map it would take you into the planet view as soon as you clicked a planet, unless you held Alt. This was not helpful for a variety of reasons, so based on user feedback it now by default just switches which planet is selected but doesn't change the view unless you hold Ctrl.<br />
<br />
* When you are on the galaxy map, it now only shows the name of the planet you are currently viewing unless you hold down the ctrl key. This is a lot more like the first game, and is way less cluttered.<br />
** In the lobby, it shows the names for all human planets, with their colors on there.<br />
<br />
* You can no longer zoom the galaxy map so far in, you start further zoomed out, and you can zoom out further.<br />
<br />
* On the galaxy map, the visuals for the planet are now 4x larger, making them easier to see at farther zoom ranges. This is essentially the same as making the planets "closer together," so to speak, in its effect on how you view the map.<br />
<br />
* Rather than drawing the literal visual of the planet on the galaxy map, which turned out to be fairly pointless, we now draw icon-like 3D models in place of them.<br />
** These show the color of the owning party for the planet, if there is one, and they show a different icon for unscouted (ever), regular, and homeworld planets.<br />
** The regular-planet icons are a bit different for marks 1-5 of regular planets, incidentally (anything over mark v shows the mark 5 graphic for the planet itself). These help give you an indicator of the strength of planets when they are in the hands of the AI.<br />
*** After you capture a planet, it still retains its graphical styling for what mark level it used to be, which is a subtle but cool way of showing your progress in the past.<br />
<br />
* On the galaxy map, the selection ring is now fancier, easier to see from a distance, and it rotates to make it even more obvious where it is.<br />
<br />
* The "king unit" no longer shows up next to home planets on the galaxy map. Instead, now the planet itself is showing up looking different. It's a lot easier to tell what the heck is going on, now!<br />
<br />
* The text on the galaxy map that shows the strength at planets is now a lot more clear, and more useful in general. Before it just showed the amount of threat at any given planet, period.<br />
** Now it shows a yellow row with a strength icon for any allied + self units that are on that planet (or omits the line if that total is zero).<br />
** In the same fashion, it shows a purple row for any threat on the planet IF you currently have vision there. Or omits the line if none.<br />
** And also in that same fashion, again if you have vision there, it shows a red row for the total of hostile strength on that planet that is NOT threat.<br />
** Now you can actually see what sort of dangers there are to your planets, which planets of yours are outnumbered, and all sorts of other useful things like that!<br />
** It actually shows the strongest forces (allied or enemy) on the top or bottom. It doesn't sort the threat vs not threat, but moves those as a bloc.<br />
<br />
* Also adjusted the placement of the "lower text" on the galaxy map to be centered right below the planet name, rather than down and to the side. Previously it often looked like the threat counts were located at some other planet instead of the planet they were actually on.<br />
<br />
=== Camera Improvements ===<br />
<br />
* The camera in the planet view has been something of a bugbear for a little while, because there were a variety of things that could go wrong with it. But even more than that, it was using a TON of keys on the keyboard: WASD and the arrow keys for movement, Q and E for rotation, and R and F for tilt. Time for revisions!<br />
<br />
* One of the new things that was most interesting was the idea of a "tilt and rotate" mode, rather like what happens if you hold the right mouse button in Planet Coaster. We can't really use the right mouse button that way, and the middle mouse button makes more sense as the existing "grab and pan" functionality, so we've defined the mode modifier for that as Q now, or Mouse4 if you have a 4+ button mouse (those are awesome, incidentally).<br />
** Along with this change, the default bindings for rotation and tilt are simply set to nothing. If you want to bring back the Q and E and R and F the way they were, that ability didn't go away, but we're claiming those keys for other things instead (Q is already the tilt and rotate mode, whereas the others are unbound at the moment).<br />
<br />
* Along with this, zooming out could potentially put you out of bounds previously, if you had the camera tilted sideways a lot. Now when you zoom out, it un-tilts your camera to avoid this happening. Most other games do this same thing; technically it wasn't zooming out before, but just backing up laterally, anyway, if your angle was shallow enough. Now it actually always zooms out.<br />
<br />
* Previously it was possible for sometimes the mouse wheel to give way too much input in one frame, and send you shooting forward. Probably this was happening directly during a long Garbage Collector frame, although we're not sure. We've put in some safeguards to prevent this from happening, although if it is caused by something other than what we guessed then it will still happen and we'll have to add more safeguards elsewhere.<br />
<br />
* There's a new setting for the tilt/rotate mode that lets you set the sensitivity of that.<br />
<br />
* The "free look camera" stuff has all been commented out for now. We could in theory bring that back, but it felt awkward and was not really needed, ultimately. This removal also helps the settings menus be a little less overwhelming when it comes to camera options.<br />
<br />
=== Notifications Bar Added! ===<br />
<br />
* The wave and CPA warnings are back! Actually, they never were quite in the game in this fashion showing a proper countdown. They show a little icon and number box in the upper left of the screen, which you can hover over for more info.<br />
** Clicking on them takes you to the planet that is involved, if it's a specific planet.<br />
** For waves, it shows you the planet it is headed to, and it strength, on the notification badge itself. For CPAs, it just tells you a CPA is coming and when.<br />
** For these, it has a tooltip for each of them that tells you what a CPA is if you don't know, or what the composition of the incoming wave is if it's a wave.<br />
<br />
* The notification bar now includes entries for planets of yours that are under attack, and shows the total strength counts for those ships that are aggressing and those that are defending.<br />
** These are color-coded, and whichever is on top is stronger, so you can tell at a glance if you should be winning this fight (on paper; positioning and tactics are important if the numbers are close, of course).<br />
** The icon for this is different if it's your home planet versus one of your other planets, so this is yet another source of visible warning when your home planet is under attack.<br />
** As with the wave warnings, you can click these to immediately go to the planet in question.<br />
** The tooltips for these show the name of the planet that is being attacked, who the attackers are, who the defenders are, what small ships, large ships, non-combatants, and strength each participant has, and what critical infrastructure is located here for the defenders.<br />
*** Big thanks to Eric for designing all of these things (as with almost all of the GUI now, but this in particular is super cool).<br />
<br />
* There is now a general-purpose framework where developers and modders can add items to the notification bar from any faction.<br />
** This is useful for a variety of things, ranging from alerting you that a trader is visiting a planet and wanting to trade, to telling you marauders are after you, to other things of that nature.<br />
*** Note that we're not using it for any of those purposes yet, but the capability is now there -- and the first proof of concept is actually the planet under attack notices.<br />
<br />
* We now have the concept of critical infrastructure, which are simply items that you get warned about in the tooltip when they are on planets of yours that are under attack.<br />
<br />
=== Visual, Audio, and Workflow Improvements ===<br />
<br />
* The icons for ships are now just stored once in the game, at a single size, rather than twice at two different sizes. This makes it a lot faster for us to update the icons, and uses a bit less disk space.<br />
<br />
* Added a new visuals_scale_multiplier xml entry for GameEntities that lets us scale up or down entities as we wish for whatever purposes.<br />
** One of the biggest uses is so that we can have fewer prefabs that we have to initialize and keep in memory for ships that grow in size but nothing else during mark-level changes.<br />
** This is now in use on the AssaultStarship and the NeedlerGuardian, which are the only two ships re-implemented at this point for which this is relevant.<br />
<br />
* The tractor turrets look so cool that we've made them a bit larger and made it so that there is only one per "squad" on them. They look like they individually mean business as it is.<br />
<br />
* The visuals, icons, and scales for engineers, rebuilders, and human cryogenic pods are all now in place.<br />
** Note that only engineers and rebuilders are actually in the game yet.<br />
<br />
* Adjusted gimbal_base_scale from 2 to 2.5 in GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml so that the gimbal icons aren't so darn tiny. This seems to feel more like AIWC, now.<br />
<br />
* Human scouts and AI tachyon sentinels now have their graphics in place.<br />
<br />
* Added a new y_offset_of_ship_in_formation xml tag, which allows us to raise and lower ships from a squad as a group. This is useful for really tall structures, for instance.<br />
<br />
* Added the visuals for all of the command stations (AI, basic human, economic, logistical, military, warp jammer, human home, human home core).<br />
** This was quite a task to pull off in a satisfying yet recognizable way, but we finally have it. Basically these needed to be larger and more epic, yet stand out and not have too many polygons, etc.<br />
<br />
* All of the icons for the new command stations and such are now in place, and the icons for command stations show larger than other icons on the planet. The icons for the king units now show even larger. There are also different icons for each type of command station, in such a way that you can easily tell something is a command station, but also that it is some other kind of command station beyond the basic sort.<br />
<br />
* The voice_group xml tag that specifies what voice is used for ships is now required. For non-human-controllable ships, just using Silent is preferred, although it doesn't really matter since these voices only happen when a human player gives orders to the ship in question.<br />
** Previously these were partly defined on the weapon types, but this was far too broad a way of doing it (and had stopped working on our internal versions as part of the Pivot anyhow).<br />
<br />
* Visuals have been created for the energy collector, matter converter, science lab 1 and 2 (though only mk1 is in the game), raid starships mk1-4, metal harvester (and empty version), tractor guardians mk1-5, scout starships mk1-4, home human settlements, and hackers (though hackers are not in the game yet).<br />
<br />
* The visuals for the colony ship are now in place.<br />
<br />
* There are a lot more Arcen-based header menus in unity now for us to speed up repetitive tasks. Also ones for opening folders, and in general letting us work faster and with fewer clicks to get things done.<br />
<br />
* The icon definitions no longer need a _border entry in xml. They still need the actual files, but the game can find them just based off the original icon entry. Yay less typing and chances for typos.<br />
<br />
* Wormhole scaling-up has been removed, and will be replaced by a far-zoom icon like ships/squads get.<br />
<br />
* "GenericObjects" can now have a list of AlternativeMaterials specified. <br />
** This is used for the wormholes in particular so that they can change colors and cubemaps in order to represent different things, or even being hovered.<br />
*** On the wormholes, if you look into them, you'll see a distorted view of actual images from the ESA/Hubble, used with attribution. It's a neat little detail, and you have to get extremely close in to see it.<br />
<br />
* The wormhole visuals have been completely redone AGAIN, probably for the last time this time. We're using something called Scingularity, heavily modified for our purposes.<br />
** The wormholes are drawn using a single untextured quad, which then does a ton of math and uses a cubemap for the center of the singularity, and then a pixel shader to do the outer swirl. Because of this, it looks fantastic at any zoom level. And amazingly, it performs well. You don't need any special hardware.<br />
** In our case, we're using those EA/Hubble images noted above for the center of the wormholes, and then different normal maps for swirl patterns on each color of wormhole, and different colorizations on the wormhole swirls to indicate different things.<br />
** Greenish ones go to enemy planets, darker blue ones go to your planets, lighter blue ones go to allied planets, red/orange ones have a wave incoming, pale green ones go to allied or neutral NPC factions, and white goes to unowned planets.<br />
** When you are hovering over the wormhole -- which requires you to be holding ctrl down, incidentally, so that you can send either the camea or units through it -- then it glows at a much brighter temperature. Makes it far easier to know if you're actually hovering over it.<br />
<br />
* At long last, your choice of colors in the profile menu actually means something! Whatever you select on your profile for your body and trim colors are now used next time you go into the lobby.<br />
** The lobby is still the outdated style with the dropdown for colors, but now it has two colors there for your choosing, too. Using it that way is not ideal, but we'll get to that in the next few weeks.<br />
** For now, it's a very happy thing that we finally have two-color player colors in the game!<br />
*** For each place text is using the colors, it just uses the body color right now.<br />
*** There are presently be some issues with the icons in the main not matching the colors exactly, which is probably due to color-correction post-processing. We're going to be shifting those icons into the GUI camera soon anyhow, so that should solve that when we do. Until then, everything looks washed out in the main icon view.<br />
*** When it comes to showing that a unit is hovered-over, it now goes darker or lighter depending on whether its average color is greater than or less than half brightness; this is instead of the <br />
*** When it comes to showing that a unit is selected, it now adds a border around the mark level icon itself, and brightens the border of the unit color.<br />
** As an aside, when you change the colors and hit OK in the color picker in the player profile screen, it writes to the underlying log what the color selections are called. You can then use this in xml defaults if you're doing modding. Otherwise this doesn't affect you.<br />
** For all of the special factions, AI factions and subfactions, humans, and so forth, there are now default colors! With the two-tone colors we were able to do a lot more theming and nuance.<br />
*** Player colors are going to need to include some defaults for people to choose from, since it can be time-consuming to do so otherwise and you don't know if you're potentially selecting something similar to another faction's defaults. Providing some quick-pick attractive defaults is on our list prior to EA; we already have 8 sets of colors, but the interface isn't updated for that yet.<br />
<br />
* The icons for all ships have been improved, with more darkness and light on them, and more layers of borders and sub-borders, to make things really have contrast and stand out so that they are more legible.<br />
<br />
* Put in a fix to our spritesheet for the ship icons so that now there is substantially more padding in them, fixing some bleed-over between sprites (causing line artifacts, etc) at smaller mipmap levels (when an icon is shrunk a lot).<br />
<br />
* The game finally has "burning and dying" effects on the ship icons as they are killed. Thanks to Badger for continuously pushing for this, as well as for implementing the timing code portion of this. This really helps make the battles both more dramatic from the far zoom view, as well as frankly clearer what is going on.<br />
** We implemented this in completely open-source code between the C# and shader bits, so it can be tuned by other folks if desired. We though about using a ramp texture, but wound up going with a series of lerps between vector4s instead.<br />
<br />
* The font for the mark level numbers has been changed again, and looks much better now.<br />
<br />
* On the sidebar, the strength number is now shown abbreviated instead of written all the way out -- we're trying to standardize on that everywhere, as it's the easiest to read.<br />
** This also now applies to the resource bar at the top of the screen.<br />
<br />
* Fixed a variety of places that were incorrectly using the strength per subsquad instead of the strength per squad -- including in some of the targeting logic for ships.<br />
<br />
* Fixed a bug with the ships tab of the sidebar where it was including the strength of noncombatants in the total strength for the planet, which was not remotely useful. Now it just shows the strength of combatants, like everywhere else, which gives you a much more valid picture of the battlefield. Defensive strength of noncombatants is kind of incidental to that.<br />
<br />
* At a few places in the game, we were showing "Human Remnant" as the faction name instead the name of the player in question. Now we show the player name.<br />
<br />
== Version 0.743 Music Blooms ==<br />
(Released May 2nd, 2018)<br />
<br />
* The second half of the AI War 2 soundtrack is now in place! These pieces, as specified in the kickstarter, are all remixed/remastered versions of tracks from AI War Classic. In there we have the Defeat and Victory tracks from the first game, Nomad Sunrise from DoW, Intro and Midnight from the base game, Night Light from LOTS, Rising Up from VOTM, and Voyage to Zenith from TZR.<br />
** With this, we're now also distributing the full soundtrack (plus a variety of bonuses!) to all those backers who signed up for it. You should have an email with that link, and/or be able to see it in your backerkit profile page: https://aiwar2.backerkit.com/<br />
<br />
* The game now actually plays defeat music when you lose.<br />
<br />
* When you win, the game first plays the For The Fallen vocal track, and then goes into the from-Classic Victory track, then goes on to play regular music from the in-game rotation.<br />
** When you lose, the game plays the defeat track, then also goes back to the regular in-game rotation.<br />
** These two changes are aimed at people who want to keep playing after a victory or loss, which are a not-insubstantial number of people.<br />
** We actually have not tested this bit at all, so, uh, if it doesn't work properly like this then please do let us know and give us a savegame. We're kinda busy on a lot of fronts right now! Normally we unit-test things, though.<br />
<br />
* We're now internally using the Asset Bundle Browser to help us find trouble spots with overlarge pieces of data in our asset bundles that we're building for the game. This helps with load speed, runtime efficiency, and asset bundle build speed.<br />
** On github: https://github.com/Unity-Technologies/AssetBundles-Browser<br />
<br />
* Slightly improved the efficiency/size of the effects asset bundle.<br />
<br />
* Reworked the bloom effects to use the Natural Amplify Bloom effect rather than the Realistic one. This, plus a couple of other tweaks in that area, lead to something that still has bloom, but is a lot more subtle than before. Some folks were complaining about that with the teaser trailer, and we can see their point.<br />
<br />
== Version 0.742 Hotfix ==<br />
(Released May 1st, 2018)<br />
<br />
* Fixed a bug where the total seconds to load was only being reported in output.log, and not in the ArcenDebugLog.<br />
<br />
* On the main menu, it now shows how long it took to load the game, and you can hover over that to get details if you want. The "logged in as Steam user" info is right below that, and both are a bit smaller now.<br />
<br />
* The loading feedback on the sound effect items and graphics items are now more coarse, leading to faster overall loading times compared to the last internal versions.<br />
<br />
* The method for tracking how much time has passed has been adjusted to use DateTime.Now instead of the Stopwatch class, since we had some questions about accuracy.<br />
<br />
== Version 0.742 Darkly Loading Spire ==<br />
(Released May 1st, 2018)<br />
<br />
* Rather than looking like the application is hung when it starts, the game now shows the loading progress in the form of what it's doing at the bottom. It doesn't show a loading bar, but it does show a counter of how long has elapsed, and how long specific long-running bits are taking.<br />
** This is useful both for us to know in terms of telling when something is overly slow to load, and it also gives players something to look at and a cue that there's not just a frozen application in front of them.<br />
<br />
* Surprisingly, the sound effects loading is taking twice as long as the loading of the graphical data right now (9.6s versus 4.4s on Chris's machine), so this is already an example of where we can optimize our loading speeds a bit, which saves everybody a lot of grief and saves the devs here time staring at the screen when it's time to test each item.<br />
<br />
* Additionally, now if the game has an error during load, it won't show a mishmash of all the gui windows all overlapping themselves in an insane and obviously-glitchy way. There is no functional difference between before and now, but it seems a lot less terrifying now if you're seeing it for the first time.<br />
<br />
* The loading log for how the game starts up is now more informative than ever, and on the long-running sections it actually shows a progress count rather than just hanging on those sub-parts. Sometimes those sub-parts can take 30 seconds or more on first run (though usually 4 seconds or so on subsequent runs), so having this feedback is pretty vital to this not feeling like maybe it locked up.<br />
<br />
* The alpha channel has been removed from a ton of images that didn't need it, letting the compression format be smaller on disk, in RAM, and in VRAM, as well as loading faster. This will definitely be kept, as it was useless data.<br />
<br />
* The max texture size for some of the non-diffuse texture channels for the ships are now cut way down from what they were before, to reflect the distances you typically see these from. This saves 300MB of RAM, disk space, and also lowers the VRAM requirements and makes rendering faster. It also makes loading vastly faster. This is definitely a quality/compression tradeoff, and we do still have the originals, so we may wind up making this an option or something in the future if it seems ugly to folks this new way. At a fairly casual glance by those who worked on the ship graphics, we can't really tell the difference, though; in side-by-side shots you would notice it, but that's about it unless we are mistaken.<br />
<br />
* The compression style for weapons effects and other sound effects has been changed to ADPCM instead of Vorbis, and these are now set to load on a background thread rather than the main thread. This makes loading vastly faster for the sound effects, although it does use something like 20MB of extra disk space. The amount of space used in RAM is identical, since we always decompress on load, anyway.<br />
<br />
* The voice acting clips are now set to stream in like the music does, as well as load on a background thread, rather than being preloaded or decompressed early. This actually saves quite a bit of RAM, and doesn't affect disk space, and saves an enormous amount of loading time. The downside is that it can cause a sub-second delay in playback of voice clips, but given the nature of a voice clip that is both imperceptible and irrelevant.<br />
** Different types of sounds have different characteristics and need different settings, and we've optimized these, in short.<br />
<br />
* Speaking of optimization, we're no longer doing full error-checks on load for each ship visual that is loaded in. That was time-consuming and pointless. In the ship designer windows it shows errors, and if someone commits a ship with errors that's something that is a goof on their part and not something we need every player machine checking for every time the game starts. So that saves another batch of time.<br />
<br />
* We're also doing another experimental thing, where with the solomesh ships we're directly using the asset bundle copies of the ships to get their meshes and materials, rather than instantiating a copy first.<br />
** Generally this is not advised, since it can cause a bunch of extra disk reads and other general slowness when accessing that data. However, in this particular case, since we're not actually accessing anything more than the data on these objects (we're not making copies of the object), we think it's not hitting the disk like that. We don't see any evidence of it in the profiler now, anyway, and we were in the past.<br />
** This speeds things up yet again, and so far so good on that front, but we may have to back this one out later.<br />
<br />
* Overall the loading speed of the game has more than doubled, in typical test cases thus far, and it actually is responsive while loading as well, which is an important first impression piece.<br />
<br />
* Fix a bug where the Nanocaust was never losing influence over a planet even after the constructor was destroyed<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Change the default colour of the Risk Analyzers<br />
<br />
* When the Human Marauders put Marauder Outposts on a planet, give them Influence over the planet (so it will be shown on the Galaxy map)<br />
<br />
* Initial commit of Dark Spire. Like in AIWC, it spawns ships based on energy it gains when ships die on a planet with a Vengeance Generator (VG).<br />
** Energy is tracked per VG. When VG energy > threshold it either shares energy with the VG with lowest energy or it spawns ships to attack. There's a Conversion Ratio when turning energy into ships; it starts out not very efficient (maybe 50% of the energy becomes ships), but every time a VG spawns new ships it becomes more efficient. <br />
** AI Overlords start with a Dark Spire Ward structure on their planets which prevents Dark Spire ships from going there. If a player destroys the Ward then the Dark Spire will be able to attack the AI overlord, thus giving you a new win condition.<br />
** Every so often the Dark Spire will attempt to spawn a Vengeance Generator Locus. The Locus will transform into a full Vengeance Generator in 5 minutes. If you don't kill the Locus in that time period then it turns into a Vengeance Generator. Planets are eligible for a Locus to spawn if they have no Human or AI ships on them, and they are adjacent to a Vengeance Generator without any human or AI ships on it.<br />
<br />
== Version 0.741 Music Part 1 Of 2 ==<br />
(Released April 29th, 2018)<br />
<br />
* The first half of the new tracks for the AI War 2 soundtrack are now in place: Abandoned Ship, Absolute Zero, Bouncing Lights, Event Horizon, Light Year, and Supercluster.<br />
** All by Pablo Vega, mastered by Dio, and all fantastic.<br />
<br />
* Update to Human Marauders behaviour. If they destroy all your forces on a planet then they will begin to construct Marauder Outposts which will spawn Marauder new units. This will make it harder to recapture planets. Every so often a new MarauderOutpost will be added, and existing MarauderOutposts will upgrade themselves to make stronger units. Note also that when the Marauders capture a planet they get a permanent boost to their MaxBudget, making them more dangerous.<br />
** If you allow the Marauders to get Mark 3 outposts then they will start getting Budget faster.<br />
** The balance levers are in XML for ease of use<br />
<br />
* The default game volume is now quieter in the hope of not deafening new players<br />
** Thanks to Flavin for the report<br />
<br />
* Improved the performance of music loading at the start of the game and during the game.<br />
<br />
* Fixed a regression in the prior version of the game where the first time any camera loaded a "traditional skybox" type of background, it would be solid black instead.<br />
<br />
* Fixed an issue where the construction part of the sidebar could show some stale data when switching from a planet with a builder to one without a builder.<br />
** Thanks to hawk for reporting.<br />
<br />
* Fixed a bug that nobody had reported yet with lightning attacks being very strange-looking and not like lightning bolts anymore.<br />
<br />
* Fixed a bug with the various type of geometry-based explosions (flak, lightning, etc) so that they now render additively in the transparent queue rather than the overlay queue, and so that they read from the zbuffer but no longer write to it.<br />
** This changes the effects a fair bit so that they no longer do things like eat into one another or the ship icons around them.<br />
** These will need further tuning to not be over-bright in huge battles, and they're on our list for further improvements visually anyway, but for now it's a good enough start.<br />
<br />
* Risk Analyzers: code tidying, also track the total and net AIP generated by Risk Analyzers. Eventually this is going to turn into 'When X AIP is generated by Risk Analyzers, do something unpleasant to the player', probably an exo wave, once exo waves are added<br />
<br />
* Map Types: Add a new planet placement mechanism for Simple and Realistic, and tweak one of the previous placement algorithms for Simple and Realistic<br />
<br />
* Fix some bugs with Marauders, where outposts weren't upgrading properly.<br />
<br />
== Version 0.740 Clean Up That Nebula, Young Man! ==<br />
(Released April 26th, 2018)<br />
<br />
* Fix some dumb bugs in the HumanMarauders faction that was preventing the marauders from correctly analyzing your planets to see which they should attack<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a bug where the Vis layer was not correctly setting the Shot location when we tabbed into a planet with the shot in flight; it was assuming the shots should be at the middle of the planet, which is manifestly incorrect<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fix a bug where where if a non-Nanocaust faction killed a unit that had taken Nanocaust damage, the killing faction would get the new zombie ship instead of the Nanocaust. <br />
** Thanks to OvalCircle for reporting<br />
<br />
* A new and frightening visual look for Usurpers has been added. These will be absent for a while until we get past the "Fun point" once Keith gets his first wave in place, but then we expect these to come back pretty darn fast, so we want them to look nice and scary). (These are the AI ships that recapture planets)<br />
<br />
* The infrequently-changed space backgrounds, and planet graphics, have all been moved into a new internal AIW2Scenery unity project, which saves us a _ton_ of time when actually building the gui asset bundles, or ship asset bundles, for the game.<br />
<br />
* The sound effects and voice acting files have all been moved out of the platform-specific projects, and out of the modding and gui project in general.<br />
** These are now in the GlobalBundles folder, which saves some disk space if you've got multiple OSes of the game installed at once. It also saves us time when pushing new versions of the game, and has less of a footprint on the system for everybody thanks to the modding unity project now being much smaller without all those files.<br />
** This does make some of the sound stuff a bit harder to mod, but we'll just throw that stuff up on github or google drive or something when the time comes. It's not worth inconveniencing everyone over putting it directly in the build.<br />
<br />
* There were a variety of old "space boxes" that were from back in the kickstarter days that were just... underwhelming. They were nicely colorful, but had kind of gross large stars in them, and in some cases just junky colors in general. These have either had their gross big stars patched out, or they've been removed.<br />
** Overall these have mostly been removed except for the best couple of them (which now have color variants!). <br />
** This saves about 200mb of RAM for something that wasn't looking so hot in general, and makes the game load faster, too.<br />
<br />
* Our middle-style "nebula sphere" type of backgrounds previously had a really bad problem with distortion on the starfields. This was just embarrassing, and led to some perfectly-fine spaceboxes looking really gross depending on the angle of view, instead. These have all been fixed up with a revised shader for handling those starfields as simple tiling rather than triplanar reading.<br />
<br />
* Our most recent, and best-lookg style of space backgrounds, which are based on traditional skyboxes, were absolutely HUGE, taking up more than 450mb on disk, and in RAM. Each one was 12MB of VRAM to render, as well, although that's unavoidable to keep the starfields crisp using a non-tiling cubemap like that.<br />
** We've now split these out so that the stars themselves are in a separate cubemap which is the larger size, and then the nebula parts are able to be a quarter of the size (half the side length) without any drop in quality. This adds 3MB of VRAM usage per draw (of which there is exactly one per frame), but saves over 300mb of disk space and system RAM during runtime, as well as making the game, once again, load faster.<br />
<br />
* 49 new space backgrounds have been added, based on 8 source cubemaps, to replace the ones that were taken away (though this actually adds back more than were taken).<br />
** The new skyboxes are way higher quality than the ones that were removed, is the main point, anyhow.<br />
<br />
* The starfield backgrounds on the galaxy map are now much more neutral, with mostly black and a little bit of white. Easier to see foreground objects on them, now.<br />
<br />
* Fixed a bug where once you viewed an old-style spacebox background, it wasn't letting you view any "traditional skybox" backgrounds, which explained the over-prevalence of the former.<br />
<br />
* The settings option for "background style" has been removed, as that's no longer really relevant to anything.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Final Pre-Beta Checks]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Pivot&diff=30905AI War 2:The Pivot2018-06-29T18:40:14Z<p>Keith.lamothe: /* Version 0.746 */</p>
<hr />
<div>== Known Issues ==<br />
* The lobby interface is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* '''Multiplayer is temporarily disabled''' while we focus on tightening up the single-player loop.<br />
<br />
* Arks are presently not used in the game, which means that also Chief Advisers are not used for now.<br />
<br />
* There are roughly 100ish ships/units that we still have not reimplemented from Pivot phases 3-5.<br />
<br />
* There are a variety of ships/units that don't have proper graphics or reuse icons at the moment.<br />
<br />
* There is not an in-game way to see and edit the control bindings yet.<br />
** But you can go into the created bindings file inside the PlayerData folder to edit them in a text editor.<br />
<br />
== What is this "Pivot?" ==<br />
<br />
The full details are on kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
<br />
The short answer is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
== Version 0.746 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* A few tweaks to prevent nullrefs in hovertext over ships, and to make them work properly in build and tech modes, as well.<br />
<br />
* Further protection against some data garbling that could happen on worker threads, which led to things like AOE attacks striking ships on other planets from the current one.<br />
<br />
* Fixed an issue where newly-created ships that were rallying into a control group could rally to themselves if they were suddenly the strongest ship in the control group.<br />
<br />
* Fixed an issue with Infrastructure being spelled wrong.<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
* Put in a variety of protections against exceptions that could happen due to units no longer existing or being removed from any planet (aka the game) but having orders queued up for them and executed later.<br />
** Thanks to Ovalcircle and BadgerBadger.<br />
<br />
* Fixed a bug with 8 of the skyboxes that were causing nothing to render on their planets except wormholes. Uh... whoops!<br />
** Thanks to Ovalcircle and Badger.<br />
<br />
* Updated one of the really dark and pretty ugly skyboxes to instead be more white cloudy so that it's still faded out, but you can see more of what is going on.<br />
<br />
* Fixed the middle-mouse pan controls so that they act as expected; they were reversed as of the first pivot release.<br />
<br />
* Fixed an issue where if you upgraded a ship type (such as Fighter 1) to a higher mark (Fighter 2), it wouldn't keep the new level of fighters in all your queues. Now it immediately starts cranking out Fighter 2s instead of Fighter 1s after that upgrade.<br />
** Thanks to Badger for reporting.<br />
<br />
* There is now a brighter version of the colors that always shows when the game is writing text using a team color. This keeps text actually legible, while still giving the general feel of the player color in question.<br />
<br />
* Rather than showing the generic yellow strength color on the wave warnings, it now shows the color of the first AI faction in the game (waves are not attached to factions directly, apparently).<br />
** Ditto the colors now used on the attacking-my-planets warnings, except in this case it uses the color of the first-found attacking faction. Before it was using yellow for players and purple for AIs, but now it uses the colors that are more specific.<br />
** Same for the CPA notices now, actually -- instead of showing red text, it shows whatever the first AI color is, like the waves (by default this is actually red anyway). The actual icon portion is of course still red and white, since that's an icon.<br />
** Same also for on the galaxy map when you're viewing colors of unit counts on planets. For the threat color, if there is a hostile count AND threat count (aka on enemy planets), it draws the border color instead of the center color.<br />
<br />
* Fixed an issue with the text colors in the galaxy map over planets, as well as on the planet view over wormholes. They were being translated from gamma color space to linear color space incorrectly, and we're now using Color.linear to fix that manually on our end. Now the colors there match the colors on the UI parts of the interface.<br />
<br />
* Added Ion Cannons back into the game, with the old AIWC-like ion mechanic of simply insta-killing anything of a low-enough mark level (in this case it's actually mark level <= the cannon's, instead of strictly less-than, and the cannons are Mark 1 through 5 instead of 2 through 6).<br />
<br />
* Added the "Bulletproof Fighter" bonus ship type. Basically just a fighter that's immune to ion cannons.<br />
<br />
=== Attack Move And Group Move! ===<br />
<br />
* Added keybind "Group Move" (default G)<br />
** Normally when you give units an order to move, attack, or enter a wormhole they go as fast as they can. Hold this button down to make them go at the speed of the slowest (mobile) unit to whom the order applies. Ignores speed debuffs like engine-damage, tractors, gravity, or paralysis.<br />
<br />
* Added keybind "Attack Move" (default X)<br />
** Normally when you give units an order to move, attack, or enter a wormhole they pursue the target point/object without regard to (other) enemies. Hold this button down to make them stop to fight anything they run across (more specifically, any time they're reloading).<br />
<br />
== Version 0.745 A Pivot And A Leap Forward ==<br />
(Released June 27th, 2018)<br />
<br />
* This is the first release of "The Pivot," which you can read full details of on Kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
** The short description is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
* As part of this, basically all of the game content that was pre-existing has been removed, and we're adding new content in a fashion as described below.<br />
** The interface and such from before has been retained, and then greatly expanded as part of this release.<br />
** The underlying engine and whatnot that we built has also obviously been retained, and we've also expanded that where needed in order to support the new content.<br />
<br />
* Existing savegames are all broken now. With the game basically being redone from the ground up in terms of units and content, this seems pretty reasonable. Older savegames would have been incredibly strange in the new version, anyway.<br />
<br />
=== Wave 1 of 5 of the Pivot ===<br />
<br />
* Wave 1 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Note that this obliterates a lot of the game that was previously known as AI War 2, and we're going to be adding back to this rapidly.<br />
** Please also note that a lot of the graphics for the post-pivot stuff is still inwork, which includes both icons and actual ship graphics. We have a lot to do!<br />
** Lastly, please note that this is putting a variety of kinks in our current GUI, so there is work incoming on that, too. We're basically making a mess at the moment, so please excuse our sawdust.<br />
** The overall goal of Wave 1 of the pivot was to get an end-to-end playable version of the game. By that, we mean the MINIMUM possible possible playable stuff, to be clear.<br />
** Main things that were thus included:<br />
*** Removing all the ships that previously existed, and then adding as new:<br />
*** Command station mechanics, and home command stations.<br />
*** AIWC-style mechanics for the AI home command station.<br />
*** Upgradeable mechanics for other command stations (so we can do econ, military, etc).<br />
*** AIWC-style metal harvesters, the seeding of them, and all that.<br />
*** Ditching power and fuel, and going back to the AIWC-style Energy mechanic, and adding energy collectors.<br />
*** Going back to AIWC-style mechanics for the space docks.<br />
*** Fighters, Bombers, and Missile Corvettes; and with that, a framework for applying the old AIWC balance numbers on top of our newer xml balance framework (until the framework and the numbers can be made to meet in the middle)<br />
*** Warp Gates for the AI, those were already pretty much the same between games.<br />
*** Engineers, and all the AIWC-style mechanics associated with them.<br />
*** A variety of turrets from the first game.<br />
*** Tractor turrets, but this time switching to the older AIWC-style mechanics for how those work.<br />
*** Scouts, and the AIWC-style scouting mechanics.<br />
*** AI Tachyon Guardians, which are simply a new unit, although possibly this included a shift to the AIWC-style cloaking mechanics? Not sure on that one bit.<br />
*** Science Labs, and the AIWC-style knowledge-gathering mechancis.<br />
*** Colony ships, and the AIWC style of those working.<br />
*** Mine layers, and the rebuilder mechanics that go along with those.<br />
*** Guard posts for the AI, and the mechanics that go with that.<br />
*** Some of the AI guardians, and the AIWC style of guardian mechanics (AIW2 was previously wrapping guard posts and guardians into one thing, but now that's more split)<br />
*** Force field generators, and a return to the AIWC style mechanic (with those now being present at all in general, too.<br />
*** Starship constructors, nothing major different here between the two games.<br />
*** Some of the basic starships.<br />
<br />
* For the time being, in the xml and underlying data structures, we still have global fuel and per-planet power.<br />
** However, everything is just using the global fuel now, to be more AIWC-like.<br />
** On the interface, we are now referring to this global fuel as being Energy again, as with AIWC.<br />
** We'll see how this continues to evolve, but for now that was the simplest thing.<br />
<br />
=== Wave 2 of 5 of the Pivot ===<br />
<br />
* Wave 2 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Now we're building back up a bit more in terms of having the game more recognizable, but there's still a lot to clean up before we even release it to you.<br />
** New ships, with their attendant mechanics, added:<br />
** Scout Starship mk1-4, Stealth Starship mk1-4, Shield Starship mk1-4, Siege Starship mk1-4, Sniper Starship mk1-4, Carrier Starship mk1-4.<br />
** Arachnid Guard Post mk1-5, Missile Guard Post mk1-5, MLRS Guard Post mk1-5, Laser Guard Post mk1-5, Shield Guard Post mk1-5, Stealth Guard Post mk1-5.<br />
** Tachyon Guardian is now Tachyon Sentinel. Added Wormhole Sentinel, Data Center, Advanced Research Station.<br />
** Matter Converter, Mercenary Space Dock (and mercenary versions of relevant ships), Home Human Settlement, Human Cryogenic Pod.<br />
** Multi-Needler Corvette mk1-5, Eyebot mk1-5, Armor Ship mk1-5, Autocannon Minipod mk1-5, Lightning Corvette mk1-5, Grenade Launcher mk1-5, Infiltrator mk1-5, Laser Gatling mk1-5, MLRS mk1-5, Raider mk1-5, Raptor mk1-5, Sentinel Frigate mk1-5, Sniper mk1-5, Space Plane mk1-5, Space Tank mk1-5, Spider mk1-5, Vampire Claw mk1-5, Vorticular Cutlass mk1-5, Tachyon MicroFighter mk1-5, <br />
** Flak Turret mk1-5, Laser Turret mk1-5, Lightning Turret mk1-5, Missile Turret mk1-5, MLRS Turret mk1-5, Sniper Turret mk1-5, Spider Turret mk1-5, Beam Cannon mk1-5, <br />
** Tachyon Array, Stealth Tachyon Array, Focused Gravity Generator mk1-5.<br />
** Laser Guardian mk1-5 as a rename from Needler Guardian, Stealth Guardian mk1-5, Sniper Guardian mk1-5, Missile Guardian mk1-5, Widow Guardian mk1-5, Tractor Guardian mk1-5, Lightning Guardian mk1-5, Flak Guardian mk1-5, <br />
<br />
=== New Faction: Astro Trains (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Astro Trains'.<br />
** When enabled, a bunch of Astro Train Stations are seeded on the map. Every so often the AI will create a Depot, then begin to spawn trains that head to the Depot. Trains will travel between the Stations, then eventually to the Depot. <br />
** For some depots, a train will be required to go "near" a player if possible so that you always have a chance to kill them. Whether trains are required to go near the player is tunable on a per-Depot basis.<br />
** There will be a number of different types of Depots. Some produce an effect whenever a train arrives ("Increase the next CPA's strength", "Spawn some ships for the Warden Fleet", etc), others produce an effect after a certain number of trains ("If 4 trains arrive then spawn a Golem"). Depots are defined entirely in XML so it's easy to add new ones or change their balance<br />
** There will also be a number of types of Trains based on the defenses they have. At the moment there is only 1 (and it's misnamed, Keith hasn't added its weapon system back into the Pivot yet)<br />
** Eventually I'd like to have the Trains give you metal when killed, but that mechanic isn't added yet. <br />
** This faction intended to be a More Interactive and Fun version of AIWC's astro trains, which I always found rather frustrating.<br />
** For other modders, this faction is a great example to look to since it defines a new table in the XML, which allows for very complex behaviour.<br />
<br />
=== New Faction: Macrophage (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Macrophage'<br />
** This faction is an invasion of giant organic Macrophage. They prey on Metal, devouring ships and structures they come across, and in particular they prey on the AI (since you haven't encountered them yet). <br />
** Macrophage live in colonies called Telium, which are hidden from the AI. A Telium sends out Macrophage to harvest metal by destroying human or AI ships. When a Colony has been fed enough metal it will create cloaked and harmless Spores which wander the galaxy. When spores encounter spores from other Telium they can reproduce to spawn a new Telium.<br />
** They are hostile to humans and AI alike, but not very intelligent.<br />
** If a Telium produces enough Macrophage, some of the Macrophage will be transformed into an Aggressive form and then go try to kill the human player. If a Telium is destroyed, all of the Macrophages associated with it will attack the player.<br />
** This faction is a bit like reimagining the Devourer Golem as a part of an ecosystem.<br />
<br />
=== Dyson Rework (Thanks, Badger!) === <br />
<br />
* The Dyson Sphere now uses a "Metal income per second" mechanic to spawn units instead of just arbitrarily creating things at a time interval. This makes it much much easier to balance.<br />
** Changing the intensity of a Dyson Sphere changes the income per second; the balance numbers for a given intensity are now in the XML.<br />
* Multiple Dyson Spheres can be enabled at a time, and each can have a different colour and intensity. Enabling X dyson spheres divides the income of a given sphere by X so multiple Dysons won't be able to just crush the Galaxy.<br />
* Dyson Spheres can be Antagonized, like AIWC. If a Dyson Antagonizer exists, all the Dyson Spheres drop what they are doing and start sending units to attack you. Previously created Dyson Sphere ships will keep their previous alignment (so if they were friendly before, they will fight Antagonized ships)<br />
** Antagonizers are not currently created by anything yet, so don't worry about them showing up yet. I imagine one of the Astro Train Depots will create antagonizers eventually, but there may be other mechanisms worth exploring.<br />
* Each Dyson Sphere now has a max Strength Allowed based on the current AIP; the higher the AIP the stronger the Dyson can get. The tuning for this is in the XML<br />
<br />
=== New Faction: Mercenaries (Thanks -- yet again -- Badger!) ===<br />
<br />
* Add new faction for Mercenaries. The Mercenaries are a much fancier version of the AIWC mercenaries (which are rebranded as "Auxiliaries").<br />
* Mercenaries are groups of units defined in the XML that can be hired to come fight for you temporarily using metal or hacking points. We may define other costs for them as appropriate going forward. A small set of mercenaries are defined right now with no attempt for balance, just to illustrate the various options that exist. Each group has a name and backstory and different behaviour. Some only defend one planet, others patrol nearby worlds (and will go help any of your planets if they are attacked), others will kamikaze at the AI. Some groups consist only of turrets and engineers. One group is a large cloaked unit that can be summoned on an AI world which will hopefully distract the Warden fleet, but that's untested.<br />
<br />
* Options for mercenary groups that can be specified in the XML<br />
** On Spawn behaviour: Fight all enemies on a current planet, then warp out. Defend this planet. Patrol nearby friendly planets (they will detect attacks on nearby planets and go help). Kamikaze into the AI. <br />
** Planet summoning restrictions: Can only be summoned on a Friendly planet, an AI planet, a planet not owned by the AI, or anywhere<br />
** Seconds allowed to exist: mercenaries will only stick around for a certain amount of time (in seconds)<br />
** Times allowed to summon: If the Primary unit of the mercenary group survives to the end of its "Seconds allowed to exist" then you can summon these mercs again, up to a certain number of times.<br />
** Cost: Metal, hacking points or both<br />
** Spawn Delay: the mercenary group in question will appear after this many seconds<br />
** Primary/Secondary/Tertiary units: A mercenary group can have up to 3 unit classes. You set these classes with the "[primary|secondary|tertiary]_unit_tag" field in the XML. Note that a tag can be on multiple types of units, and it will choose randomly among them. For example, we might have multiple units tagged with "MercenaryFleetship", and specifying that as one of the unit tags will pick among those at random. You can specify either a specific number of units with that tag, a strength of units, or both. So for example, one might say primary_unit_tag="MercenaryFlagship" primary_number_to_spawn="1" primary_strength_to_spawn="2000". If the Mercenary Flagship units all have 900 strength then this will summon 1 + 3 (we round up when calculating how many units for the strength) = 4 flagships.<br />
** Class: Defense/Offense/Utility. This is future proofing, we don't do anything with it yet.<br />
<br />
*At the beginning of the game, a number of Mercenary Communicators (I am open to a more flavorful name) are seeded on the map. Each Communicator grants access to some unique mercenary groups. If you are holding a planet with a Mercenary Communicator then you can summon those mercenaries.<br />
<br />
*The two key advantages of mercenaries over regular ships are that they don't cost energy and they can be summoned more quickly. Also some may do other fancier things later (like the warden fleet distractor). There is nothing preventing someone from tweaking the XML to allow you to hire the Devourer, for example, as a fun alternate win condition.<br />
<br />
*How quickly the Mercs appear is tunable on a per Group basis (so we could have identical groups, one that spawns in 60 seconds and costs X metal, another that spawns in 5 seconds and costs 5X metal).<br />
<br />
* AIWC style mercenaries are rebranded as "Auxiliaries"<br />
<br />
=== Marauders Expansionism ===<br />
<br />
* When the Marauders capture a planet, if they get up to Mark III outposts then they will begin spawning Raiders, powerful starships that will attack weakly defended nearby worlds. So if you give the Marauders and inch they will expand rapidly (the ideal case is "You've cleared out a bunch of planets but haven't captured them, and the Marauders will build an empire there if you don't watch out").<br />
* Make Marauders hostile to everyone. This means that neutral planets or weakly defended AI planets are eligible to be captured by the Marauders. Remember that the Marauders capturing a planet will permanently strengthen the faction.<br />
** Thanks to Ovalcircle for the suggestion<br />
<br />
=== Misc Bugfixes ===<br />
<br />
* Fixed an oversight in some of the recent versions where the Dyson Sphere was missing its cage. It now has a shiny (literally) new material on it.<br />
<br />
* Slight rework of the Autosave code. You now can specify the interval for autosaves and the number of previous autosaves to keep. So if I want to take autosaves every 10 minutes and keep the last 6 then I'll be able to easily jump back to the game up to an hour before. The goal is to make it easy to savescum efficiently and effectively ;-)<br />
<br />
* Provide a workaround for the problem where people who had last used a no-longer-extant map type would hit a crash when they start the game. Those deprecated map types are now defined (so it won't cause a crash anymore), but hidden by default so they can't be selected.<br />
** This was reported by numerous people, including Valeroth, Clasmir, zeusalmighty and probably others<br />
<br />
* Fixed a since-forever bug where ships fast ships that wind up needing to move to not overlap something would start bouncing around like they needed to go to the little starship's room.<br />
<br />
* Fixed the scales and collision radii of the assault starships.<br />
<br />
* For now at least, the bobbing of ships within squads has been turned off. As steam user Bucketsmith pointed out, it looked too much like ships on the ocean. It was meant to give a sense of life to the ships, but after he pointed this out to us, we couldn't stop seeing it, either...<br />
<br />
* The game now has proper settings on all the ship renderers for dynamic occlusion, motion vectors, shadows, etc. This should lead to a slight performance bump.<br />
** The editor has also now been set up to detect incorrect settings for these.<br />
<br />
* We had some extra uv2 and color and so forth channels on about 510 of our meshes, and we've now removed those. The amount of data was small, but it was useless info to be sending to the GPU since our shaders don't read from those. Every little bit of data shaved off when you're pushing millions of polygons on a millisecond scale is a win, not that it was causing problems in our testing thus far.<br />
<br />
* Fixed a bug where the single-ship-in-a-squad units were not being properly scaled down location-wise.<br />
* There was previously a bug in the profile screen where it was reversing what your body and trim color selections were on the box-based examples.<br />
** The icon-based examples were fine, but now the boxes have been corrected to match the icons.<br />
<br />
* Fixed a likely-longstanding bug where the scale of ships would drift smaller and smaller the longer you played, depending on how many times pooled ship visual instances of that type were reused due to deaths or due to switching in and out of the galaxy map view or between planets. Some went extremely fast, such as the recently added AI command stations. We suspect this is also what was going on previously with the warp gates.<br />
<br />
* Previously, the icon scales could sometimes be incorrect when tabbing back from the galaxy map, until you scrolled the camera around a bit. Fixed.<br />
<br />
* The placement mode icons were never scaled up or down to match the size they would be once placement was complete. Fixed.<br />
<br />
* Fixed a since-forever bug where the colors of icons in the main view were lighter than those in the sidebar. Turns out it was not color grading being applied, but rather that we were passing in our Color type parameters as Vector4s. This worked, sort of, but the typo wound up transposing the data slightly for some reason. Why it didn't just function correctly or fail completely is a solid mystery, to be honest.<br />
<br />
* Fixed an issue where opening savegames that were originally saved in a different campaign name but have been manually moved to a new folder were using the old campaign name instead of the new one as far as "continue last save" was considered.<br />
<br />
* Previously, if continue last save was not able to load the last save because it couldn't find the file, it was not showing any error. Now it tells you what the issue is.<br />
<br />
* In the game setup screen on the galaxy map, it no longer shows the colors of any factions other than player planet names (since in games with a lot of factions that actually gives away info).<br />
<br />
* In the game setup screen on the galaxy map, it now shows the player names under each planet name controlled by one.<br />
<br />
* Once into the game, it no longer shows the color of the faction on the other side of a wormhole if you've never scouted that planet at all.<br />
<br />
* Fixed an issue with the little bottom-left menus where the mouseover of elements behind them could sometimes happen because there were cracks between the buttons. Now there's a backplate behind the entire windows in those locations.<br />
<br />
* The underlying flag under the queue pause button was not actually implemented (it may have previously been the loop flag), so it didn't work; now it's implemented and works to pause that queue. Incidentally this does not disable any other functions of the building unit, unlike in AIWC where it was done through the general "disable everything" mode<br />
<br />
* Removed requirement that you have had units on a planet before you can send units there on the galaxy map (leftover from the sensor-scrambler scouting model)<br />
<br />
* Fixed a bug where the game was still trying to seed design-template-servers when the AI unlocked something new, despite those not currently being defined in the game, and thus throwing errors<br />
<br />
* Fixed a bug where AI ships freed by a minor faction still just went after the humans<br />
<br />
=== Misc Improvements And Additions ===<br />
<br />
* Added a new IGameEntityDescriptionAppender, which can be linked up using the new xml tags description_appender_dll and description_appender_type.<br />
** One example is presently in place with the human home command station and a test class called AnyUnitExampleAppender.<br />
** This is something that can be used for adding arbitrary unit-specific or class-specific dynamic text to the description of any unit or unit type. This is likely to be widely useful as we build out the UI later on, because we can put in context-specific warnings and commentary, for instance.<br />
<br />
* If a ship has been shot to death into remains, it now says REMAINS in red after the name of the ship in the mouseover, and it tells you what the remains means and that you need a remains rebuilder in the description text. Otherwise this was absolutely mystifying as to what was going on!<br />
<br />
* When ships are under construction directly on the battlefield, it now shows the health bar to show the progress that they are making towards completion. Holy cow did things feel incomplete without that.<br />
<br />
* Hey, does the scale of the grav wells on planets feel too small to you? Here's how you can tune the numbers. For example, at the moment we've doubled the size of the grav wells, and we'll see how that feels. To do the doubling, since that's simple math, here are the changes:<br />
** GameData/Configuration/ExternalConstants/KDL_VanillaConstants.xml<br />
*** distance_scale_gravwell_radius 13000 to 26000 (This makes the sim-level grav well twice as large, but if you just change this then visually things will draw very wrong. Must be an integer.)<br />
*** asset_base_unit_radius from 100 to 200 (This makes the units draw half as large as they previously were. It has to be an integer).<br />
** GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml<br />
*** combat_visual_scale_divisor from 10 to 20 (This makes the position of units, and the size of their selection radius, all make sense visually. Whatever multiplier you apply to distance_scale_gravwell_radius, apply the same one here).<br />
*** forcefield_visual_scale_divisor from 5 to 10 (Same deal, forcefields will look the wrong size if this isn't adjusted).<br />
** There actually may be a few other settings that we overlooked, but hopefully this is a comprehensive guide. If not, we'll update this in the future if we discover a hole.<br />
<br />
* Selecting a constructor unit (like the Space Dock or Starship Constructor) will automatically open the Build Tab on the sidebar. It was really annoying to click on a constructor, then realize you need to also click on the Build Tab. Note that hitting "B" is more efficient than clicking on a constructor anyway.<br />
<br />
* Dark Spire: Different factions produce different amounts of Energy when their units kill or are killed. These values are tunable in the XML. The AI or players units produce more energy than minor factions like the Macrophage, Devourer or Nanocaust.<br />
<br />
* In the planet view, linked planet names are no longer shown over wormholes unless you are holding down the ctrl key. Thus you can easily see the names, still, but they aren't cluttering up your view all the time (and making the gravity well feel smaller in the process). This also has the benefit of making it really obvious when you can click to send your ships or camera through the wormholes.<br />
<br />
* Now that warheads are no longer a resource that should be shown on the top bar, we're bringing back the attack warning/numbers up there. This shifted around several elements on the top bar, spatially, but put the new attack warning in the bottom right of that bar.<br />
** Slightly different from the first game, the new attack indicator shows the number of hostile enemy ships on ANY player planets, not just those you own. That seems relevant. It has three states: a greyed-out "nothing's here" safe shield with checkmark, a yellow and orange "things are here, but not on your personal home planet," and then a red and white warning "there are at least some of these guys on YOUR home planet."<br />
** Undoubtedly we'll adjust this some over time. One oddity you'll notice is that the frequency of the flashing of the text in this field is inconsistent. That's unfortunate, but a side effect of the way that unity dirties its GUIs rather than drawing every frame, along with the multithreaded queued approach we take on top of that.<br />
** The tooltip will list all your planets that are under attack sorted by the strength of the attack<br />
<br />
* The quick start button now actually works, although it goes to the same location as the custom start. A tooltip notes that the quick start variant is coming soon. However, some folks were confused and not thinking to go to the custom start, so here we are.<br />
<br />
* On the galaxy map and in the planet view, the icons for ships now are rotated to billboard toward the camera on the GPU instead of on the CPU. This saves an enormous amount of processing when there are many icons, and means that we can update the scale of icons more rapidly even when there are many many icons on screen -- getting rid of that delay in rotation/scale that was seen in prior versions of the game. There still IS a delay built in, just in case you absolutely flood your screen with icons, but it shouldn't be hit in normal gameplay (or if it is, we'll adjust this further based on profiling of said savegames). Additionally, since the rotation is run on the GPU, that means that CAN'T happen any way other than instantly, which is nice.<br />
<br />
* The color picker UI has seen a number of updates:<br />
** The individual color cells are now far smaller, letting you see tons more of them at once, and feeling more like traditional color pickers.<br />
** The selected color cells no longer blink their main color, but instead blink a little border around them. It's a lot more obvious what is going on now, and no longer seems like a bug. The flashing is still needed because the borders get lost in the riot of colors, otherwise. Hazard of having so many options.<br />
** There is now a section of preset options (combos of body and trim colors) down at the bottom of the screen. These give attractive options that also don't conflict with any of the NPC factions. This is one of those things that makes the game infinitely more usable.<br />
*** There are eight of these right now, but it's possible to define more via xml.<br />
<br />
* The in-game tooltips for planets and units/objects now shows in the bottom left, as it previously did in AIWC.<br />
<br />
* The selected ships notice now also shows up down at the bottom of the screen, where the tooltips do. It only shows if a tooltip (or the escape menu) is not showing. This saves important space in general, and also paves the way for the notifications bar up at the top to finally have room.<br />
<br />
* Scouts have a much higher movespeed than anything in the game, so the approximation for lerping squad movement was much higher than anything else. This caused scout movement to feel very jerky. Instead we put a cap on the fastest possible visual movespeed for a squad.<br />
<br />
* Fixed a bug deep in the bowels of our UI code that was leading to a lot of higher-level bugs with things being positioned incorrectly, etc. The most recent manifestation of this, in the working versions of the pivot build, were un-owned metal desposit spots showing up half off the sidebar.<br />
<br />
* Added a new "Owned by Nobody" section on the ships section of the sidebar, since that's a legitimate fourth category. Golems that nobody controls yet, un-owned metal spots, etc, etc.<br />
** Also new, the items in this category can be seen on the sidebar if you've ever been to the planet before, even if you don't have vision of the planet right now. This is pretty handy.<br />
<br />
* Engineer and Rebuilder FRD now works (though their prioritization leaves something to be desired)<br />
<br />
* AI planets directly adjacent to a human homeworld no longer seed guardians or sentinels, to match AIWC (AIWC had wormhole guard posts, now known as wormhole sentinels, but their omission is not significant)<br />
<br />
* Guardian counts have generally been significant reduced, and are now proportional to planet mark level as well as number of guard posts<br />
<br />
* A bonus ship type can now be selected for each human faction (currently you have to click "more" to get to this, since the space is already taken by the two color dropdowns and the Ark dropdown)<br />
<br />
* You now start with 10k science, and all weapon turrets (except beam), to parallel AIWC<br />
<br />
* Your command stations will now automatically claim metal spots, to better resemble what happened after capturing a planet in AIWC.<br />
<br />
* Made the planet view cursor code moddable and open source.<br />
<br />
* Constructors can now be set to rally units they build to either an already existing control group or to a point chosen by the player.<br />
<br />
=== Keyboard/Mouse Input Overhaul ===<br />
<br />
* Previously we were using some middleware called Rewired, which was bulky and inflexible in a variety of ways. It's super useful if you want to handle a bunch of gamepads and in particular if you want to have design-time-defined controls. Our use case was diverging enough that all it added was bloat, though, because we had to write our own runtime-control-definition layer, poll the list of all our controls while it polled all the keys under the hood, and other messy things like that. So Rewired is out.<br />
<br />
* We brought in what started as EasyInput from ootii as replacement middleware, then pared that down to just the keyboard and mouse bits. We then basically rewrote the entire thing so that it's more efficient, uses no dictionary lookups during the game loop, and is compatible with all the things we want it to do for this game. So ultimately we wound up just kind of creating our own.<br />
<br />
* The new input system has a lot of performance benefits, but one of the biggest things it will do is make it easier for us to define all of the keybinds in xml, no matter how many we have. All of the keybinds that were previously hardcoded have now been moved to xml.<br />
** It was previously somewhat difficult for us to check if something was just pressed, just released, being held, etc, in an efficient and automated way. This is now something that can be directly specified in our xml definitions for the keybinds.<br />
** We also have a new Custom type of key check, which basically skips the whole Handler reflection-linking process and instead just lets classes elsewhere in the code get an object reference to that key and then check it as needed. This is very useful for modifier keys of any sort, and for all of the camera controls.<br />
<br />
* Work has also been done to prep this for an actual interface for viewing and editing keybinds in game. We'll get that in place prior to Early Access, but for now we have a few other fish to fry.<br />
<br />
* A variety of bugs relating to keys that could be triggered on the main menu that were only supposed to be in-game have been fixed.<br />
<br />
=== Galaxy Map Improvements ===<br />
<br />
* The galaxy map is now using a purely top-down camera with the ability to pan and zoom but no ability to tilt or rotate the view. There have been a number of valid issues brought up with the existing galaxy map, and we're starting to work through those now. Lots more to come, but here are some of the first bits.<br />
<br />
* Players can now see the entire galaxy map structure -- meaning the actual planets and their wormhole links and lines -- from the start of the game.<br />
** This is the same data you see in the lobby, so it was always strange that we took it away after the game started in Classic and this game.<br />
** This does NOT grant you any actual visibility on the planets as to their contents, owners, resources, ships present, or anything else.<br />
*** Aka, this is not a reduction of fog of war, it's just the ability to see the shape of the battlefield, same as you already could in the lobby.<br />
<br />
* Previously, on the galaxy map it would take you into the planet view as soon as you clicked a planet, unless you held Alt. This was not helpful for a variety of reasons, so based on user feedback it now by default just switches which planet is selected but doesn't change the view unless you hold Ctrl.<br />
<br />
* When you are on the galaxy map, it now only shows the name of the planet you are currently viewing unless you hold down the ctrl key. This is a lot more like the first game, and is way less cluttered.<br />
** In the lobby, it shows the names for all human planets, with their colors on there.<br />
<br />
* You can no longer zoom the galaxy map so far in, you start further zoomed out, and you can zoom out further.<br />
<br />
* On the galaxy map, the visuals for the planet are now 4x larger, making them easier to see at farther zoom ranges. This is essentially the same as making the planets "closer together," so to speak, in its effect on how you view the map.<br />
<br />
* Rather than drawing the literal visual of the planet on the galaxy map, which turned out to be fairly pointless, we now draw icon-like 3D models in place of them.<br />
** These show the color of the owning party for the planet, if there is one, and they show a different icon for unscouted (ever), regular, and homeworld planets.<br />
** The regular-planet icons are a bit different for marks 1-5 of regular planets, incidentally (anything over mark v shows the mark 5 graphic for the planet itself). These help give you an indicator of the strength of planets when they are in the hands of the AI.<br />
*** After you capture a planet, it still retains its graphical styling for what mark level it used to be, which is a subtle but cool way of showing your progress in the past.<br />
<br />
* On the galaxy map, the selection ring is now fancier, easier to see from a distance, and it rotates to make it even more obvious where it is.<br />
<br />
* The "king unit" no longer shows up next to home planets on the galaxy map. Instead, now the planet itself is showing up looking different. It's a lot easier to tell what the heck is going on, now!<br />
<br />
* The text on the galaxy map that shows the strength at planets is now a lot more clear, and more useful in general. Before it just showed the amount of threat at any given planet, period.<br />
** Now it shows a yellow row with a strength icon for any allied + self units that are on that planet (or omits the line if that total is zero).<br />
** In the same fashion, it shows a purple row for any threat on the planet IF you currently have vision there. Or omits the line if none.<br />
** And also in that same fashion, again if you have vision there, it shows a red row for the total of hostile strength on that planet that is NOT threat.<br />
** Now you can actually see what sort of dangers there are to your planets, which planets of yours are outnumbered, and all sorts of other useful things like that!<br />
** It actually shows the strongest forces (allied or enemy) on the top or bottom. It doesn't sort the threat vs not threat, but moves those as a bloc.<br />
<br />
* Also adjusted the placement of the "lower text" on the galaxy map to be centered right below the planet name, rather than down and to the side. Previously it often looked like the threat counts were located at some other planet instead of the planet they were actually on.<br />
<br />
=== Camera Improvements ===<br />
<br />
* The camera in the planet view has been something of a bugbear for a little while, because there were a variety of things that could go wrong with it. But even more than that, it was using a TON of keys on the keyboard: WASD and the arrow keys for movement, Q and E for rotation, and R and F for tilt. Time for revisions!<br />
<br />
* One of the new things that was most interesting was the idea of a "tilt and rotate" mode, rather like what happens if you hold the right mouse button in Planet Coaster. We can't really use the right mouse button that way, and the middle mouse button makes more sense as the existing "grab and pan" functionality, so we've defined the mode modifier for that as Q now, or Mouse4 if you have a 4+ button mouse (those are awesome, incidentally).<br />
** Along with this change, the default bindings for rotation and tilt are simply set to nothing. If you want to bring back the Q and E and R and F the way they were, that ability didn't go away, but we're claiming those keys for other things instead (Q is already the tilt and rotate mode, whereas the others are unbound at the moment).<br />
<br />
* Along with this, zooming out could potentially put you out of bounds previously, if you had the camera tilted sideways a lot. Now when you zoom out, it un-tilts your camera to avoid this happening. Most other games do this same thing; technically it wasn't zooming out before, but just backing up laterally, anyway, if your angle was shallow enough. Now it actually always zooms out.<br />
<br />
* Previously it was possible for sometimes the mouse wheel to give way too much input in one frame, and send you shooting forward. Probably this was happening directly during a long Garbage Collector frame, although we're not sure. We've put in some safeguards to prevent this from happening, although if it is caused by something other than what we guessed then it will still happen and we'll have to add more safeguards elsewhere.<br />
<br />
* There's a new setting for the tilt/rotate mode that lets you set the sensitivity of that.<br />
<br />
* The "free look camera" stuff has all been commented out for now. We could in theory bring that back, but it felt awkward and was not really needed, ultimately. This removal also helps the settings menus be a little less overwhelming when it comes to camera options.<br />
<br />
=== Notifications Bar Added! ===<br />
<br />
* The wave and CPA warnings are back! Actually, they never were quite in the game in this fashion showing a proper countdown. They show a little icon and number box in the upper left of the screen, which you can hover over for more info.<br />
** Clicking on them takes you to the planet that is involved, if it's a specific planet.<br />
** For waves, it shows you the planet it is headed to, and it strength, on the notification badge itself. For CPAs, it just tells you a CPA is coming and when.<br />
** For these, it has a tooltip for each of them that tells you what a CPA is if you don't know, or what the composition of the incoming wave is if it's a wave.<br />
<br />
* The notification bar now includes entries for planets of yours that are under attack, and shows the total strength counts for those ships that are aggressing and those that are defending.<br />
** These are color-coded, and whichever is on top is stronger, so you can tell at a glance if you should be winning this fight (on paper; positioning and tactics are important if the numbers are close, of course).<br />
** The icon for this is different if it's your home planet versus one of your other planets, so this is yet another source of visible warning when your home planet is under attack.<br />
** As with the wave warnings, you can click these to immediately go to the planet in question.<br />
** The tooltips for these show the name of the planet that is being attacked, who the attackers are, who the defenders are, what small ships, large ships, non-combatants, and strength each participant has, and what critical infrastructure is located here for the defenders.<br />
*** Big thanks to Eric for designing all of these things (as with almost all of the GUI now, but this in particular is super cool).<br />
<br />
* There is now a general-purpose framework where developers and modders can add items to the notification bar from any faction.<br />
** This is useful for a variety of things, ranging from alerting you that a trader is visiting a planet and wanting to trade, to telling you marauders are after you, to other things of that nature.<br />
*** Note that we're not using it for any of those purposes yet, but the capability is now there -- and the first proof of concept is actually the planet under attack notices.<br />
<br />
* We now have the concept of critical infrastructure, which are simply items that you get warned about in the tooltip when they are on planets of yours that are under attack.<br />
<br />
=== Visual, Audio, and Workflow Improvements ===<br />
<br />
* The icons for ships are now just stored once in the game, at a single size, rather than twice at two different sizes. This makes it a lot faster for us to update the icons, and uses a bit less disk space.<br />
<br />
* Added a new visuals_scale_multiplier xml entry for GameEntities that lets us scale up or down entities as we wish for whatever purposes.<br />
** One of the biggest uses is so that we can have fewer prefabs that we have to initialize and keep in memory for ships that grow in size but nothing else during mark-level changes.<br />
** This is now in use on the AssaultStarship and the NeedlerGuardian, which are the only two ships re-implemented at this point for which this is relevant.<br />
<br />
* The tractor turrets look so cool that we've made them a bit larger and made it so that there is only one per "squad" on them. They look like they individually mean business as it is.<br />
<br />
* The visuals, icons, and scales for engineers, rebuilders, and human cryogenic pods are all now in place.<br />
** Note that only engineers and rebuilders are actually in the game yet.<br />
<br />
* Adjusted gimbal_base_scale from 2 to 2.5 in GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml so that the gimbal icons aren't so darn tiny. This seems to feel more like AIWC, now.<br />
<br />
* Human scouts and AI tachyon sentinels now have their graphics in place.<br />
<br />
* Added a new y_offset_of_ship_in_formation xml tag, which allows us to raise and lower ships from a squad as a group. This is useful for really tall structures, for instance.<br />
<br />
* Added the visuals for all of the command stations (AI, basic human, economic, logistical, military, warp jammer, human home, human home core).<br />
** This was quite a task to pull off in a satisfying yet recognizable way, but we finally have it. Basically these needed to be larger and more epic, yet stand out and not have too many polygons, etc.<br />
<br />
* All of the icons for the new command stations and such are now in place, and the icons for command stations show larger than other icons on the planet. The icons for the king units now show even larger. There are also different icons for each type of command station, in such a way that you can easily tell something is a command station, but also that it is some other kind of command station beyond the basic sort.<br />
<br />
* The voice_group xml tag that specifies what voice is used for ships is now required. For non-human-controllable ships, just using Silent is preferred, although it doesn't really matter since these voices only happen when a human player gives orders to the ship in question.<br />
** Previously these were partly defined on the weapon types, but this was far too broad a way of doing it (and had stopped working on our internal versions as part of the Pivot anyhow).<br />
<br />
* Visuals have been created for the energy collector, matter converter, science lab 1 and 2 (though only mk1 is in the game), raid starships mk1-4, metal harvester (and empty version), tractor guardians mk1-5, scout starships mk1-4, home human settlements, and hackers (though hackers are not in the game yet).<br />
<br />
* The visuals for the colony ship are now in place.<br />
<br />
* There are a lot more Arcen-based header menus in unity now for us to speed up repetitive tasks. Also ones for opening folders, and in general letting us work faster and with fewer clicks to get things done.<br />
<br />
* The icon definitions no longer need a _border entry in xml. They still need the actual files, but the game can find them just based off the original icon entry. Yay less typing and chances for typos.<br />
<br />
* Wormhole scaling-up has been removed, and will be replaced by a far-zoom icon like ships/squads get.<br />
<br />
* "GenericObjects" can now have a list of AlternativeMaterials specified. <br />
** This is used for the wormholes in particular so that they can change colors and cubemaps in order to represent different things, or even being hovered.<br />
*** On the wormholes, if you look into them, you'll see a distorted view of actual images from the ESA/Hubble, used with attribution. It's a neat little detail, and you have to get extremely close in to see it.<br />
<br />
* The wormhole visuals have been completely redone AGAIN, probably for the last time this time. We're using something called Scingularity, heavily modified for our purposes.<br />
** The wormholes are drawn using a single untextured quad, which then does a ton of math and uses a cubemap for the center of the singularity, and then a pixel shader to do the outer swirl. Because of this, it looks fantastic at any zoom level. And amazingly, it performs well. You don't need any special hardware.<br />
** In our case, we're using those EA/Hubble images noted above for the center of the wormholes, and then different normal maps for swirl patterns on each color of wormhole, and different colorizations on the wormhole swirls to indicate different things.<br />
** Greenish ones go to enemy planets, darker blue ones go to your planets, lighter blue ones go to allied planets, red/orange ones have a wave incoming, pale green ones go to allied or neutral NPC factions, and white goes to unowned planets.<br />
** When you are hovering over the wormhole -- which requires you to be holding ctrl down, incidentally, so that you can send either the camea or units through it -- then it glows at a much brighter temperature. Makes it far easier to know if you're actually hovering over it.<br />
<br />
* At long last, your choice of colors in the profile menu actually means something! Whatever you select on your profile for your body and trim colors are now used next time you go into the lobby.<br />
** The lobby is still the outdated style with the dropdown for colors, but now it has two colors there for your choosing, too. Using it that way is not ideal, but we'll get to that in the next few weeks.<br />
** For now, it's a very happy thing that we finally have two-color player colors in the game!<br />
*** For each place text is using the colors, it just uses the body color right now.<br />
*** There are presently be some issues with the icons in the main not matching the colors exactly, which is probably due to color-correction post-processing. We're going to be shifting those icons into the GUI camera soon anyhow, so that should solve that when we do. Until then, everything looks washed out in the main icon view.<br />
*** When it comes to showing that a unit is hovered-over, it now goes darker or lighter depending on whether its average color is greater than or less than half brightness; this is instead of the <br />
*** When it comes to showing that a unit is selected, it now adds a border around the mark level icon itself, and brightens the border of the unit color.<br />
** As an aside, when you change the colors and hit OK in the color picker in the player profile screen, it writes to the underlying log what the color selections are called. You can then use this in xml defaults if you're doing modding. Otherwise this doesn't affect you.<br />
** For all of the special factions, AI factions and subfactions, humans, and so forth, there are now default colors! With the two-tone colors we were able to do a lot more theming and nuance.<br />
*** Player colors are going to need to include some defaults for people to choose from, since it can be time-consuming to do so otherwise and you don't know if you're potentially selecting something similar to another faction's defaults. Providing some quick-pick attractive defaults is on our list prior to EA; we already have 8 sets of colors, but the interface isn't updated for that yet.<br />
<br />
* The icons for all ships have been improved, with more darkness and light on them, and more layers of borders and sub-borders, to make things really have contrast and stand out so that they are more legible.<br />
<br />
* Put in a fix to our spritesheet for the ship icons so that now there is substantially more padding in them, fixing some bleed-over between sprites (causing line artifacts, etc) at smaller mipmap levels (when an icon is shrunk a lot).<br />
<br />
* The game finally has "burning and dying" effects on the ship icons as they are killed. Thanks to Badger for continuously pushing for this, as well as for implementing the timing code portion of this. This really helps make the battles both more dramatic from the far zoom view, as well as frankly clearer what is going on.<br />
** We implemented this in completely open-source code between the C# and shader bits, so it can be tuned by other folks if desired. We though about using a ramp texture, but wound up going with a series of lerps between vector4s instead.<br />
<br />
* The font for the mark level numbers has been changed again, and looks much better now.<br />
<br />
* On the sidebar, the strength number is now shown abbreviated instead of written all the way out -- we're trying to standardize on that everywhere, as it's the easiest to read.<br />
** This also now applies to the resource bar at the top of the screen.<br />
<br />
* Fixed a variety of places that were incorrectly using the strength per subsquad instead of the strength per squad -- including in some of the targeting logic for ships.<br />
<br />
* Fixed a bug with the ships tab of the sidebar where it was including the strength of noncombatants in the total strength for the planet, which was not remotely useful. Now it just shows the strength of combatants, like everywhere else, which gives you a much more valid picture of the battlefield. Defensive strength of noncombatants is kind of incidental to that.<br />
<br />
* At a few places in the game, we were showing "Human Remnant" as the faction name instead the name of the player in question. Now we show the player name.<br />
<br />
== Version 0.743 Music Blooms ==<br />
(Released May 2nd, 2018)<br />
<br />
* The second half of the AI War 2 soundtrack is now in place! These pieces, as specified in the kickstarter, are all remixed/remastered versions of tracks from AI War Classic. In there we have the Defeat and Victory tracks from the first game, Nomad Sunrise from DoW, Intro and Midnight from the base game, Night Light from LOTS, Rising Up from VOTM, and Voyage to Zenith from TZR.<br />
** With this, we're now also distributing the full soundtrack (plus a variety of bonuses!) to all those backers who signed up for it. You should have an email with that link, and/or be able to see it in your backerkit profile page: https://aiwar2.backerkit.com/<br />
<br />
* The game now actually plays defeat music when you lose.<br />
<br />
* When you win, the game first plays the For The Fallen vocal track, and then goes into the from-Classic Victory track, then goes on to play regular music from the in-game rotation.<br />
** When you lose, the game plays the defeat track, then also goes back to the regular in-game rotation.<br />
** These two changes are aimed at people who want to keep playing after a victory or loss, which are a not-insubstantial number of people.<br />
** We actually have not tested this bit at all, so, uh, if it doesn't work properly like this then please do let us know and give us a savegame. We're kinda busy on a lot of fronts right now! Normally we unit-test things, though.<br />
<br />
* We're now internally using the Asset Bundle Browser to help us find trouble spots with overlarge pieces of data in our asset bundles that we're building for the game. This helps with load speed, runtime efficiency, and asset bundle build speed.<br />
** On github: https://github.com/Unity-Technologies/AssetBundles-Browser<br />
<br />
* Slightly improved the efficiency/size of the effects asset bundle.<br />
<br />
* Reworked the bloom effects to use the Natural Amplify Bloom effect rather than the Realistic one. This, plus a couple of other tweaks in that area, lead to something that still has bloom, but is a lot more subtle than before. Some folks were complaining about that with the teaser trailer, and we can see their point.<br />
<br />
== Version 0.742 Hotfix ==<br />
(Released May 1st, 2018)<br />
<br />
* Fixed a bug where the total seconds to load was only being reported in output.log, and not in the ArcenDebugLog.<br />
<br />
* On the main menu, it now shows how long it took to load the game, and you can hover over that to get details if you want. The "logged in as Steam user" info is right below that, and both are a bit smaller now.<br />
<br />
* The loading feedback on the sound effect items and graphics items are now more coarse, leading to faster overall loading times compared to the last internal versions.<br />
<br />
* The method for tracking how much time has passed has been adjusted to use DateTime.Now instead of the Stopwatch class, since we had some questions about accuracy.<br />
<br />
== Version 0.742 Darkly Loading Spire ==<br />
(Released May 1st, 2018)<br />
<br />
* Rather than looking like the application is hung when it starts, the game now shows the loading progress in the form of what it's doing at the bottom. It doesn't show a loading bar, but it does show a counter of how long has elapsed, and how long specific long-running bits are taking.<br />
** This is useful both for us to know in terms of telling when something is overly slow to load, and it also gives players something to look at and a cue that there's not just a frozen application in front of them.<br />
<br />
* Surprisingly, the sound effects loading is taking twice as long as the loading of the graphical data right now (9.6s versus 4.4s on Chris's machine), so this is already an example of where we can optimize our loading speeds a bit, which saves everybody a lot of grief and saves the devs here time staring at the screen when it's time to test each item.<br />
<br />
* Additionally, now if the game has an error during load, it won't show a mishmash of all the gui windows all overlapping themselves in an insane and obviously-glitchy way. There is no functional difference between before and now, but it seems a lot less terrifying now if you're seeing it for the first time.<br />
<br />
* The loading log for how the game starts up is now more informative than ever, and on the long-running sections it actually shows a progress count rather than just hanging on those sub-parts. Sometimes those sub-parts can take 30 seconds or more on first run (though usually 4 seconds or so on subsequent runs), so having this feedback is pretty vital to this not feeling like maybe it locked up.<br />
<br />
* The alpha channel has been removed from a ton of images that didn't need it, letting the compression format be smaller on disk, in RAM, and in VRAM, as well as loading faster. This will definitely be kept, as it was useless data.<br />
<br />
* The max texture size for some of the non-diffuse texture channels for the ships are now cut way down from what they were before, to reflect the distances you typically see these from. This saves 300MB of RAM, disk space, and also lowers the VRAM requirements and makes rendering faster. It also makes loading vastly faster. This is definitely a quality/compression tradeoff, and we do still have the originals, so we may wind up making this an option or something in the future if it seems ugly to folks this new way. At a fairly casual glance by those who worked on the ship graphics, we can't really tell the difference, though; in side-by-side shots you would notice it, but that's about it unless we are mistaken.<br />
<br />
* The compression style for weapons effects and other sound effects has been changed to ADPCM instead of Vorbis, and these are now set to load on a background thread rather than the main thread. This makes loading vastly faster for the sound effects, although it does use something like 20MB of extra disk space. The amount of space used in RAM is identical, since we always decompress on load, anyway.<br />
<br />
* The voice acting clips are now set to stream in like the music does, as well as load on a background thread, rather than being preloaded or decompressed early. This actually saves quite a bit of RAM, and doesn't affect disk space, and saves an enormous amount of loading time. The downside is that it can cause a sub-second delay in playback of voice clips, but given the nature of a voice clip that is both imperceptible and irrelevant.<br />
** Different types of sounds have different characteristics and need different settings, and we've optimized these, in short.<br />
<br />
* Speaking of optimization, we're no longer doing full error-checks on load for each ship visual that is loaded in. That was time-consuming and pointless. In the ship designer windows it shows errors, and if someone commits a ship with errors that's something that is a goof on their part and not something we need every player machine checking for every time the game starts. So that saves another batch of time.<br />
<br />
* We're also doing another experimental thing, where with the solomesh ships we're directly using the asset bundle copies of the ships to get their meshes and materials, rather than instantiating a copy first.<br />
** Generally this is not advised, since it can cause a bunch of extra disk reads and other general slowness when accessing that data. However, in this particular case, since we're not actually accessing anything more than the data on these objects (we're not making copies of the object), we think it's not hitting the disk like that. We don't see any evidence of it in the profiler now, anyway, and we were in the past.<br />
** This speeds things up yet again, and so far so good on that front, but we may have to back this one out later.<br />
<br />
* Overall the loading speed of the game has more than doubled, in typical test cases thus far, and it actually is responsive while loading as well, which is an important first impression piece.<br />
<br />
* Fix a bug where the Nanocaust was never losing influence over a planet even after the constructor was destroyed<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Change the default colour of the Risk Analyzers<br />
<br />
* When the Human Marauders put Marauder Outposts on a planet, give them Influence over the planet (so it will be shown on the Galaxy map)<br />
<br />
* Initial commit of Dark Spire. Like in AIWC, it spawns ships based on energy it gains when ships die on a planet with a Vengeance Generator (VG).<br />
** Energy is tracked per VG. When VG energy > threshold it either shares energy with the VG with lowest energy or it spawns ships to attack. There's a Conversion Ratio when turning energy into ships; it starts out not very efficient (maybe 50% of the energy becomes ships), but every time a VG spawns new ships it becomes more efficient. <br />
** AI Overlords start with a Dark Spire Ward structure on their planets which prevents Dark Spire ships from going there. If a player destroys the Ward then the Dark Spire will be able to attack the AI overlord, thus giving you a new win condition.<br />
** Every so often the Dark Spire will attempt to spawn a Vengeance Generator Locus. The Locus will transform into a full Vengeance Generator in 5 minutes. If you don't kill the Locus in that time period then it turns into a Vengeance Generator. Planets are eligible for a Locus to spawn if they have no Human or AI ships on them, and they are adjacent to a Vengeance Generator without any human or AI ships on it.<br />
<br />
== Version 0.741 Music Part 1 Of 2 ==<br />
(Released April 29th, 2018)<br />
<br />
* The first half of the new tracks for the AI War 2 soundtrack are now in place: Abandoned Ship, Absolute Zero, Bouncing Lights, Event Horizon, Light Year, and Supercluster.<br />
** All by Pablo Vega, mastered by Dio, and all fantastic.<br />
<br />
* Update to Human Marauders behaviour. If they destroy all your forces on a planet then they will begin to construct Marauder Outposts which will spawn Marauder new units. This will make it harder to recapture planets. Every so often a new MarauderOutpost will be added, and existing MarauderOutposts will upgrade themselves to make stronger units. Note also that when the Marauders capture a planet they get a permanent boost to their MaxBudget, making them more dangerous.<br />
** If you allow the Marauders to get Mark 3 outposts then they will start getting Budget faster.<br />
** The balance levers are in XML for ease of use<br />
<br />
* The default game volume is now quieter in the hope of not deafening new players<br />
** Thanks to Flavin for the report<br />
<br />
* Improved the performance of music loading at the start of the game and during the game.<br />
<br />
* Fixed a regression in the prior version of the game where the first time any camera loaded a "traditional skybox" type of background, it would be solid black instead.<br />
<br />
* Fixed an issue where the construction part of the sidebar could show some stale data when switching from a planet with a builder to one without a builder.<br />
** Thanks to hawk for reporting.<br />
<br />
* Fixed a bug that nobody had reported yet with lightning attacks being very strange-looking and not like lightning bolts anymore.<br />
<br />
* Fixed a bug with the various type of geometry-based explosions (flak, lightning, etc) so that they now render additively in the transparent queue rather than the overlay queue, and so that they read from the zbuffer but no longer write to it.<br />
** This changes the effects a fair bit so that they no longer do things like eat into one another or the ship icons around them.<br />
** These will need further tuning to not be over-bright in huge battles, and they're on our list for further improvements visually anyway, but for now it's a good enough start.<br />
<br />
* Risk Analyzers: code tidying, also track the total and net AIP generated by Risk Analyzers. Eventually this is going to turn into 'When X AIP is generated by Risk Analyzers, do something unpleasant to the player', probably an exo wave, once exo waves are added<br />
<br />
* Map Types: Add a new planet placement mechanism for Simple and Realistic, and tweak one of the previous placement algorithms for Simple and Realistic<br />
<br />
* Fix some bugs with Marauders, where outposts weren't upgrading properly.<br />
<br />
== Version 0.740 Clean Up That Nebula, Young Man! ==<br />
(Released April 26th, 2018)<br />
<br />
* Fix some dumb bugs in the HumanMarauders faction that was preventing the marauders from correctly analyzing your planets to see which they should attack<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a bug where the Vis layer was not correctly setting the Shot location when we tabbed into a planet with the shot in flight; it was assuming the shots should be at the middle of the planet, which is manifestly incorrect<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fix a bug where where if a non-Nanocaust faction killed a unit that had taken Nanocaust damage, the killing faction would get the new zombie ship instead of the Nanocaust. <br />
** Thanks to OvalCircle for reporting<br />
<br />
* A new and frightening visual look for Usurpers has been added. These will be absent for a while until we get past the "Fun point" once Keith gets his first wave in place, but then we expect these to come back pretty darn fast, so we want them to look nice and scary). (These are the AI ships that recapture planets)<br />
<br />
* The infrequently-changed space backgrounds, and planet graphics, have all been moved into a new internal AIW2Scenery unity project, which saves us a _ton_ of time when actually building the gui asset bundles, or ship asset bundles, for the game.<br />
<br />
* The sound effects and voice acting files have all been moved out of the platform-specific projects, and out of the modding and gui project in general.<br />
** These are now in the GlobalBundles folder, which saves some disk space if you've got multiple OSes of the game installed at once. It also saves us time when pushing new versions of the game, and has less of a footprint on the system for everybody thanks to the modding unity project now being much smaller without all those files.<br />
** This does make some of the sound stuff a bit harder to mod, but we'll just throw that stuff up on github or google drive or something when the time comes. It's not worth inconveniencing everyone over putting it directly in the build.<br />
<br />
* There were a variety of old "space boxes" that were from back in the kickstarter days that were just... underwhelming. They were nicely colorful, but had kind of gross large stars in them, and in some cases just junky colors in general. These have either had their gross big stars patched out, or they've been removed.<br />
** Overall these have mostly been removed except for the best couple of them (which now have color variants!). <br />
** This saves about 200mb of RAM for something that wasn't looking so hot in general, and makes the game load faster, too.<br />
<br />
* Our middle-style "nebula sphere" type of backgrounds previously had a really bad problem with distortion on the starfields. This was just embarrassing, and led to some perfectly-fine spaceboxes looking really gross depending on the angle of view, instead. These have all been fixed up with a revised shader for handling those starfields as simple tiling rather than triplanar reading.<br />
<br />
* Our most recent, and best-lookg style of space backgrounds, which are based on traditional skyboxes, were absolutely HUGE, taking up more than 450mb on disk, and in RAM. Each one was 12MB of VRAM to render, as well, although that's unavoidable to keep the starfields crisp using a non-tiling cubemap like that.<br />
** We've now split these out so that the stars themselves are in a separate cubemap which is the larger size, and then the nebula parts are able to be a quarter of the size (half the side length) without any drop in quality. This adds 3MB of VRAM usage per draw (of which there is exactly one per frame), but saves over 300mb of disk space and system RAM during runtime, as well as making the game, once again, load faster.<br />
<br />
* 49 new space backgrounds have been added, based on 8 source cubemaps, to replace the ones that were taken away (though this actually adds back more than were taken).<br />
** The new skyboxes are way higher quality than the ones that were removed, is the main point, anyhow.<br />
<br />
* The starfield backgrounds on the galaxy map are now much more neutral, with mostly black and a little bit of white. Easier to see foreground objects on them, now.<br />
<br />
* Fixed a bug where once you viewed an old-style spacebox background, it wasn't letting you view any "traditional skybox" backgrounds, which explained the over-prevalence of the former.<br />
<br />
* The settings option for "background style" has been removed, as that's no longer really relevant to anything.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Final Pre-Beta Checks]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Pivot&diff=30904AI War 2:The Pivot2018-06-29T18:29:18Z<p>Keith.lamothe: /* Version 0.746 */</p>
<hr />
<div>== Known Issues ==<br />
* The lobby interface is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* '''Multiplayer is temporarily disabled''' while we focus on tightening up the single-player loop.<br />
<br />
* Arks are presently not used in the game, which means that also Chief Advisers are not used for now.<br />
<br />
* There are roughly 100ish ships/units that we still have not reimplemented from Pivot phases 3-5.<br />
<br />
* There are a variety of ships/units that don't have proper graphics or reuse icons at the moment.<br />
<br />
* There is not an in-game way to see and edit the control bindings yet.<br />
** But you can go into the created bindings file inside the PlayerData folder to edit them in a text editor.<br />
<br />
== What is this "Pivot?" ==<br />
<br />
The full details are on kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
<br />
The short answer is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
== Version 0.746 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* A few tweaks to prevent nullrefs in hovertext over ships, and to make them work properly in build and tech modes, as well.<br />
<br />
* Further protection against some data garbling that could happen on worker threads, which led to things like AOE attacks striking ships on other planets from the current one.<br />
<br />
* Fixed an issue where newly-created ships that were rallying into a control group could rally to themselves if they were suddenly the strongest ship in the control group.<br />
<br />
* Fixed an issue with Infrastructure being spelled wrong.<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
* Put in a variety of protections against exceptions that could happen due to units no longer existing or being removed from any planet (aka the game) but having orders queued up for them and executed later.<br />
** Thanks to Ovalcircle and BadgerBadger.<br />
<br />
* Fixed a bug with 8 of the skyboxes that were causing nothing to render on their planets except wormholes. Uh... whoops!<br />
** Thanks to Ovalcircle and Badger.<br />
<br />
* Updated one of the really dark and pretty ugly skyboxes to instead be more white cloudy so that it's still faded out, but you can see more of what is going on.<br />
<br />
* Fixed the middle-mouse pan controls so that they act as expected; they were reversed as of the first pivot release.<br />
<br />
* Fixed an issue where if you upgraded a ship type (such as Fighter 1) to a higher mark (Fighter 2), it wouldn't keep the new level of fighters in all your queues. Now it immediately starts cranking out Fighter 2s instead of Fighter 1s after that upgrade.<br />
** Thanks to Badger for reporting.<br />
<br />
* There is now a brighter version of the colors that always shows when the game is writing text using a team color. This keeps text actually legible, while still giving the general feel of the player color in question.<br />
<br />
* Rather than showing the generic yellow strength color on the wave warnings, it now shows the color of the first AI faction in the game (waves are not attached to factions directly, apparently).<br />
** Ditto the colors now used on the attacking-my-planets warnings, except in this case it uses the color of the first-found attacking faction. Before it was using yellow for players and purple for AIs, but now it uses the colors that are more specific.<br />
** Same for the CPA notices now, actually -- instead of showing red text, it shows whatever the first AI color is, like the waves (by default this is actually red anyway). The actual icon portion is of course still red and white, since that's an icon.<br />
** Same also for on the galaxy map when you're viewing colors of unit counts on planets. For the threat color, if there is a hostile count AND threat count (aka on enemy planets), it draws the border color instead of the center color.<br />
<br />
* Fixed an issue with the text colors in the galaxy map over planets, as well as on the planet view over wormholes. They were being translated from gamma color space to linear color space incorrectly, and we're now using Color.linear to fix that manually on our end. Now the colors there match the colors on the UI parts of the interface.<br />
<br />
* Added Ion Cannons back into the game, with the old AIWC-like ion mechanic of simply insta-killing anything of a low-enough mark level (in this case it's actually mark level <= the cannon's, instead of strictly less-than, and the cannons are Mark 1 through 5 instead of 2 through 6).<br />
<br />
=== Attack Move And Group Move! ===<br />
<br />
* Added keybind "Group Move" (default G)<br />
** Normally when you give units an order to move, attack, or enter a wormhole they go as fast as they can. Hold this button down to make them go at the speed of the slowest (mobile) unit to whom the order applies. Ignores speed debuffs like engine-damage, tractors, gravity, or paralysis.<br />
<br />
* Added keybind "Attack Move" (default X)<br />
** Normally when you give units an order to move, attack, or enter a wormhole they pursue the target point/object without regard to (other) enemies. Hold this button down to make them stop to fight anything they run across (more specifically, any time they're reloading).<br />
<br />
== Version 0.745 A Pivot And A Leap Forward ==<br />
(Released June 27th, 2018)<br />
<br />
* This is the first release of "The Pivot," which you can read full details of on Kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
** The short description is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
* As part of this, basically all of the game content that was pre-existing has been removed, and we're adding new content in a fashion as described below.<br />
** The interface and such from before has been retained, and then greatly expanded as part of this release.<br />
** The underlying engine and whatnot that we built has also obviously been retained, and we've also expanded that where needed in order to support the new content.<br />
<br />
* Existing savegames are all broken now. With the game basically being redone from the ground up in terms of units and content, this seems pretty reasonable. Older savegames would have been incredibly strange in the new version, anyway.<br />
<br />
=== Wave 1 of 5 of the Pivot ===<br />
<br />
* Wave 1 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Note that this obliterates a lot of the game that was previously known as AI War 2, and we're going to be adding back to this rapidly.<br />
** Please also note that a lot of the graphics for the post-pivot stuff is still inwork, which includes both icons and actual ship graphics. We have a lot to do!<br />
** Lastly, please note that this is putting a variety of kinks in our current GUI, so there is work incoming on that, too. We're basically making a mess at the moment, so please excuse our sawdust.<br />
** The overall goal of Wave 1 of the pivot was to get an end-to-end playable version of the game. By that, we mean the MINIMUM possible possible playable stuff, to be clear.<br />
** Main things that were thus included:<br />
*** Removing all the ships that previously existed, and then adding as new:<br />
*** Command station mechanics, and home command stations.<br />
*** AIWC-style mechanics for the AI home command station.<br />
*** Upgradeable mechanics for other command stations (so we can do econ, military, etc).<br />
*** AIWC-style metal harvesters, the seeding of them, and all that.<br />
*** Ditching power and fuel, and going back to the AIWC-style Energy mechanic, and adding energy collectors.<br />
*** Going back to AIWC-style mechanics for the space docks.<br />
*** Fighters, Bombers, and Missile Corvettes; and with that, a framework for applying the old AIWC balance numbers on top of our newer xml balance framework (until the framework and the numbers can be made to meet in the middle)<br />
*** Warp Gates for the AI, those were already pretty much the same between games.<br />
*** Engineers, and all the AIWC-style mechanics associated with them.<br />
*** A variety of turrets from the first game.<br />
*** Tractor turrets, but this time switching to the older AIWC-style mechanics for how those work.<br />
*** Scouts, and the AIWC-style scouting mechanics.<br />
*** AI Tachyon Guardians, which are simply a new unit, although possibly this included a shift to the AIWC-style cloaking mechanics? Not sure on that one bit.<br />
*** Science Labs, and the AIWC-style knowledge-gathering mechancis.<br />
*** Colony ships, and the AIWC style of those working.<br />
*** Mine layers, and the rebuilder mechanics that go along with those.<br />
*** Guard posts for the AI, and the mechanics that go with that.<br />
*** Some of the AI guardians, and the AIWC style of guardian mechanics (AIW2 was previously wrapping guard posts and guardians into one thing, but now that's more split)<br />
*** Force field generators, and a return to the AIWC style mechanic (with those now being present at all in general, too.<br />
*** Starship constructors, nothing major different here between the two games.<br />
*** Some of the basic starships.<br />
<br />
* For the time being, in the xml and underlying data structures, we still have global fuel and per-planet power.<br />
** However, everything is just using the global fuel now, to be more AIWC-like.<br />
** On the interface, we are now referring to this global fuel as being Energy again, as with AIWC.<br />
** We'll see how this continues to evolve, but for now that was the simplest thing.<br />
<br />
=== Wave 2 of 5 of the Pivot ===<br />
<br />
* Wave 2 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Now we're building back up a bit more in terms of having the game more recognizable, but there's still a lot to clean up before we even release it to you.<br />
** New ships, with their attendant mechanics, added:<br />
** Scout Starship mk1-4, Stealth Starship mk1-4, Shield Starship mk1-4, Siege Starship mk1-4, Sniper Starship mk1-4, Carrier Starship mk1-4.<br />
** Arachnid Guard Post mk1-5, Missile Guard Post mk1-5, MLRS Guard Post mk1-5, Laser Guard Post mk1-5, Shield Guard Post mk1-5, Stealth Guard Post mk1-5.<br />
** Tachyon Guardian is now Tachyon Sentinel. Added Wormhole Sentinel, Data Center, Advanced Research Station.<br />
** Matter Converter, Mercenary Space Dock (and mercenary versions of relevant ships), Home Human Settlement, Human Cryogenic Pod.<br />
** Multi-Needler Corvette mk1-5, Eyebot mk1-5, Armor Ship mk1-5, Autocannon Minipod mk1-5, Lightning Corvette mk1-5, Grenade Launcher mk1-5, Infiltrator mk1-5, Laser Gatling mk1-5, MLRS mk1-5, Raider mk1-5, Raptor mk1-5, Sentinel Frigate mk1-5, Sniper mk1-5, Space Plane mk1-5, Space Tank mk1-5, Spider mk1-5, Vampire Claw mk1-5, Vorticular Cutlass mk1-5, Tachyon MicroFighter mk1-5, <br />
** Flak Turret mk1-5, Laser Turret mk1-5, Lightning Turret mk1-5, Missile Turret mk1-5, MLRS Turret mk1-5, Sniper Turret mk1-5, Spider Turret mk1-5, Beam Cannon mk1-5, <br />
** Tachyon Array, Stealth Tachyon Array, Focused Gravity Generator mk1-5.<br />
** Laser Guardian mk1-5 as a rename from Needler Guardian, Stealth Guardian mk1-5, Sniper Guardian mk1-5, Missile Guardian mk1-5, Widow Guardian mk1-5, Tractor Guardian mk1-5, Lightning Guardian mk1-5, Flak Guardian mk1-5, <br />
<br />
=== New Faction: Astro Trains (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Astro Trains'.<br />
** When enabled, a bunch of Astro Train Stations are seeded on the map. Every so often the AI will create a Depot, then begin to spawn trains that head to the Depot. Trains will travel between the Stations, then eventually to the Depot. <br />
** For some depots, a train will be required to go "near" a player if possible so that you always have a chance to kill them. Whether trains are required to go near the player is tunable on a per-Depot basis.<br />
** There will be a number of different types of Depots. Some produce an effect whenever a train arrives ("Increase the next CPA's strength", "Spawn some ships for the Warden Fleet", etc), others produce an effect after a certain number of trains ("If 4 trains arrive then spawn a Golem"). Depots are defined entirely in XML so it's easy to add new ones or change their balance<br />
** There will also be a number of types of Trains based on the defenses they have. At the moment there is only 1 (and it's misnamed, Keith hasn't added its weapon system back into the Pivot yet)<br />
** Eventually I'd like to have the Trains give you metal when killed, but that mechanic isn't added yet. <br />
** This faction intended to be a More Interactive and Fun version of AIWC's astro trains, which I always found rather frustrating.<br />
** For other modders, this faction is a great example to look to since it defines a new table in the XML, which allows for very complex behaviour.<br />
<br />
=== New Faction: Macrophage (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Macrophage'<br />
** This faction is an invasion of giant organic Macrophage. They prey on Metal, devouring ships and structures they come across, and in particular they prey on the AI (since you haven't encountered them yet). <br />
** Macrophage live in colonies called Telium, which are hidden from the AI. A Telium sends out Macrophage to harvest metal by destroying human or AI ships. When a Colony has been fed enough metal it will create cloaked and harmless Spores which wander the galaxy. When spores encounter spores from other Telium they can reproduce to spawn a new Telium.<br />
** They are hostile to humans and AI alike, but not very intelligent.<br />
** If a Telium produces enough Macrophage, some of the Macrophage will be transformed into an Aggressive form and then go try to kill the human player. If a Telium is destroyed, all of the Macrophages associated with it will attack the player.<br />
** This faction is a bit like reimagining the Devourer Golem as a part of an ecosystem.<br />
<br />
=== Dyson Rework (Thanks, Badger!) === <br />
<br />
* The Dyson Sphere now uses a "Metal income per second" mechanic to spawn units instead of just arbitrarily creating things at a time interval. This makes it much much easier to balance.<br />
** Changing the intensity of a Dyson Sphere changes the income per second; the balance numbers for a given intensity are now in the XML.<br />
* Multiple Dyson Spheres can be enabled at a time, and each can have a different colour and intensity. Enabling X dyson spheres divides the income of a given sphere by X so multiple Dysons won't be able to just crush the Galaxy.<br />
* Dyson Spheres can be Antagonized, like AIWC. If a Dyson Antagonizer exists, all the Dyson Spheres drop what they are doing and start sending units to attack you. Previously created Dyson Sphere ships will keep their previous alignment (so if they were friendly before, they will fight Antagonized ships)<br />
** Antagonizers are not currently created by anything yet, so don't worry about them showing up yet. I imagine one of the Astro Train Depots will create antagonizers eventually, but there may be other mechanisms worth exploring.<br />
* Each Dyson Sphere now has a max Strength Allowed based on the current AIP; the higher the AIP the stronger the Dyson can get. The tuning for this is in the XML<br />
<br />
=== New Faction: Mercenaries (Thanks -- yet again -- Badger!) ===<br />
<br />
* Add new faction for Mercenaries. The Mercenaries are a much fancier version of the AIWC mercenaries (which are rebranded as "Auxiliaries").<br />
* Mercenaries are groups of units defined in the XML that can be hired to come fight for you temporarily using metal or hacking points. We may define other costs for them as appropriate going forward. A small set of mercenaries are defined right now with no attempt for balance, just to illustrate the various options that exist. Each group has a name and backstory and different behaviour. Some only defend one planet, others patrol nearby worlds (and will go help any of your planets if they are attacked), others will kamikaze at the AI. Some groups consist only of turrets and engineers. One group is a large cloaked unit that can be summoned on an AI world which will hopefully distract the Warden fleet, but that's untested.<br />
<br />
* Options for mercenary groups that can be specified in the XML<br />
** On Spawn behaviour: Fight all enemies on a current planet, then warp out. Defend this planet. Patrol nearby friendly planets (they will detect attacks on nearby planets and go help). Kamikaze into the AI. <br />
** Planet summoning restrictions: Can only be summoned on a Friendly planet, an AI planet, a planet not owned by the AI, or anywhere<br />
** Seconds allowed to exist: mercenaries will only stick around for a certain amount of time (in seconds)<br />
** Times allowed to summon: If the Primary unit of the mercenary group survives to the end of its "Seconds allowed to exist" then you can summon these mercs again, up to a certain number of times.<br />
** Cost: Metal, hacking points or both<br />
** Spawn Delay: the mercenary group in question will appear after this many seconds<br />
** Primary/Secondary/Tertiary units: A mercenary group can have up to 3 unit classes. You set these classes with the "[primary|secondary|tertiary]_unit_tag" field in the XML. Note that a tag can be on multiple types of units, and it will choose randomly among them. For example, we might have multiple units tagged with "MercenaryFleetship", and specifying that as one of the unit tags will pick among those at random. You can specify either a specific number of units with that tag, a strength of units, or both. So for example, one might say primary_unit_tag="MercenaryFlagship" primary_number_to_spawn="1" primary_strength_to_spawn="2000". If the Mercenary Flagship units all have 900 strength then this will summon 1 + 3 (we round up when calculating how many units for the strength) = 4 flagships.<br />
** Class: Defense/Offense/Utility. This is future proofing, we don't do anything with it yet.<br />
<br />
*At the beginning of the game, a number of Mercenary Communicators (I am open to a more flavorful name) are seeded on the map. Each Communicator grants access to some unique mercenary groups. If you are holding a planet with a Mercenary Communicator then you can summon those mercenaries.<br />
<br />
*The two key advantages of mercenaries over regular ships are that they don't cost energy and they can be summoned more quickly. Also some may do other fancier things later (like the warden fleet distractor). There is nothing preventing someone from tweaking the XML to allow you to hire the Devourer, for example, as a fun alternate win condition.<br />
<br />
*How quickly the Mercs appear is tunable on a per Group basis (so we could have identical groups, one that spawns in 60 seconds and costs X metal, another that spawns in 5 seconds and costs 5X metal).<br />
<br />
* AIWC style mercenaries are rebranded as "Auxiliaries"<br />
<br />
=== Marauders Expansionism ===<br />
<br />
* When the Marauders capture a planet, if they get up to Mark III outposts then they will begin spawning Raiders, powerful starships that will attack weakly defended nearby worlds. So if you give the Marauders and inch they will expand rapidly (the ideal case is "You've cleared out a bunch of planets but haven't captured them, and the Marauders will build an empire there if you don't watch out").<br />
* Make Marauders hostile to everyone. This means that neutral planets or weakly defended AI planets are eligible to be captured by the Marauders. Remember that the Marauders capturing a planet will permanently strengthen the faction.<br />
** Thanks to Ovalcircle for the suggestion<br />
<br />
=== Misc Bugfixes ===<br />
<br />
* Fixed an oversight in some of the recent versions where the Dyson Sphere was missing its cage. It now has a shiny (literally) new material on it.<br />
<br />
* Slight rework of the Autosave code. You now can specify the interval for autosaves and the number of previous autosaves to keep. So if I want to take autosaves every 10 minutes and keep the last 6 then I'll be able to easily jump back to the game up to an hour before. The goal is to make it easy to savescum efficiently and effectively ;-)<br />
<br />
* Provide a workaround for the problem where people who had last used a no-longer-extant map type would hit a crash when they start the game. Those deprecated map types are now defined (so it won't cause a crash anymore), but hidden by default so they can't be selected.<br />
** This was reported by numerous people, including Valeroth, Clasmir, zeusalmighty and probably others<br />
<br />
* Fixed a since-forever bug where ships fast ships that wind up needing to move to not overlap something would start bouncing around like they needed to go to the little starship's room.<br />
<br />
* Fixed the scales and collision radii of the assault starships.<br />
<br />
* For now at least, the bobbing of ships within squads has been turned off. As steam user Bucketsmith pointed out, it looked too much like ships on the ocean. It was meant to give a sense of life to the ships, but after he pointed this out to us, we couldn't stop seeing it, either...<br />
<br />
* The game now has proper settings on all the ship renderers for dynamic occlusion, motion vectors, shadows, etc. This should lead to a slight performance bump.<br />
** The editor has also now been set up to detect incorrect settings for these.<br />
<br />
* We had some extra uv2 and color and so forth channels on about 510 of our meshes, and we've now removed those. The amount of data was small, but it was useless info to be sending to the GPU since our shaders don't read from those. Every little bit of data shaved off when you're pushing millions of polygons on a millisecond scale is a win, not that it was causing problems in our testing thus far.<br />
<br />
* Fixed a bug where the single-ship-in-a-squad units were not being properly scaled down location-wise.<br />
* There was previously a bug in the profile screen where it was reversing what your body and trim color selections were on the box-based examples.<br />
** The icon-based examples were fine, but now the boxes have been corrected to match the icons.<br />
<br />
* Fixed a likely-longstanding bug where the scale of ships would drift smaller and smaller the longer you played, depending on how many times pooled ship visual instances of that type were reused due to deaths or due to switching in and out of the galaxy map view or between planets. Some went extremely fast, such as the recently added AI command stations. We suspect this is also what was going on previously with the warp gates.<br />
<br />
* Previously, the icon scales could sometimes be incorrect when tabbing back from the galaxy map, until you scrolled the camera around a bit. Fixed.<br />
<br />
* The placement mode icons were never scaled up or down to match the size they would be once placement was complete. Fixed.<br />
<br />
* Fixed a since-forever bug where the colors of icons in the main view were lighter than those in the sidebar. Turns out it was not color grading being applied, but rather that we were passing in our Color type parameters as Vector4s. This worked, sort of, but the typo wound up transposing the data slightly for some reason. Why it didn't just function correctly or fail completely is a solid mystery, to be honest.<br />
<br />
* Fixed an issue where opening savegames that were originally saved in a different campaign name but have been manually moved to a new folder were using the old campaign name instead of the new one as far as "continue last save" was considered.<br />
<br />
* Previously, if continue last save was not able to load the last save because it couldn't find the file, it was not showing any error. Now it tells you what the issue is.<br />
<br />
* In the game setup screen on the galaxy map, it no longer shows the colors of any factions other than player planet names (since in games with a lot of factions that actually gives away info).<br />
<br />
* In the game setup screen on the galaxy map, it now shows the player names under each planet name controlled by one.<br />
<br />
* Once into the game, it no longer shows the color of the faction on the other side of a wormhole if you've never scouted that planet at all.<br />
<br />
* Fixed an issue with the little bottom-left menus where the mouseover of elements behind them could sometimes happen because there were cracks between the buttons. Now there's a backplate behind the entire windows in those locations.<br />
<br />
* The underlying flag under the queue pause button was not actually implemented (it may have previously been the loop flag), so it didn't work; now it's implemented and works to pause that queue. Incidentally this does not disable any other functions of the building unit, unlike in AIWC where it was done through the general "disable everything" mode<br />
<br />
* Removed requirement that you have had units on a planet before you can send units there on the galaxy map (leftover from the sensor-scrambler scouting model)<br />
<br />
* Fixed a bug where the game was still trying to seed design-template-servers when the AI unlocked something new, despite those not currently being defined in the game, and thus throwing errors<br />
<br />
* Fixed a bug where AI ships freed by a minor faction still just went after the humans<br />
<br />
=== Misc Improvements And Additions ===<br />
<br />
* Added a new IGameEntityDescriptionAppender, which can be linked up using the new xml tags description_appender_dll and description_appender_type.<br />
** One example is presently in place with the human home command station and a test class called AnyUnitExampleAppender.<br />
** This is something that can be used for adding arbitrary unit-specific or class-specific dynamic text to the description of any unit or unit type. This is likely to be widely useful as we build out the UI later on, because we can put in context-specific warnings and commentary, for instance.<br />
<br />
* If a ship has been shot to death into remains, it now says REMAINS in red after the name of the ship in the mouseover, and it tells you what the remains means and that you need a remains rebuilder in the description text. Otherwise this was absolutely mystifying as to what was going on!<br />
<br />
* When ships are under construction directly on the battlefield, it now shows the health bar to show the progress that they are making towards completion. Holy cow did things feel incomplete without that.<br />
<br />
* Hey, does the scale of the grav wells on planets feel too small to you? Here's how you can tune the numbers. For example, at the moment we've doubled the size of the grav wells, and we'll see how that feels. To do the doubling, since that's simple math, here are the changes:<br />
** GameData/Configuration/ExternalConstants/KDL_VanillaConstants.xml<br />
*** distance_scale_gravwell_radius 13000 to 26000 (This makes the sim-level grav well twice as large, but if you just change this then visually things will draw very wrong. Must be an integer.)<br />
*** asset_base_unit_radius from 100 to 200 (This makes the units draw half as large as they previously were. It has to be an integer).<br />
** GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml<br />
*** combat_visual_scale_divisor from 10 to 20 (This makes the position of units, and the size of their selection radius, all make sense visually. Whatever multiplier you apply to distance_scale_gravwell_radius, apply the same one here).<br />
*** forcefield_visual_scale_divisor from 5 to 10 (Same deal, forcefields will look the wrong size if this isn't adjusted).<br />
** There actually may be a few other settings that we overlooked, but hopefully this is a comprehensive guide. If not, we'll update this in the future if we discover a hole.<br />
<br />
* Selecting a constructor unit (like the Space Dock or Starship Constructor) will automatically open the Build Tab on the sidebar. It was really annoying to click on a constructor, then realize you need to also click on the Build Tab. Note that hitting "B" is more efficient than clicking on a constructor anyway.<br />
<br />
* Dark Spire: Different factions produce different amounts of Energy when their units kill or are killed. These values are tunable in the XML. The AI or players units produce more energy than minor factions like the Macrophage, Devourer or Nanocaust.<br />
<br />
* In the planet view, linked planet names are no longer shown over wormholes unless you are holding down the ctrl key. Thus you can easily see the names, still, but they aren't cluttering up your view all the time (and making the gravity well feel smaller in the process). This also has the benefit of making it really obvious when you can click to send your ships or camera through the wormholes.<br />
<br />
* Now that warheads are no longer a resource that should be shown on the top bar, we're bringing back the attack warning/numbers up there. This shifted around several elements on the top bar, spatially, but put the new attack warning in the bottom right of that bar.<br />
** Slightly different from the first game, the new attack indicator shows the number of hostile enemy ships on ANY player planets, not just those you own. That seems relevant. It has three states: a greyed-out "nothing's here" safe shield with checkmark, a yellow and orange "things are here, but not on your personal home planet," and then a red and white warning "there are at least some of these guys on YOUR home planet."<br />
** Undoubtedly we'll adjust this some over time. One oddity you'll notice is that the frequency of the flashing of the text in this field is inconsistent. That's unfortunate, but a side effect of the way that unity dirties its GUIs rather than drawing every frame, along with the multithreaded queued approach we take on top of that.<br />
** The tooltip will list all your planets that are under attack sorted by the strength of the attack<br />
<br />
* The quick start button now actually works, although it goes to the same location as the custom start. A tooltip notes that the quick start variant is coming soon. However, some folks were confused and not thinking to go to the custom start, so here we are.<br />
<br />
* On the galaxy map and in the planet view, the icons for ships now are rotated to billboard toward the camera on the GPU instead of on the CPU. This saves an enormous amount of processing when there are many icons, and means that we can update the scale of icons more rapidly even when there are many many icons on screen -- getting rid of that delay in rotation/scale that was seen in prior versions of the game. There still IS a delay built in, just in case you absolutely flood your screen with icons, but it shouldn't be hit in normal gameplay (or if it is, we'll adjust this further based on profiling of said savegames). Additionally, since the rotation is run on the GPU, that means that CAN'T happen any way other than instantly, which is nice.<br />
<br />
* The color picker UI has seen a number of updates:<br />
** The individual color cells are now far smaller, letting you see tons more of them at once, and feeling more like traditional color pickers.<br />
** The selected color cells no longer blink their main color, but instead blink a little border around them. It's a lot more obvious what is going on now, and no longer seems like a bug. The flashing is still needed because the borders get lost in the riot of colors, otherwise. Hazard of having so many options.<br />
** There is now a section of preset options (combos of body and trim colors) down at the bottom of the screen. These give attractive options that also don't conflict with any of the NPC factions. This is one of those things that makes the game infinitely more usable.<br />
*** There are eight of these right now, but it's possible to define more via xml.<br />
<br />
* The in-game tooltips for planets and units/objects now shows in the bottom left, as it previously did in AIWC.<br />
<br />
* The selected ships notice now also shows up down at the bottom of the screen, where the tooltips do. It only shows if a tooltip (or the escape menu) is not showing. This saves important space in general, and also paves the way for the notifications bar up at the top to finally have room.<br />
<br />
* Scouts have a much higher movespeed than anything in the game, so the approximation for lerping squad movement was much higher than anything else. This caused scout movement to feel very jerky. Instead we put a cap on the fastest possible visual movespeed for a squad.<br />
<br />
* Fixed a bug deep in the bowels of our UI code that was leading to a lot of higher-level bugs with things being positioned incorrectly, etc. The most recent manifestation of this, in the working versions of the pivot build, were un-owned metal desposit spots showing up half off the sidebar.<br />
<br />
* Added a new "Owned by Nobody" section on the ships section of the sidebar, since that's a legitimate fourth category. Golems that nobody controls yet, un-owned metal spots, etc, etc.<br />
** Also new, the items in this category can be seen on the sidebar if you've ever been to the planet before, even if you don't have vision of the planet right now. This is pretty handy.<br />
<br />
* Engineer and Rebuilder FRD now works (though their prioritization leaves something to be desired)<br />
<br />
* AI planets directly adjacent to a human homeworld no longer seed guardians or sentinels, to match AIWC (AIWC had wormhole guard posts, now known as wormhole sentinels, but their omission is not significant)<br />
<br />
* Guardian counts have generally been significant reduced, and are now proportional to planet mark level as well as number of guard posts<br />
<br />
* A bonus ship type can now be selected for each human faction (currently you have to click "more" to get to this, since the space is already taken by the two color dropdowns and the Ark dropdown)<br />
<br />
* You now start with 10k science, and all weapon turrets (except beam), to parallel AIWC<br />
<br />
* Your command stations will now automatically claim metal spots, to better resemble what happened after capturing a planet in AIWC.<br />
<br />
* Made the planet view cursor code moddable and open source.<br />
<br />
* Constructors can now be set to rally units they build to either an already existing control group or to a point chosen by the player.<br />
<br />
=== Keyboard/Mouse Input Overhaul ===<br />
<br />
* Previously we were using some middleware called Rewired, which was bulky and inflexible in a variety of ways. It's super useful if you want to handle a bunch of gamepads and in particular if you want to have design-time-defined controls. Our use case was diverging enough that all it added was bloat, though, because we had to write our own runtime-control-definition layer, poll the list of all our controls while it polled all the keys under the hood, and other messy things like that. So Rewired is out.<br />
<br />
* We brought in what started as EasyInput from ootii as replacement middleware, then pared that down to just the keyboard and mouse bits. We then basically rewrote the entire thing so that it's more efficient, uses no dictionary lookups during the game loop, and is compatible with all the things we want it to do for this game. So ultimately we wound up just kind of creating our own.<br />
<br />
* The new input system has a lot of performance benefits, but one of the biggest things it will do is make it easier for us to define all of the keybinds in xml, no matter how many we have. All of the keybinds that were previously hardcoded have now been moved to xml.<br />
** It was previously somewhat difficult for us to check if something was just pressed, just released, being held, etc, in an efficient and automated way. This is now something that can be directly specified in our xml definitions for the keybinds.<br />
** We also have a new Custom type of key check, which basically skips the whole Handler reflection-linking process and instead just lets classes elsewhere in the code get an object reference to that key and then check it as needed. This is very useful for modifier keys of any sort, and for all of the camera controls.<br />
<br />
* Work has also been done to prep this for an actual interface for viewing and editing keybinds in game. We'll get that in place prior to Early Access, but for now we have a few other fish to fry.<br />
<br />
* A variety of bugs relating to keys that could be triggered on the main menu that were only supposed to be in-game have been fixed.<br />
<br />
=== Galaxy Map Improvements ===<br />
<br />
* The galaxy map is now using a purely top-down camera with the ability to pan and zoom but no ability to tilt or rotate the view. There have been a number of valid issues brought up with the existing galaxy map, and we're starting to work through those now. Lots more to come, but here are some of the first bits.<br />
<br />
* Players can now see the entire galaxy map structure -- meaning the actual planets and their wormhole links and lines -- from the start of the game.<br />
** This is the same data you see in the lobby, so it was always strange that we took it away after the game started in Classic and this game.<br />
** This does NOT grant you any actual visibility on the planets as to their contents, owners, resources, ships present, or anything else.<br />
*** Aka, this is not a reduction of fog of war, it's just the ability to see the shape of the battlefield, same as you already could in the lobby.<br />
<br />
* Previously, on the galaxy map it would take you into the planet view as soon as you clicked a planet, unless you held Alt. This was not helpful for a variety of reasons, so based on user feedback it now by default just switches which planet is selected but doesn't change the view unless you hold Ctrl.<br />
<br />
* When you are on the galaxy map, it now only shows the name of the planet you are currently viewing unless you hold down the ctrl key. This is a lot more like the first game, and is way less cluttered.<br />
** In the lobby, it shows the names for all human planets, with their colors on there.<br />
<br />
* You can no longer zoom the galaxy map so far in, you start further zoomed out, and you can zoom out further.<br />
<br />
* On the galaxy map, the visuals for the planet are now 4x larger, making them easier to see at farther zoom ranges. This is essentially the same as making the planets "closer together," so to speak, in its effect on how you view the map.<br />
<br />
* Rather than drawing the literal visual of the planet on the galaxy map, which turned out to be fairly pointless, we now draw icon-like 3D models in place of them.<br />
** These show the color of the owning party for the planet, if there is one, and they show a different icon for unscouted (ever), regular, and homeworld planets.<br />
** The regular-planet icons are a bit different for marks 1-5 of regular planets, incidentally (anything over mark v shows the mark 5 graphic for the planet itself). These help give you an indicator of the strength of planets when they are in the hands of the AI.<br />
*** After you capture a planet, it still retains its graphical styling for what mark level it used to be, which is a subtle but cool way of showing your progress in the past.<br />
<br />
* On the galaxy map, the selection ring is now fancier, easier to see from a distance, and it rotates to make it even more obvious where it is.<br />
<br />
* The "king unit" no longer shows up next to home planets on the galaxy map. Instead, now the planet itself is showing up looking different. It's a lot easier to tell what the heck is going on, now!<br />
<br />
* The text on the galaxy map that shows the strength at planets is now a lot more clear, and more useful in general. Before it just showed the amount of threat at any given planet, period.<br />
** Now it shows a yellow row with a strength icon for any allied + self units that are on that planet (or omits the line if that total is zero).<br />
** In the same fashion, it shows a purple row for any threat on the planet IF you currently have vision there. Or omits the line if none.<br />
** And also in that same fashion, again if you have vision there, it shows a red row for the total of hostile strength on that planet that is NOT threat.<br />
** Now you can actually see what sort of dangers there are to your planets, which planets of yours are outnumbered, and all sorts of other useful things like that!<br />
** It actually shows the strongest forces (allied or enemy) on the top or bottom. It doesn't sort the threat vs not threat, but moves those as a bloc.<br />
<br />
* Also adjusted the placement of the "lower text" on the galaxy map to be centered right below the planet name, rather than down and to the side. Previously it often looked like the threat counts were located at some other planet instead of the planet they were actually on.<br />
<br />
=== Camera Improvements ===<br />
<br />
* The camera in the planet view has been something of a bugbear for a little while, because there were a variety of things that could go wrong with it. But even more than that, it was using a TON of keys on the keyboard: WASD and the arrow keys for movement, Q and E for rotation, and R and F for tilt. Time for revisions!<br />
<br />
* One of the new things that was most interesting was the idea of a "tilt and rotate" mode, rather like what happens if you hold the right mouse button in Planet Coaster. We can't really use the right mouse button that way, and the middle mouse button makes more sense as the existing "grab and pan" functionality, so we've defined the mode modifier for that as Q now, or Mouse4 if you have a 4+ button mouse (those are awesome, incidentally).<br />
** Along with this change, the default bindings for rotation and tilt are simply set to nothing. If you want to bring back the Q and E and R and F the way they were, that ability didn't go away, but we're claiming those keys for other things instead (Q is already the tilt and rotate mode, whereas the others are unbound at the moment).<br />
<br />
* Along with this, zooming out could potentially put you out of bounds previously, if you had the camera tilted sideways a lot. Now when you zoom out, it un-tilts your camera to avoid this happening. Most other games do this same thing; technically it wasn't zooming out before, but just backing up laterally, anyway, if your angle was shallow enough. Now it actually always zooms out.<br />
<br />
* Previously it was possible for sometimes the mouse wheel to give way too much input in one frame, and send you shooting forward. Probably this was happening directly during a long Garbage Collector frame, although we're not sure. We've put in some safeguards to prevent this from happening, although if it is caused by something other than what we guessed then it will still happen and we'll have to add more safeguards elsewhere.<br />
<br />
* There's a new setting for the tilt/rotate mode that lets you set the sensitivity of that.<br />
<br />
* The "free look camera" stuff has all been commented out for now. We could in theory bring that back, but it felt awkward and was not really needed, ultimately. This removal also helps the settings menus be a little less overwhelming when it comes to camera options.<br />
<br />
=== Notifications Bar Added! ===<br />
<br />
* The wave and CPA warnings are back! Actually, they never were quite in the game in this fashion showing a proper countdown. They show a little icon and number box in the upper left of the screen, which you can hover over for more info.<br />
** Clicking on them takes you to the planet that is involved, if it's a specific planet.<br />
** For waves, it shows you the planet it is headed to, and it strength, on the notification badge itself. For CPAs, it just tells you a CPA is coming and when.<br />
** For these, it has a tooltip for each of them that tells you what a CPA is if you don't know, or what the composition of the incoming wave is if it's a wave.<br />
<br />
* The notification bar now includes entries for planets of yours that are under attack, and shows the total strength counts for those ships that are aggressing and those that are defending.<br />
** These are color-coded, and whichever is on top is stronger, so you can tell at a glance if you should be winning this fight (on paper; positioning and tactics are important if the numbers are close, of course).<br />
** The icon for this is different if it's your home planet versus one of your other planets, so this is yet another source of visible warning when your home planet is under attack.<br />
** As with the wave warnings, you can click these to immediately go to the planet in question.<br />
** The tooltips for these show the name of the planet that is being attacked, who the attackers are, who the defenders are, what small ships, large ships, non-combatants, and strength each participant has, and what critical infrastructure is located here for the defenders.<br />
*** Big thanks to Eric for designing all of these things (as with almost all of the GUI now, but this in particular is super cool).<br />
<br />
* There is now a general-purpose framework where developers and modders can add items to the notification bar from any faction.<br />
** This is useful for a variety of things, ranging from alerting you that a trader is visiting a planet and wanting to trade, to telling you marauders are after you, to other things of that nature.<br />
*** Note that we're not using it for any of those purposes yet, but the capability is now there -- and the first proof of concept is actually the planet under attack notices.<br />
<br />
* We now have the concept of critical infrastructure, which are simply items that you get warned about in the tooltip when they are on planets of yours that are under attack.<br />
<br />
=== Visual, Audio, and Workflow Improvements ===<br />
<br />
* The icons for ships are now just stored once in the game, at a single size, rather than twice at two different sizes. This makes it a lot faster for us to update the icons, and uses a bit less disk space.<br />
<br />
* Added a new visuals_scale_multiplier xml entry for GameEntities that lets us scale up or down entities as we wish for whatever purposes.<br />
** One of the biggest uses is so that we can have fewer prefabs that we have to initialize and keep in memory for ships that grow in size but nothing else during mark-level changes.<br />
** This is now in use on the AssaultStarship and the NeedlerGuardian, which are the only two ships re-implemented at this point for which this is relevant.<br />
<br />
* The tractor turrets look so cool that we've made them a bit larger and made it so that there is only one per "squad" on them. They look like they individually mean business as it is.<br />
<br />
* The visuals, icons, and scales for engineers, rebuilders, and human cryogenic pods are all now in place.<br />
** Note that only engineers and rebuilders are actually in the game yet.<br />
<br />
* Adjusted gimbal_base_scale from 2 to 2.5 in GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml so that the gimbal icons aren't so darn tiny. This seems to feel more like AIWC, now.<br />
<br />
* Human scouts and AI tachyon sentinels now have their graphics in place.<br />
<br />
* Added a new y_offset_of_ship_in_formation xml tag, which allows us to raise and lower ships from a squad as a group. This is useful for really tall structures, for instance.<br />
<br />
* Added the visuals for all of the command stations (AI, basic human, economic, logistical, military, warp jammer, human home, human home core).<br />
** This was quite a task to pull off in a satisfying yet recognizable way, but we finally have it. Basically these needed to be larger and more epic, yet stand out and not have too many polygons, etc.<br />
<br />
* All of the icons for the new command stations and such are now in place, and the icons for command stations show larger than other icons on the planet. The icons for the king units now show even larger. There are also different icons for each type of command station, in such a way that you can easily tell something is a command station, but also that it is some other kind of command station beyond the basic sort.<br />
<br />
* The voice_group xml tag that specifies what voice is used for ships is now required. For non-human-controllable ships, just using Silent is preferred, although it doesn't really matter since these voices only happen when a human player gives orders to the ship in question.<br />
** Previously these were partly defined on the weapon types, but this was far too broad a way of doing it (and had stopped working on our internal versions as part of the Pivot anyhow).<br />
<br />
* Visuals have been created for the energy collector, matter converter, science lab 1 and 2 (though only mk1 is in the game), raid starships mk1-4, metal harvester (and empty version), tractor guardians mk1-5, scout starships mk1-4, home human settlements, and hackers (though hackers are not in the game yet).<br />
<br />
* The visuals for the colony ship are now in place.<br />
<br />
* There are a lot more Arcen-based header menus in unity now for us to speed up repetitive tasks. Also ones for opening folders, and in general letting us work faster and with fewer clicks to get things done.<br />
<br />
* The icon definitions no longer need a _border entry in xml. They still need the actual files, but the game can find them just based off the original icon entry. Yay less typing and chances for typos.<br />
<br />
* Wormhole scaling-up has been removed, and will be replaced by a far-zoom icon like ships/squads get.<br />
<br />
* "GenericObjects" can now have a list of AlternativeMaterials specified. <br />
** This is used for the wormholes in particular so that they can change colors and cubemaps in order to represent different things, or even being hovered.<br />
*** On the wormholes, if you look into them, you'll see a distorted view of actual images from the ESA/Hubble, used with attribution. It's a neat little detail, and you have to get extremely close in to see it.<br />
<br />
* The wormhole visuals have been completely redone AGAIN, probably for the last time this time. We're using something called Scingularity, heavily modified for our purposes.<br />
** The wormholes are drawn using a single untextured quad, which then does a ton of math and uses a cubemap for the center of the singularity, and then a pixel shader to do the outer swirl. Because of this, it looks fantastic at any zoom level. And amazingly, it performs well. You don't need any special hardware.<br />
** In our case, we're using those EA/Hubble images noted above for the center of the wormholes, and then different normal maps for swirl patterns on each color of wormhole, and different colorizations on the wormhole swirls to indicate different things.<br />
** Greenish ones go to enemy planets, darker blue ones go to your planets, lighter blue ones go to allied planets, red/orange ones have a wave incoming, pale green ones go to allied or neutral NPC factions, and white goes to unowned planets.<br />
** When you are hovering over the wormhole -- which requires you to be holding ctrl down, incidentally, so that you can send either the camea or units through it -- then it glows at a much brighter temperature. Makes it far easier to know if you're actually hovering over it.<br />
<br />
* At long last, your choice of colors in the profile menu actually means something! Whatever you select on your profile for your body and trim colors are now used next time you go into the lobby.<br />
** The lobby is still the outdated style with the dropdown for colors, but now it has two colors there for your choosing, too. Using it that way is not ideal, but we'll get to that in the next few weeks.<br />
** For now, it's a very happy thing that we finally have two-color player colors in the game!<br />
*** For each place text is using the colors, it just uses the body color right now.<br />
*** There are presently be some issues with the icons in the main not matching the colors exactly, which is probably due to color-correction post-processing. We're going to be shifting those icons into the GUI camera soon anyhow, so that should solve that when we do. Until then, everything looks washed out in the main icon view.<br />
*** When it comes to showing that a unit is hovered-over, it now goes darker or lighter depending on whether its average color is greater than or less than half brightness; this is instead of the <br />
*** When it comes to showing that a unit is selected, it now adds a border around the mark level icon itself, and brightens the border of the unit color.<br />
** As an aside, when you change the colors and hit OK in the color picker in the player profile screen, it writes to the underlying log what the color selections are called. You can then use this in xml defaults if you're doing modding. Otherwise this doesn't affect you.<br />
** For all of the special factions, AI factions and subfactions, humans, and so forth, there are now default colors! With the two-tone colors we were able to do a lot more theming and nuance.<br />
*** Player colors are going to need to include some defaults for people to choose from, since it can be time-consuming to do so otherwise and you don't know if you're potentially selecting something similar to another faction's defaults. Providing some quick-pick attractive defaults is on our list prior to EA; we already have 8 sets of colors, but the interface isn't updated for that yet.<br />
<br />
* The icons for all ships have been improved, with more darkness and light on them, and more layers of borders and sub-borders, to make things really have contrast and stand out so that they are more legible.<br />
<br />
* Put in a fix to our spritesheet for the ship icons so that now there is substantially more padding in them, fixing some bleed-over between sprites (causing line artifacts, etc) at smaller mipmap levels (when an icon is shrunk a lot).<br />
<br />
* The game finally has "burning and dying" effects on the ship icons as they are killed. Thanks to Badger for continuously pushing for this, as well as for implementing the timing code portion of this. This really helps make the battles both more dramatic from the far zoom view, as well as frankly clearer what is going on.<br />
** We implemented this in completely open-source code between the C# and shader bits, so it can be tuned by other folks if desired. We though about using a ramp texture, but wound up going with a series of lerps between vector4s instead.<br />
<br />
* The font for the mark level numbers has been changed again, and looks much better now.<br />
<br />
* On the sidebar, the strength number is now shown abbreviated instead of written all the way out -- we're trying to standardize on that everywhere, as it's the easiest to read.<br />
** This also now applies to the resource bar at the top of the screen.<br />
<br />
* Fixed a variety of places that were incorrectly using the strength per subsquad instead of the strength per squad -- including in some of the targeting logic for ships.<br />
<br />
* Fixed a bug with the ships tab of the sidebar where it was including the strength of noncombatants in the total strength for the planet, which was not remotely useful. Now it just shows the strength of combatants, like everywhere else, which gives you a much more valid picture of the battlefield. Defensive strength of noncombatants is kind of incidental to that.<br />
<br />
* At a few places in the game, we were showing "Human Remnant" as the faction name instead the name of the player in question. Now we show the player name.<br />
<br />
== Version 0.743 Music Blooms ==<br />
(Released May 2nd, 2018)<br />
<br />
* The second half of the AI War 2 soundtrack is now in place! These pieces, as specified in the kickstarter, are all remixed/remastered versions of tracks from AI War Classic. In there we have the Defeat and Victory tracks from the first game, Nomad Sunrise from DoW, Intro and Midnight from the base game, Night Light from LOTS, Rising Up from VOTM, and Voyage to Zenith from TZR.<br />
** With this, we're now also distributing the full soundtrack (plus a variety of bonuses!) to all those backers who signed up for it. You should have an email with that link, and/or be able to see it in your backerkit profile page: https://aiwar2.backerkit.com/<br />
<br />
* The game now actually plays defeat music when you lose.<br />
<br />
* When you win, the game first plays the For The Fallen vocal track, and then goes into the from-Classic Victory track, then goes on to play regular music from the in-game rotation.<br />
** When you lose, the game plays the defeat track, then also goes back to the regular in-game rotation.<br />
** These two changes are aimed at people who want to keep playing after a victory or loss, which are a not-insubstantial number of people.<br />
** We actually have not tested this bit at all, so, uh, if it doesn't work properly like this then please do let us know and give us a savegame. We're kinda busy on a lot of fronts right now! Normally we unit-test things, though.<br />
<br />
* We're now internally using the Asset Bundle Browser to help us find trouble spots with overlarge pieces of data in our asset bundles that we're building for the game. This helps with load speed, runtime efficiency, and asset bundle build speed.<br />
** On github: https://github.com/Unity-Technologies/AssetBundles-Browser<br />
<br />
* Slightly improved the efficiency/size of the effects asset bundle.<br />
<br />
* Reworked the bloom effects to use the Natural Amplify Bloom effect rather than the Realistic one. This, plus a couple of other tweaks in that area, lead to something that still has bloom, but is a lot more subtle than before. Some folks were complaining about that with the teaser trailer, and we can see their point.<br />
<br />
== Version 0.742 Hotfix ==<br />
(Released May 1st, 2018)<br />
<br />
* Fixed a bug where the total seconds to load was only being reported in output.log, and not in the ArcenDebugLog.<br />
<br />
* On the main menu, it now shows how long it took to load the game, and you can hover over that to get details if you want. The "logged in as Steam user" info is right below that, and both are a bit smaller now.<br />
<br />
* The loading feedback on the sound effect items and graphics items are now more coarse, leading to faster overall loading times compared to the last internal versions.<br />
<br />
* The method for tracking how much time has passed has been adjusted to use DateTime.Now instead of the Stopwatch class, since we had some questions about accuracy.<br />
<br />
== Version 0.742 Darkly Loading Spire ==<br />
(Released May 1st, 2018)<br />
<br />
* Rather than looking like the application is hung when it starts, the game now shows the loading progress in the form of what it's doing at the bottom. It doesn't show a loading bar, but it does show a counter of how long has elapsed, and how long specific long-running bits are taking.<br />
** This is useful both for us to know in terms of telling when something is overly slow to load, and it also gives players something to look at and a cue that there's not just a frozen application in front of them.<br />
<br />
* Surprisingly, the sound effects loading is taking twice as long as the loading of the graphical data right now (9.6s versus 4.4s on Chris's machine), so this is already an example of where we can optimize our loading speeds a bit, which saves everybody a lot of grief and saves the devs here time staring at the screen when it's time to test each item.<br />
<br />
* Additionally, now if the game has an error during load, it won't show a mishmash of all the gui windows all overlapping themselves in an insane and obviously-glitchy way. There is no functional difference between before and now, but it seems a lot less terrifying now if you're seeing it for the first time.<br />
<br />
* The loading log for how the game starts up is now more informative than ever, and on the long-running sections it actually shows a progress count rather than just hanging on those sub-parts. Sometimes those sub-parts can take 30 seconds or more on first run (though usually 4 seconds or so on subsequent runs), so having this feedback is pretty vital to this not feeling like maybe it locked up.<br />
<br />
* The alpha channel has been removed from a ton of images that didn't need it, letting the compression format be smaller on disk, in RAM, and in VRAM, as well as loading faster. This will definitely be kept, as it was useless data.<br />
<br />
* The max texture size for some of the non-diffuse texture channels for the ships are now cut way down from what they were before, to reflect the distances you typically see these from. This saves 300MB of RAM, disk space, and also lowers the VRAM requirements and makes rendering faster. It also makes loading vastly faster. This is definitely a quality/compression tradeoff, and we do still have the originals, so we may wind up making this an option or something in the future if it seems ugly to folks this new way. At a fairly casual glance by those who worked on the ship graphics, we can't really tell the difference, though; in side-by-side shots you would notice it, but that's about it unless we are mistaken.<br />
<br />
* The compression style for weapons effects and other sound effects has been changed to ADPCM instead of Vorbis, and these are now set to load on a background thread rather than the main thread. This makes loading vastly faster for the sound effects, although it does use something like 20MB of extra disk space. The amount of space used in RAM is identical, since we always decompress on load, anyway.<br />
<br />
* The voice acting clips are now set to stream in like the music does, as well as load on a background thread, rather than being preloaded or decompressed early. This actually saves quite a bit of RAM, and doesn't affect disk space, and saves an enormous amount of loading time. The downside is that it can cause a sub-second delay in playback of voice clips, but given the nature of a voice clip that is both imperceptible and irrelevant.<br />
** Different types of sounds have different characteristics and need different settings, and we've optimized these, in short.<br />
<br />
* Speaking of optimization, we're no longer doing full error-checks on load for each ship visual that is loaded in. That was time-consuming and pointless. In the ship designer windows it shows errors, and if someone commits a ship with errors that's something that is a goof on their part and not something we need every player machine checking for every time the game starts. So that saves another batch of time.<br />
<br />
* We're also doing another experimental thing, where with the solomesh ships we're directly using the asset bundle copies of the ships to get their meshes and materials, rather than instantiating a copy first.<br />
** Generally this is not advised, since it can cause a bunch of extra disk reads and other general slowness when accessing that data. However, in this particular case, since we're not actually accessing anything more than the data on these objects (we're not making copies of the object), we think it's not hitting the disk like that. We don't see any evidence of it in the profiler now, anyway, and we were in the past.<br />
** This speeds things up yet again, and so far so good on that front, but we may have to back this one out later.<br />
<br />
* Overall the loading speed of the game has more than doubled, in typical test cases thus far, and it actually is responsive while loading as well, which is an important first impression piece.<br />
<br />
* Fix a bug where the Nanocaust was never losing influence over a planet even after the constructor was destroyed<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Change the default colour of the Risk Analyzers<br />
<br />
* When the Human Marauders put Marauder Outposts on a planet, give them Influence over the planet (so it will be shown on the Galaxy map)<br />
<br />
* Initial commit of Dark Spire. Like in AIWC, it spawns ships based on energy it gains when ships die on a planet with a Vengeance Generator (VG).<br />
** Energy is tracked per VG. When VG energy > threshold it either shares energy with the VG with lowest energy or it spawns ships to attack. There's a Conversion Ratio when turning energy into ships; it starts out not very efficient (maybe 50% of the energy becomes ships), but every time a VG spawns new ships it becomes more efficient. <br />
** AI Overlords start with a Dark Spire Ward structure on their planets which prevents Dark Spire ships from going there. If a player destroys the Ward then the Dark Spire will be able to attack the AI overlord, thus giving you a new win condition.<br />
** Every so often the Dark Spire will attempt to spawn a Vengeance Generator Locus. The Locus will transform into a full Vengeance Generator in 5 minutes. If you don't kill the Locus in that time period then it turns into a Vengeance Generator. Planets are eligible for a Locus to spawn if they have no Human or AI ships on them, and they are adjacent to a Vengeance Generator without any human or AI ships on it.<br />
<br />
== Version 0.741 Music Part 1 Of 2 ==<br />
(Released April 29th, 2018)<br />
<br />
* The first half of the new tracks for the AI War 2 soundtrack are now in place: Abandoned Ship, Absolute Zero, Bouncing Lights, Event Horizon, Light Year, and Supercluster.<br />
** All by Pablo Vega, mastered by Dio, and all fantastic.<br />
<br />
* Update to Human Marauders behaviour. If they destroy all your forces on a planet then they will begin to construct Marauder Outposts which will spawn Marauder new units. This will make it harder to recapture planets. Every so often a new MarauderOutpost will be added, and existing MarauderOutposts will upgrade themselves to make stronger units. Note also that when the Marauders capture a planet they get a permanent boost to their MaxBudget, making them more dangerous.<br />
** If you allow the Marauders to get Mark 3 outposts then they will start getting Budget faster.<br />
** The balance levers are in XML for ease of use<br />
<br />
* The default game volume is now quieter in the hope of not deafening new players<br />
** Thanks to Flavin for the report<br />
<br />
* Improved the performance of music loading at the start of the game and during the game.<br />
<br />
* Fixed a regression in the prior version of the game where the first time any camera loaded a "traditional skybox" type of background, it would be solid black instead.<br />
<br />
* Fixed an issue where the construction part of the sidebar could show some stale data when switching from a planet with a builder to one without a builder.<br />
** Thanks to hawk for reporting.<br />
<br />
* Fixed a bug that nobody had reported yet with lightning attacks being very strange-looking and not like lightning bolts anymore.<br />
<br />
* Fixed a bug with the various type of geometry-based explosions (flak, lightning, etc) so that they now render additively in the transparent queue rather than the overlay queue, and so that they read from the zbuffer but no longer write to it.<br />
** This changes the effects a fair bit so that they no longer do things like eat into one another or the ship icons around them.<br />
** These will need further tuning to not be over-bright in huge battles, and they're on our list for further improvements visually anyway, but for now it's a good enough start.<br />
<br />
* Risk Analyzers: code tidying, also track the total and net AIP generated by Risk Analyzers. Eventually this is going to turn into 'When X AIP is generated by Risk Analyzers, do something unpleasant to the player', probably an exo wave, once exo waves are added<br />
<br />
* Map Types: Add a new planet placement mechanism for Simple and Realistic, and tweak one of the previous placement algorithms for Simple and Realistic<br />
<br />
* Fix some bugs with Marauders, where outposts weren't upgrading properly.<br />
<br />
== Version 0.740 Clean Up That Nebula, Young Man! ==<br />
(Released April 26th, 2018)<br />
<br />
* Fix some dumb bugs in the HumanMarauders faction that was preventing the marauders from correctly analyzing your planets to see which they should attack<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a bug where the Vis layer was not correctly setting the Shot location when we tabbed into a planet with the shot in flight; it was assuming the shots should be at the middle of the planet, which is manifestly incorrect<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fix a bug where where if a non-Nanocaust faction killed a unit that had taken Nanocaust damage, the killing faction would get the new zombie ship instead of the Nanocaust. <br />
** Thanks to OvalCircle for reporting<br />
<br />
* A new and frightening visual look for Usurpers has been added. These will be absent for a while until we get past the "Fun point" once Keith gets his first wave in place, but then we expect these to come back pretty darn fast, so we want them to look nice and scary). (These are the AI ships that recapture planets)<br />
<br />
* The infrequently-changed space backgrounds, and planet graphics, have all been moved into a new internal AIW2Scenery unity project, which saves us a _ton_ of time when actually building the gui asset bundles, or ship asset bundles, for the game.<br />
<br />
* The sound effects and voice acting files have all been moved out of the platform-specific projects, and out of the modding and gui project in general.<br />
** These are now in the GlobalBundles folder, which saves some disk space if you've got multiple OSes of the game installed at once. It also saves us time when pushing new versions of the game, and has less of a footprint on the system for everybody thanks to the modding unity project now being much smaller without all those files.<br />
** This does make some of the sound stuff a bit harder to mod, but we'll just throw that stuff up on github or google drive or something when the time comes. It's not worth inconveniencing everyone over putting it directly in the build.<br />
<br />
* There were a variety of old "space boxes" that were from back in the kickstarter days that were just... underwhelming. They were nicely colorful, but had kind of gross large stars in them, and in some cases just junky colors in general. These have either had their gross big stars patched out, or they've been removed.<br />
** Overall these have mostly been removed except for the best couple of them (which now have color variants!). <br />
** This saves about 200mb of RAM for something that wasn't looking so hot in general, and makes the game load faster, too.<br />
<br />
* Our middle-style "nebula sphere" type of backgrounds previously had a really bad problem with distortion on the starfields. This was just embarrassing, and led to some perfectly-fine spaceboxes looking really gross depending on the angle of view, instead. These have all been fixed up with a revised shader for handling those starfields as simple tiling rather than triplanar reading.<br />
<br />
* Our most recent, and best-lookg style of space backgrounds, which are based on traditional skyboxes, were absolutely HUGE, taking up more than 450mb on disk, and in RAM. Each one was 12MB of VRAM to render, as well, although that's unavoidable to keep the starfields crisp using a non-tiling cubemap like that.<br />
** We've now split these out so that the stars themselves are in a separate cubemap which is the larger size, and then the nebula parts are able to be a quarter of the size (half the side length) without any drop in quality. This adds 3MB of VRAM usage per draw (of which there is exactly one per frame), but saves over 300mb of disk space and system RAM during runtime, as well as making the game, once again, load faster.<br />
<br />
* 49 new space backgrounds have been added, based on 8 source cubemaps, to replace the ones that were taken away (though this actually adds back more than were taken).<br />
** The new skyboxes are way higher quality than the ones that were removed, is the main point, anyhow.<br />
<br />
* The starfield backgrounds on the galaxy map are now much more neutral, with mostly black and a little bit of white. Easier to see foreground objects on them, now.<br />
<br />
* Fixed a bug where once you viewed an old-style spacebox background, it wasn't letting you view any "traditional skybox" backgrounds, which explained the over-prevalence of the former.<br />
<br />
* The settings option for "background style" has been removed, as that's no longer really relevant to anything.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Final Pre-Beta Checks]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Pivot&diff=30902AI War 2:The Pivot2018-06-29T16:41:39Z<p>Keith.lamothe: /* Version 0.746 */</p>
<hr />
<div>== Known Issues ==<br />
* The lobby interface is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* '''Multiplayer is temporarily disabled''' while we focus on tightening up the single-player loop.<br />
<br />
* Arks are presently not used in the game, which means that also Chief Advisers are not used for now.<br />
<br />
* There are roughly 100ish ships/units that we still have not reimplemented from Pivot phases 3-5.<br />
<br />
* There are a variety of ships/units that don't have proper graphics or reuse icons at the moment.<br />
<br />
* There is not an in-game way to see and edit the control bindings yet.<br />
** But you can go into the created bindings file inside the PlayerData folder to edit them in a text editor.<br />
<br />
== What is this "Pivot?" ==<br />
<br />
The full details are on kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
<br />
The short answer is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
== Version 0.746 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* A few tweaks to prevent nullrefs in hovertext over ships, and to make them work properly in build and tech modes, as well.<br />
<br />
* Further protection against some data garbling that could happen on worker threads, which led to things like AOE attacks striking ships on other planets from the current one.<br />
<br />
* Fixed an issue where newly-created ships that were rallying into a control group could rally to themselves if they were suddenly the strongest ship in the control group.<br />
<br />
* Fixed an issue with Infrastructure being spelled wrong.<br />
** Thanks to Ovalcircle for reporting.<br />
<br />
* Put in a variety of protections against exceptions that could happen due to units no longer existing or being removed from any planet (aka the game) but having orders queued up for them and executed later.<br />
** Thanks to Ovalcircle and BadgerBadger.<br />
<br />
* Fixed a bug with 8 of the skyboxes that were causing nothing to render on their planets except wormholes. Uh... whoops!<br />
** Thanks to Ovalcircle and Badger.<br />
<br />
* Updated one of the really dark and pretty ugly skyboxes to instead be more white cloudy so that it's still faded out, but you can see more of what is going on.<br />
<br />
* Fixed the middle-mouse pan controls so that they act as expected; they were reversed as of the first pivot release.<br />
<br />
* Fixed an issue where if you upgraded a ship type (such as Fighter 1) to a higher mark (Fighter 2), it wouldn't keep the new level of fighters in all your queues. Now it immediately starts cranking out Fighter 2s instead of Fighter 1s after that upgrade.<br />
** Thanks to Badger for reporting.<br />
<br />
* Added keybind "Group Move" (default G)<br />
** Normally when you give units an order to move, attack, or enter a wormhole they go as fast as they can. Hold this button down to make them go at the speed of the slowest (mobile) unit to whom the order applies. Ignores speed debuffs like engine-damage, tractors, gravity, or paralysis.<br />
<br />
* Added keybind "Attack Move" (default X)<br />
** Normally when you give units an order to move, attack, or enter a wormhole they pursue the target point/object without regard to (other) enemies. Hold this button down to make them stop to fight anything they run across (more specifically, any time they're reloading).<br />
<br />
== Version 0.745 A Pivot And A Leap Forward ==<br />
(Released June 27th, 2018)<br />
<br />
* This is the first release of "The Pivot," which you can read full details of on Kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
** The short description is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
* As part of this, basically all of the game content that was pre-existing has been removed, and we're adding new content in a fashion as described below.<br />
** The interface and such from before has been retained, and then greatly expanded as part of this release.<br />
** The underlying engine and whatnot that we built has also obviously been retained, and we've also expanded that where needed in order to support the new content.<br />
<br />
* Existing savegames are all broken now. With the game basically being redone from the ground up in terms of units and content, this seems pretty reasonable. Older savegames would have been incredibly strange in the new version, anyway.<br />
<br />
=== Wave 1 of 5 of the Pivot ===<br />
<br />
* Wave 1 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Note that this obliterates a lot of the game that was previously known as AI War 2, and we're going to be adding back to this rapidly.<br />
** Please also note that a lot of the graphics for the post-pivot stuff is still inwork, which includes both icons and actual ship graphics. We have a lot to do!<br />
** Lastly, please note that this is putting a variety of kinks in our current GUI, so there is work incoming on that, too. We're basically making a mess at the moment, so please excuse our sawdust.<br />
** The overall goal of Wave 1 of the pivot was to get an end-to-end playable version of the game. By that, we mean the MINIMUM possible possible playable stuff, to be clear.<br />
** Main things that were thus included:<br />
*** Removing all the ships that previously existed, and then adding as new:<br />
*** Command station mechanics, and home command stations.<br />
*** AIWC-style mechanics for the AI home command station.<br />
*** Upgradeable mechanics for other command stations (so we can do econ, military, etc).<br />
*** AIWC-style metal harvesters, the seeding of them, and all that.<br />
*** Ditching power and fuel, and going back to the AIWC-style Energy mechanic, and adding energy collectors.<br />
*** Going back to AIWC-style mechanics for the space docks.<br />
*** Fighters, Bombers, and Missile Corvettes; and with that, a framework for applying the old AIWC balance numbers on top of our newer xml balance framework (until the framework and the numbers can be made to meet in the middle)<br />
*** Warp Gates for the AI, those were already pretty much the same between games.<br />
*** Engineers, and all the AIWC-style mechanics associated with them.<br />
*** A variety of turrets from the first game.<br />
*** Tractor turrets, but this time switching to the older AIWC-style mechanics for how those work.<br />
*** Scouts, and the AIWC-style scouting mechanics.<br />
*** AI Tachyon Guardians, which are simply a new unit, although possibly this included a shift to the AIWC-style cloaking mechanics? Not sure on that one bit.<br />
*** Science Labs, and the AIWC-style knowledge-gathering mechancis.<br />
*** Colony ships, and the AIWC style of those working.<br />
*** Mine layers, and the rebuilder mechanics that go along with those.<br />
*** Guard posts for the AI, and the mechanics that go with that.<br />
*** Some of the AI guardians, and the AIWC style of guardian mechanics (AIW2 was previously wrapping guard posts and guardians into one thing, but now that's more split)<br />
*** Force field generators, and a return to the AIWC style mechanic (with those now being present at all in general, too.<br />
*** Starship constructors, nothing major different here between the two games.<br />
*** Some of the basic starships.<br />
<br />
* For the time being, in the xml and underlying data structures, we still have global fuel and per-planet power.<br />
** However, everything is just using the global fuel now, to be more AIWC-like.<br />
** On the interface, we are now referring to this global fuel as being Energy again, as with AIWC.<br />
** We'll see how this continues to evolve, but for now that was the simplest thing.<br />
<br />
=== Wave 2 of 5 of the Pivot ===<br />
<br />
* Wave 2 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Now we're building back up a bit more in terms of having the game more recognizable, but there's still a lot to clean up before we even release it to you.<br />
** New ships, with their attendant mechanics, added:<br />
** Scout Starship mk1-4, Stealth Starship mk1-4, Shield Starship mk1-4, Siege Starship mk1-4, Sniper Starship mk1-4, Carrier Starship mk1-4.<br />
** Arachnid Guard Post mk1-5, Missile Guard Post mk1-5, MLRS Guard Post mk1-5, Laser Guard Post mk1-5, Shield Guard Post mk1-5, Stealth Guard Post mk1-5.<br />
** Tachyon Guardian is now Tachyon Sentinel. Added Wormhole Sentinel, Data Center, Advanced Research Station.<br />
** Matter Converter, Mercenary Space Dock (and mercenary versions of relevant ships), Home Human Settlement, Human Cryogenic Pod.<br />
** Multi-Needler Corvette mk1-5, Eyebot mk1-5, Armor Ship mk1-5, Autocannon Minipod mk1-5, Lightning Corvette mk1-5, Grenade Launcher mk1-5, Infiltrator mk1-5, Laser Gatling mk1-5, MLRS mk1-5, Raider mk1-5, Raptor mk1-5, Sentinel Frigate mk1-5, Sniper mk1-5, Space Plane mk1-5, Space Tank mk1-5, Spider mk1-5, Vampire Claw mk1-5, Vorticular Cutlass mk1-5, Tachyon MicroFighter mk1-5, <br />
** Flak Turret mk1-5, Laser Turret mk1-5, Lightning Turret mk1-5, Missile Turret mk1-5, MLRS Turret mk1-5, Sniper Turret mk1-5, Spider Turret mk1-5, Beam Cannon mk1-5, <br />
** Tachyon Array, Stealth Tachyon Array, Focused Gravity Generator mk1-5.<br />
** Laser Guardian mk1-5 as a rename from Needler Guardian, Stealth Guardian mk1-5, Sniper Guardian mk1-5, Missile Guardian mk1-5, Widow Guardian mk1-5, Tractor Guardian mk1-5, Lightning Guardian mk1-5, Flak Guardian mk1-5, <br />
<br />
=== New Faction: Astro Trains (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Astro Trains'.<br />
** When enabled, a bunch of Astro Train Stations are seeded on the map. Every so often the AI will create a Depot, then begin to spawn trains that head to the Depot. Trains will travel between the Stations, then eventually to the Depot. <br />
** For some depots, a train will be required to go "near" a player if possible so that you always have a chance to kill them. Whether trains are required to go near the player is tunable on a per-Depot basis.<br />
** There will be a number of different types of Depots. Some produce an effect whenever a train arrives ("Increase the next CPA's strength", "Spawn some ships for the Warden Fleet", etc), others produce an effect after a certain number of trains ("If 4 trains arrive then spawn a Golem"). Depots are defined entirely in XML so it's easy to add new ones or change their balance<br />
** There will also be a number of types of Trains based on the defenses they have. At the moment there is only 1 (and it's misnamed, Keith hasn't added its weapon system back into the Pivot yet)<br />
** Eventually I'd like to have the Trains give you metal when killed, but that mechanic isn't added yet. <br />
** This faction intended to be a More Interactive and Fun version of AIWC's astro trains, which I always found rather frustrating.<br />
** For other modders, this faction is a great example to look to since it defines a new table in the XML, which allows for very complex behaviour.<br />
<br />
=== New Faction: Macrophage (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Macrophage'<br />
** This faction is an invasion of giant organic Macrophage. They prey on Metal, devouring ships and structures they come across, and in particular they prey on the AI (since you haven't encountered them yet). <br />
** Macrophage live in colonies called Telium, which are hidden from the AI. A Telium sends out Macrophage to harvest metal by destroying human or AI ships. When a Colony has been fed enough metal it will create cloaked and harmless Spores which wander the galaxy. When spores encounter spores from other Telium they can reproduce to spawn a new Telium.<br />
** They are hostile to humans and AI alike, but not very intelligent.<br />
** If a Telium produces enough Macrophage, some of the Macrophage will be transformed into an Aggressive form and then go try to kill the human player. If a Telium is destroyed, all of the Macrophages associated with it will attack the player.<br />
** This faction is a bit like reimagining the Devourer Golem as a part of an ecosystem.<br />
<br />
=== Dyson Rework (Thanks, Badger!) === <br />
<br />
* The Dyson Sphere now uses a "Metal income per second" mechanic to spawn units instead of just arbitrarily creating things at a time interval. This makes it much much easier to balance.<br />
** Changing the intensity of a Dyson Sphere changes the income per second; the balance numbers for a given intensity are now in the XML.<br />
* Multiple Dyson Spheres can be enabled at a time, and each can have a different colour and intensity. Enabling X dyson spheres divides the income of a given sphere by X so multiple Dysons won't be able to just crush the Galaxy.<br />
* Dyson Spheres can be Antagonized, like AIWC. If a Dyson Antagonizer exists, all the Dyson Spheres drop what they are doing and start sending units to attack you. Previously created Dyson Sphere ships will keep their previous alignment (so if they were friendly before, they will fight Antagonized ships)<br />
** Antagonizers are not currently created by anything yet, so don't worry about them showing up yet. I imagine one of the Astro Train Depots will create antagonizers eventually, but there may be other mechanisms worth exploring.<br />
* Each Dyson Sphere now has a max Strength Allowed based on the current AIP; the higher the AIP the stronger the Dyson can get. The tuning for this is in the XML<br />
<br />
=== New Faction: Mercenaries (Thanks -- yet again -- Badger!) ===<br />
<br />
* Add new faction for Mercenaries. The Mercenaries are a much fancier version of the AIWC mercenaries (which are rebranded as "Auxiliaries").<br />
* Mercenaries are groups of units defined in the XML that can be hired to come fight for you temporarily using metal or hacking points. We may define other costs for them as appropriate going forward. A small set of mercenaries are defined right now with no attempt for balance, just to illustrate the various options that exist. Each group has a name and backstory and different behaviour. Some only defend one planet, others patrol nearby worlds (and will go help any of your planets if they are attacked), others will kamikaze at the AI. Some groups consist only of turrets and engineers. One group is a large cloaked unit that can be summoned on an AI world which will hopefully distract the Warden fleet, but that's untested.<br />
<br />
* Options for mercenary groups that can be specified in the XML<br />
** On Spawn behaviour: Fight all enemies on a current planet, then warp out. Defend this planet. Patrol nearby friendly planets (they will detect attacks on nearby planets and go help). Kamikaze into the AI. <br />
** Planet summoning restrictions: Can only be summoned on a Friendly planet, an AI planet, a planet not owned by the AI, or anywhere<br />
** Seconds allowed to exist: mercenaries will only stick around for a certain amount of time (in seconds)<br />
** Times allowed to summon: If the Primary unit of the mercenary group survives to the end of its "Seconds allowed to exist" then you can summon these mercs again, up to a certain number of times.<br />
** Cost: Metal, hacking points or both<br />
** Spawn Delay: the mercenary group in question will appear after this many seconds<br />
** Primary/Secondary/Tertiary units: A mercenary group can have up to 3 unit classes. You set these classes with the "[primary|secondary|tertiary]_unit_tag" field in the XML. Note that a tag can be on multiple types of units, and it will choose randomly among them. For example, we might have multiple units tagged with "MercenaryFleetship", and specifying that as one of the unit tags will pick among those at random. You can specify either a specific number of units with that tag, a strength of units, or both. So for example, one might say primary_unit_tag="MercenaryFlagship" primary_number_to_spawn="1" primary_strength_to_spawn="2000". If the Mercenary Flagship units all have 900 strength then this will summon 1 + 3 (we round up when calculating how many units for the strength) = 4 flagships.<br />
** Class: Defense/Offense/Utility. This is future proofing, we don't do anything with it yet.<br />
<br />
*At the beginning of the game, a number of Mercenary Communicators (I am open to a more flavorful name) are seeded on the map. Each Communicator grants access to some unique mercenary groups. If you are holding a planet with a Mercenary Communicator then you can summon those mercenaries.<br />
<br />
*The two key advantages of mercenaries over regular ships are that they don't cost energy and they can be summoned more quickly. Also some may do other fancier things later (like the warden fleet distractor). There is nothing preventing someone from tweaking the XML to allow you to hire the Devourer, for example, as a fun alternate win condition.<br />
<br />
*How quickly the Mercs appear is tunable on a per Group basis (so we could have identical groups, one that spawns in 60 seconds and costs X metal, another that spawns in 5 seconds and costs 5X metal).<br />
<br />
* AIWC style mercenaries are rebranded as "Auxiliaries"<br />
<br />
=== Marauders Expansionism ===<br />
<br />
* When the Marauders capture a planet, if they get up to Mark III outposts then they will begin spawning Raiders, powerful starships that will attack weakly defended nearby worlds. So if you give the Marauders and inch they will expand rapidly (the ideal case is "You've cleared out a bunch of planets but haven't captured them, and the Marauders will build an empire there if you don't watch out").<br />
* Make Marauders hostile to everyone. This means that neutral planets or weakly defended AI planets are eligible to be captured by the Marauders. Remember that the Marauders capturing a planet will permanently strengthen the faction.<br />
** Thanks to Ovalcircle for the suggestion<br />
<br />
=== Misc Bugfixes ===<br />
<br />
* Fixed an oversight in some of the recent versions where the Dyson Sphere was missing its cage. It now has a shiny (literally) new material on it.<br />
<br />
* Slight rework of the Autosave code. You now can specify the interval for autosaves and the number of previous autosaves to keep. So if I want to take autosaves every 10 minutes and keep the last 6 then I'll be able to easily jump back to the game up to an hour before. The goal is to make it easy to savescum efficiently and effectively ;-)<br />
<br />
* Provide a workaround for the problem where people who had last used a no-longer-extant map type would hit a crash when they start the game. Those deprecated map types are now defined (so it won't cause a crash anymore), but hidden by default so they can't be selected.<br />
** This was reported by numerous people, including Valeroth, Clasmir, zeusalmighty and probably others<br />
<br />
* Fixed a since-forever bug where ships fast ships that wind up needing to move to not overlap something would start bouncing around like they needed to go to the little starship's room.<br />
<br />
* Fixed the scales and collision radii of the assault starships.<br />
<br />
* For now at least, the bobbing of ships within squads has been turned off. As steam user Bucketsmith pointed out, it looked too much like ships on the ocean. It was meant to give a sense of life to the ships, but after he pointed this out to us, we couldn't stop seeing it, either...<br />
<br />
* The game now has proper settings on all the ship renderers for dynamic occlusion, motion vectors, shadows, etc. This should lead to a slight performance bump.<br />
** The editor has also now been set up to detect incorrect settings for these.<br />
<br />
* We had some extra uv2 and color and so forth channels on about 510 of our meshes, and we've now removed those. The amount of data was small, but it was useless info to be sending to the GPU since our shaders don't read from those. Every little bit of data shaved off when you're pushing millions of polygons on a millisecond scale is a win, not that it was causing problems in our testing thus far.<br />
<br />
* Fixed a bug where the single-ship-in-a-squad units were not being properly scaled down location-wise.<br />
* There was previously a bug in the profile screen where it was reversing what your body and trim color selections were on the box-based examples.<br />
** The icon-based examples were fine, but now the boxes have been corrected to match the icons.<br />
<br />
* Fixed a likely-longstanding bug where the scale of ships would drift smaller and smaller the longer you played, depending on how many times pooled ship visual instances of that type were reused due to deaths or due to switching in and out of the galaxy map view or between planets. Some went extremely fast, such as the recently added AI command stations. We suspect this is also what was going on previously with the warp gates.<br />
<br />
* Previously, the icon scales could sometimes be incorrect when tabbing back from the galaxy map, until you scrolled the camera around a bit. Fixed.<br />
<br />
* The placement mode icons were never scaled up or down to match the size they would be once placement was complete. Fixed.<br />
<br />
* Fixed a since-forever bug where the colors of icons in the main view were lighter than those in the sidebar. Turns out it was not color grading being applied, but rather that we were passing in our Color type parameters as Vector4s. This worked, sort of, but the typo wound up transposing the data slightly for some reason. Why it didn't just function correctly or fail completely is a solid mystery, to be honest.<br />
<br />
* Fixed an issue where opening savegames that were originally saved in a different campaign name but have been manually moved to a new folder were using the old campaign name instead of the new one as far as "continue last save" was considered.<br />
<br />
* Previously, if continue last save was not able to load the last save because it couldn't find the file, it was not showing any error. Now it tells you what the issue is.<br />
<br />
* In the game setup screen on the galaxy map, it no longer shows the colors of any factions other than player planet names (since in games with a lot of factions that actually gives away info).<br />
<br />
* In the game setup screen on the galaxy map, it now shows the player names under each planet name controlled by one.<br />
<br />
* Once into the game, it no longer shows the color of the faction on the other side of a wormhole if you've never scouted that planet at all.<br />
<br />
* Fixed an issue with the little bottom-left menus where the mouseover of elements behind them could sometimes happen because there were cracks between the buttons. Now there's a backplate behind the entire windows in those locations.<br />
<br />
* The underlying flag under the queue pause button was not actually implemented (it may have previously been the loop flag), so it didn't work; now it's implemented and works to pause that queue. Incidentally this does not disable any other functions of the building unit, unlike in AIWC where it was done through the general "disable everything" mode<br />
<br />
* Removed requirement that you have had units on a planet before you can send units there on the galaxy map (leftover from the sensor-scrambler scouting model)<br />
<br />
* Fixed a bug where the game was still trying to seed design-template-servers when the AI unlocked something new, despite those not currently being defined in the game, and thus throwing errors<br />
<br />
* Fixed a bug where AI ships freed by a minor faction still just went after the humans<br />
<br />
=== Misc Improvements And Additions ===<br />
<br />
* Added a new IGameEntityDescriptionAppender, which can be linked up using the new xml tags description_appender_dll and description_appender_type.<br />
** One example is presently in place with the human home command station and a test class called AnyUnitExampleAppender.<br />
** This is something that can be used for adding arbitrary unit-specific or class-specific dynamic text to the description of any unit or unit type. This is likely to be widely useful as we build out the UI later on, because we can put in context-specific warnings and commentary, for instance.<br />
<br />
* If a ship has been shot to death into remains, it now says REMAINS in red after the name of the ship in the mouseover, and it tells you what the remains means and that you need a remains rebuilder in the description text. Otherwise this was absolutely mystifying as to what was going on!<br />
<br />
* When ships are under construction directly on the battlefield, it now shows the health bar to show the progress that they are making towards completion. Holy cow did things feel incomplete without that.<br />
<br />
* Hey, does the scale of the grav wells on planets feel too small to you? Here's how you can tune the numbers. For example, at the moment we've doubled the size of the grav wells, and we'll see how that feels. To do the doubling, since that's simple math, here are the changes:<br />
** GameData/Configuration/ExternalConstants/KDL_VanillaConstants.xml<br />
*** distance_scale_gravwell_radius 13000 to 26000 (This makes the sim-level grav well twice as large, but if you just change this then visually things will draw very wrong. Must be an integer.)<br />
*** asset_base_unit_radius from 100 to 200 (This makes the units draw half as large as they previously were. It has to be an integer).<br />
** GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml<br />
*** combat_visual_scale_divisor from 10 to 20 (This makes the position of units, and the size of their selection radius, all make sense visually. Whatever multiplier you apply to distance_scale_gravwell_radius, apply the same one here).<br />
*** forcefield_visual_scale_divisor from 5 to 10 (Same deal, forcefields will look the wrong size if this isn't adjusted).<br />
** There actually may be a few other settings that we overlooked, but hopefully this is a comprehensive guide. If not, we'll update this in the future if we discover a hole.<br />
<br />
* Selecting a constructor unit (like the Space Dock or Starship Constructor) will automatically open the Build Tab on the sidebar. It was really annoying to click on a constructor, then realize you need to also click on the Build Tab. Note that hitting "B" is more efficient than clicking on a constructor anyway.<br />
<br />
* Dark Spire: Different factions produce different amounts of Energy when their units kill or are killed. These values are tunable in the XML. The AI or players units produce more energy than minor factions like the Macrophage, Devourer or Nanocaust.<br />
<br />
* In the planet view, linked planet names are no longer shown over wormholes unless you are holding down the ctrl key. Thus you can easily see the names, still, but they aren't cluttering up your view all the time (and making the gravity well feel smaller in the process). This also has the benefit of making it really obvious when you can click to send your ships or camera through the wormholes.<br />
<br />
* Now that warheads are no longer a resource that should be shown on the top bar, we're bringing back the attack warning/numbers up there. This shifted around several elements on the top bar, spatially, but put the new attack warning in the bottom right of that bar.<br />
** Slightly different from the first game, the new attack indicator shows the number of hostile enemy ships on ANY player planets, not just those you own. That seems relevant. It has three states: a greyed-out "nothing's here" safe shield with checkmark, a yellow and orange "things are here, but not on your personal home planet," and then a red and white warning "there are at least some of these guys on YOUR home planet."<br />
** Undoubtedly we'll adjust this some over time. One oddity you'll notice is that the frequency of the flashing of the text in this field is inconsistent. That's unfortunate, but a side effect of the way that unity dirties its GUIs rather than drawing every frame, along with the multithreaded queued approach we take on top of that.<br />
** The tooltip will list all your planets that are under attack sorted by the strength of the attack<br />
<br />
* The quick start button now actually works, although it goes to the same location as the custom start. A tooltip notes that the quick start variant is coming soon. However, some folks were confused and not thinking to go to the custom start, so here we are.<br />
<br />
* On the galaxy map and in the planet view, the icons for ships now are rotated to billboard toward the camera on the GPU instead of on the CPU. This saves an enormous amount of processing when there are many icons, and means that we can update the scale of icons more rapidly even when there are many many icons on screen -- getting rid of that delay in rotation/scale that was seen in prior versions of the game. There still IS a delay built in, just in case you absolutely flood your screen with icons, but it shouldn't be hit in normal gameplay (or if it is, we'll adjust this further based on profiling of said savegames). Additionally, since the rotation is run on the GPU, that means that CAN'T happen any way other than instantly, which is nice.<br />
<br />
* The color picker UI has seen a number of updates:<br />
** The individual color cells are now far smaller, letting you see tons more of them at once, and feeling more like traditional color pickers.<br />
** The selected color cells no longer blink their main color, but instead blink a little border around them. It's a lot more obvious what is going on now, and no longer seems like a bug. The flashing is still needed because the borders get lost in the riot of colors, otherwise. Hazard of having so many options.<br />
** There is now a section of preset options (combos of body and trim colors) down at the bottom of the screen. These give attractive options that also don't conflict with any of the NPC factions. This is one of those things that makes the game infinitely more usable.<br />
*** There are eight of these right now, but it's possible to define more via xml.<br />
<br />
* The in-game tooltips for planets and units/objects now shows in the bottom left, as it previously did in AIWC.<br />
<br />
* The selected ships notice now also shows up down at the bottom of the screen, where the tooltips do. It only shows if a tooltip (or the escape menu) is not showing. This saves important space in general, and also paves the way for the notifications bar up at the top to finally have room.<br />
<br />
* Scouts have a much higher movespeed than anything in the game, so the approximation for lerping squad movement was much higher than anything else. This caused scout movement to feel very jerky. Instead we put a cap on the fastest possible visual movespeed for a squad.<br />
<br />
* Fixed a bug deep in the bowels of our UI code that was leading to a lot of higher-level bugs with things being positioned incorrectly, etc. The most recent manifestation of this, in the working versions of the pivot build, were un-owned metal desposit spots showing up half off the sidebar.<br />
<br />
* Added a new "Owned by Nobody" section on the ships section of the sidebar, since that's a legitimate fourth category. Golems that nobody controls yet, un-owned metal spots, etc, etc.<br />
** Also new, the items in this category can be seen on the sidebar if you've ever been to the planet before, even if you don't have vision of the planet right now. This is pretty handy.<br />
<br />
* Engineer and Rebuilder FRD now works (though their prioritization leaves something to be desired)<br />
<br />
* AI planets directly adjacent to a human homeworld no longer seed guardians or sentinels, to match AIWC (AIWC had wormhole guard posts, now known as wormhole sentinels, but their omission is not significant)<br />
<br />
* Guardian counts have generally been significant reduced, and are now proportional to planet mark level as well as number of guard posts<br />
<br />
* A bonus ship type can now be selected for each human faction (currently you have to click "more" to get to this, since the space is already taken by the two color dropdowns and the Ark dropdown)<br />
<br />
* You now start with 10k science, and all weapon turrets (except beam), to parallel AIWC<br />
<br />
* Your command stations will now automatically claim metal spots, to better resemble what happened after capturing a planet in AIWC.<br />
<br />
* Made the planet view cursor code moddable and open source.<br />
<br />
* Constructors can now be set to rally units they build to either an already existing control group or to a point chosen by the player.<br />
<br />
=== Keyboard/Mouse Input Overhaul ===<br />
<br />
* Previously we were using some middleware called Rewired, which was bulky and inflexible in a variety of ways. It's super useful if you want to handle a bunch of gamepads and in particular if you want to have design-time-defined controls. Our use case was diverging enough that all it added was bloat, though, because we had to write our own runtime-control-definition layer, poll the list of all our controls while it polled all the keys under the hood, and other messy things like that. So Rewired is out.<br />
<br />
* We brought in what started as EasyInput from ootii as replacement middleware, then pared that down to just the keyboard and mouse bits. We then basically rewrote the entire thing so that it's more efficient, uses no dictionary lookups during the game loop, and is compatible with all the things we want it to do for this game. So ultimately we wound up just kind of creating our own.<br />
<br />
* The new input system has a lot of performance benefits, but one of the biggest things it will do is make it easier for us to define all of the keybinds in xml, no matter how many we have. All of the keybinds that were previously hardcoded have now been moved to xml.<br />
** It was previously somewhat difficult for us to check if something was just pressed, just released, being held, etc, in an efficient and automated way. This is now something that can be directly specified in our xml definitions for the keybinds.<br />
** We also have a new Custom type of key check, which basically skips the whole Handler reflection-linking process and instead just lets classes elsewhere in the code get an object reference to that key and then check it as needed. This is very useful for modifier keys of any sort, and for all of the camera controls.<br />
<br />
* Work has also been done to prep this for an actual interface for viewing and editing keybinds in game. We'll get that in place prior to Early Access, but for now we have a few other fish to fry.<br />
<br />
* A variety of bugs relating to keys that could be triggered on the main menu that were only supposed to be in-game have been fixed.<br />
<br />
=== Galaxy Map Improvements ===<br />
<br />
* The galaxy map is now using a purely top-down camera with the ability to pan and zoom but no ability to tilt or rotate the view. There have been a number of valid issues brought up with the existing galaxy map, and we're starting to work through those now. Lots more to come, but here are some of the first bits.<br />
<br />
* Players can now see the entire galaxy map structure -- meaning the actual planets and their wormhole links and lines -- from the start of the game.<br />
** This is the same data you see in the lobby, so it was always strange that we took it away after the game started in Classic and this game.<br />
** This does NOT grant you any actual visibility on the planets as to their contents, owners, resources, ships present, or anything else.<br />
*** Aka, this is not a reduction of fog of war, it's just the ability to see the shape of the battlefield, same as you already could in the lobby.<br />
<br />
* Previously, on the galaxy map it would take you into the planet view as soon as you clicked a planet, unless you held Alt. This was not helpful for a variety of reasons, so based on user feedback it now by default just switches which planet is selected but doesn't change the view unless you hold Ctrl.<br />
<br />
* When you are on the galaxy map, it now only shows the name of the planet you are currently viewing unless you hold down the ctrl key. This is a lot more like the first game, and is way less cluttered.<br />
** In the lobby, it shows the names for all human planets, with their colors on there.<br />
<br />
* You can no longer zoom the galaxy map so far in, you start further zoomed out, and you can zoom out further.<br />
<br />
* On the galaxy map, the visuals for the planet are now 4x larger, making them easier to see at farther zoom ranges. This is essentially the same as making the planets "closer together," so to speak, in its effect on how you view the map.<br />
<br />
* Rather than drawing the literal visual of the planet on the galaxy map, which turned out to be fairly pointless, we now draw icon-like 3D models in place of them.<br />
** These show the color of the owning party for the planet, if there is one, and they show a different icon for unscouted (ever), regular, and homeworld planets.<br />
** The regular-planet icons are a bit different for marks 1-5 of regular planets, incidentally (anything over mark v shows the mark 5 graphic for the planet itself). These help give you an indicator of the strength of planets when they are in the hands of the AI.<br />
*** After you capture a planet, it still retains its graphical styling for what mark level it used to be, which is a subtle but cool way of showing your progress in the past.<br />
<br />
* On the galaxy map, the selection ring is now fancier, easier to see from a distance, and it rotates to make it even more obvious where it is.<br />
<br />
* The "king unit" no longer shows up next to home planets on the galaxy map. Instead, now the planet itself is showing up looking different. It's a lot easier to tell what the heck is going on, now!<br />
<br />
* The text on the galaxy map that shows the strength at planets is now a lot more clear, and more useful in general. Before it just showed the amount of threat at any given planet, period.<br />
** Now it shows a yellow row with a strength icon for any allied + self units that are on that planet (or omits the line if that total is zero).<br />
** In the same fashion, it shows a purple row for any threat on the planet IF you currently have vision there. Or omits the line if none.<br />
** And also in that same fashion, again if you have vision there, it shows a red row for the total of hostile strength on that planet that is NOT threat.<br />
** Now you can actually see what sort of dangers there are to your planets, which planets of yours are outnumbered, and all sorts of other useful things like that!<br />
** It actually shows the strongest forces (allied or enemy) on the top or bottom. It doesn't sort the threat vs not threat, but moves those as a bloc.<br />
<br />
* Also adjusted the placement of the "lower text" on the galaxy map to be centered right below the planet name, rather than down and to the side. Previously it often looked like the threat counts were located at some other planet instead of the planet they were actually on.<br />
<br />
=== Camera Improvements ===<br />
<br />
* The camera in the planet view has been something of a bugbear for a little while, because there were a variety of things that could go wrong with it. But even more than that, it was using a TON of keys on the keyboard: WASD and the arrow keys for movement, Q and E for rotation, and R and F for tilt. Time for revisions!<br />
<br />
* One of the new things that was most interesting was the idea of a "tilt and rotate" mode, rather like what happens if you hold the right mouse button in Planet Coaster. We can't really use the right mouse button that way, and the middle mouse button makes more sense as the existing "grab and pan" functionality, so we've defined the mode modifier for that as Q now, or Mouse4 if you have a 4+ button mouse (those are awesome, incidentally).<br />
** Along with this change, the default bindings for rotation and tilt are simply set to nothing. If you want to bring back the Q and E and R and F the way they were, that ability didn't go away, but we're claiming those keys for other things instead (Q is already the tilt and rotate mode, whereas the others are unbound at the moment).<br />
<br />
* Along with this, zooming out could potentially put you out of bounds previously, if you had the camera tilted sideways a lot. Now when you zoom out, it un-tilts your camera to avoid this happening. Most other games do this same thing; technically it wasn't zooming out before, but just backing up laterally, anyway, if your angle was shallow enough. Now it actually always zooms out.<br />
<br />
* Previously it was possible for sometimes the mouse wheel to give way too much input in one frame, and send you shooting forward. Probably this was happening directly during a long Garbage Collector frame, although we're not sure. We've put in some safeguards to prevent this from happening, although if it is caused by something other than what we guessed then it will still happen and we'll have to add more safeguards elsewhere.<br />
<br />
* There's a new setting for the tilt/rotate mode that lets you set the sensitivity of that.<br />
<br />
* The "free look camera" stuff has all been commented out for now. We could in theory bring that back, but it felt awkward and was not really needed, ultimately. This removal also helps the settings menus be a little less overwhelming when it comes to camera options.<br />
<br />
=== Notifications Bar Added! ===<br />
<br />
* The wave and CPA warnings are back! Actually, they never were quite in the game in this fashion showing a proper countdown. They show a little icon and number box in the upper left of the screen, which you can hover over for more info.<br />
** Clicking on them takes you to the planet that is involved, if it's a specific planet.<br />
** For waves, it shows you the planet it is headed to, and it strength, on the notification badge itself. For CPAs, it just tells you a CPA is coming and when.<br />
** For these, it has a tooltip for each of them that tells you what a CPA is if you don't know, or what the composition of the incoming wave is if it's a wave.<br />
<br />
* The notification bar now includes entries for planets of yours that are under attack, and shows the total strength counts for those ships that are aggressing and those that are defending.<br />
** These are color-coded, and whichever is on top is stronger, so you can tell at a glance if you should be winning this fight (on paper; positioning and tactics are important if the numbers are close, of course).<br />
** The icon for this is different if it's your home planet versus one of your other planets, so this is yet another source of visible warning when your home planet is under attack.<br />
** As with the wave warnings, you can click these to immediately go to the planet in question.<br />
** The tooltips for these show the name of the planet that is being attacked, who the attackers are, who the defenders are, what small ships, large ships, non-combatants, and strength each participant has, and what critical infrastructure is located here for the defenders.<br />
*** Big thanks to Eric for designing all of these things (as with almost all of the GUI now, but this in particular is super cool).<br />
<br />
* There is now a general-purpose framework where developers and modders can add items to the notification bar from any faction.<br />
** This is useful for a variety of things, ranging from alerting you that a trader is visiting a planet and wanting to trade, to telling you marauders are after you, to other things of that nature.<br />
*** Note that we're not using it for any of those purposes yet, but the capability is now there -- and the first proof of concept is actually the planet under attack notices.<br />
<br />
* We now have the concept of critical infrastructure, which are simply items that you get warned about in the tooltip when they are on planets of yours that are under attack.<br />
<br />
=== Visual, Audio, and Workflow Improvements ===<br />
<br />
* The icons for ships are now just stored once in the game, at a single size, rather than twice at two different sizes. This makes it a lot faster for us to update the icons, and uses a bit less disk space.<br />
<br />
* Added a new visuals_scale_multiplier xml entry for GameEntities that lets us scale up or down entities as we wish for whatever purposes.<br />
** One of the biggest uses is so that we can have fewer prefabs that we have to initialize and keep in memory for ships that grow in size but nothing else during mark-level changes.<br />
** This is now in use on the AssaultStarship and the NeedlerGuardian, which are the only two ships re-implemented at this point for which this is relevant.<br />
<br />
* The tractor turrets look so cool that we've made them a bit larger and made it so that there is only one per "squad" on them. They look like they individually mean business as it is.<br />
<br />
* The visuals, icons, and scales for engineers, rebuilders, and human cryogenic pods are all now in place.<br />
** Note that only engineers and rebuilders are actually in the game yet.<br />
<br />
* Adjusted gimbal_base_scale from 2 to 2.5 in GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml so that the gimbal icons aren't so darn tiny. This seems to feel more like AIWC, now.<br />
<br />
* Human scouts and AI tachyon sentinels now have their graphics in place.<br />
<br />
* Added a new y_offset_of_ship_in_formation xml tag, which allows us to raise and lower ships from a squad as a group. This is useful for really tall structures, for instance.<br />
<br />
* Added the visuals for all of the command stations (AI, basic human, economic, logistical, military, warp jammer, human home, human home core).<br />
** This was quite a task to pull off in a satisfying yet recognizable way, but we finally have it. Basically these needed to be larger and more epic, yet stand out and not have too many polygons, etc.<br />
<br />
* All of the icons for the new command stations and such are now in place, and the icons for command stations show larger than other icons on the planet. The icons for the king units now show even larger. There are also different icons for each type of command station, in such a way that you can easily tell something is a command station, but also that it is some other kind of command station beyond the basic sort.<br />
<br />
* The voice_group xml tag that specifies what voice is used for ships is now required. For non-human-controllable ships, just using Silent is preferred, although it doesn't really matter since these voices only happen when a human player gives orders to the ship in question.<br />
** Previously these were partly defined on the weapon types, but this was far too broad a way of doing it (and had stopped working on our internal versions as part of the Pivot anyhow).<br />
<br />
* Visuals have been created for the energy collector, matter converter, science lab 1 and 2 (though only mk1 is in the game), raid starships mk1-4, metal harvester (and empty version), tractor guardians mk1-5, scout starships mk1-4, home human settlements, and hackers (though hackers are not in the game yet).<br />
<br />
* The visuals for the colony ship are now in place.<br />
<br />
* There are a lot more Arcen-based header menus in unity now for us to speed up repetitive tasks. Also ones for opening folders, and in general letting us work faster and with fewer clicks to get things done.<br />
<br />
* The icon definitions no longer need a _border entry in xml. They still need the actual files, but the game can find them just based off the original icon entry. Yay less typing and chances for typos.<br />
<br />
* Wormhole scaling-up has been removed, and will be replaced by a far-zoom icon like ships/squads get.<br />
<br />
* "GenericObjects" can now have a list of AlternativeMaterials specified. <br />
** This is used for the wormholes in particular so that they can change colors and cubemaps in order to represent different things, or even being hovered.<br />
*** On the wormholes, if you look into them, you'll see a distorted view of actual images from the ESA/Hubble, used with attribution. It's a neat little detail, and you have to get extremely close in to see it.<br />
<br />
* The wormhole visuals have been completely redone AGAIN, probably for the last time this time. We're using something called Scingularity, heavily modified for our purposes.<br />
** The wormholes are drawn using a single untextured quad, which then does a ton of math and uses a cubemap for the center of the singularity, and then a pixel shader to do the outer swirl. Because of this, it looks fantastic at any zoom level. And amazingly, it performs well. You don't need any special hardware.<br />
** In our case, we're using those EA/Hubble images noted above for the center of the wormholes, and then different normal maps for swirl patterns on each color of wormhole, and different colorizations on the wormhole swirls to indicate different things.<br />
** Greenish ones go to enemy planets, darker blue ones go to your planets, lighter blue ones go to allied planets, red/orange ones have a wave incoming, pale green ones go to allied or neutral NPC factions, and white goes to unowned planets.<br />
** When you are hovering over the wormhole -- which requires you to be holding ctrl down, incidentally, so that you can send either the camea or units through it -- then it glows at a much brighter temperature. Makes it far easier to know if you're actually hovering over it.<br />
<br />
* At long last, your choice of colors in the profile menu actually means something! Whatever you select on your profile for your body and trim colors are now used next time you go into the lobby.<br />
** The lobby is still the outdated style with the dropdown for colors, but now it has two colors there for your choosing, too. Using it that way is not ideal, but we'll get to that in the next few weeks.<br />
** For now, it's a very happy thing that we finally have two-color player colors in the game!<br />
*** For each place text is using the colors, it just uses the body color right now.<br />
*** There are presently be some issues with the icons in the main not matching the colors exactly, which is probably due to color-correction post-processing. We're going to be shifting those icons into the GUI camera soon anyhow, so that should solve that when we do. Until then, everything looks washed out in the main icon view.<br />
*** When it comes to showing that a unit is hovered-over, it now goes darker or lighter depending on whether its average color is greater than or less than half brightness; this is instead of the <br />
*** When it comes to showing that a unit is selected, it now adds a border around the mark level icon itself, and brightens the border of the unit color.<br />
** As an aside, when you change the colors and hit OK in the color picker in the player profile screen, it writes to the underlying log what the color selections are called. You can then use this in xml defaults if you're doing modding. Otherwise this doesn't affect you.<br />
** For all of the special factions, AI factions and subfactions, humans, and so forth, there are now default colors! With the two-tone colors we were able to do a lot more theming and nuance.<br />
*** Player colors are going to need to include some defaults for people to choose from, since it can be time-consuming to do so otherwise and you don't know if you're potentially selecting something similar to another faction's defaults. Providing some quick-pick attractive defaults is on our list prior to EA; we already have 8 sets of colors, but the interface isn't updated for that yet.<br />
<br />
* The icons for all ships have been improved, with more darkness and light on them, and more layers of borders and sub-borders, to make things really have contrast and stand out so that they are more legible.<br />
<br />
* Put in a fix to our spritesheet for the ship icons so that now there is substantially more padding in them, fixing some bleed-over between sprites (causing line artifacts, etc) at smaller mipmap levels (when an icon is shrunk a lot).<br />
<br />
* The game finally has "burning and dying" effects on the ship icons as they are killed. Thanks to Badger for continuously pushing for this, as well as for implementing the timing code portion of this. This really helps make the battles both more dramatic from the far zoom view, as well as frankly clearer what is going on.<br />
** We implemented this in completely open-source code between the C# and shader bits, so it can be tuned by other folks if desired. We though about using a ramp texture, but wound up going with a series of lerps between vector4s instead.<br />
<br />
* The font for the mark level numbers has been changed again, and looks much better now.<br />
<br />
* On the sidebar, the strength number is now shown abbreviated instead of written all the way out -- we're trying to standardize on that everywhere, as it's the easiest to read.<br />
** This also now applies to the resource bar at the top of the screen.<br />
<br />
* Fixed a variety of places that were incorrectly using the strength per subsquad instead of the strength per squad -- including in some of the targeting logic for ships.<br />
<br />
* Fixed a bug with the ships tab of the sidebar where it was including the strength of noncombatants in the total strength for the planet, which was not remotely useful. Now it just shows the strength of combatants, like everywhere else, which gives you a much more valid picture of the battlefield. Defensive strength of noncombatants is kind of incidental to that.<br />
<br />
* At a few places in the game, we were showing "Human Remnant" as the faction name instead the name of the player in question. Now we show the player name.<br />
<br />
== Version 0.743 Music Blooms ==<br />
(Released May 2nd, 2018)<br />
<br />
* The second half of the AI War 2 soundtrack is now in place! These pieces, as specified in the kickstarter, are all remixed/remastered versions of tracks from AI War Classic. In there we have the Defeat and Victory tracks from the first game, Nomad Sunrise from DoW, Intro and Midnight from the base game, Night Light from LOTS, Rising Up from VOTM, and Voyage to Zenith from TZR.<br />
** With this, we're now also distributing the full soundtrack (plus a variety of bonuses!) to all those backers who signed up for it. You should have an email with that link, and/or be able to see it in your backerkit profile page: https://aiwar2.backerkit.com/<br />
<br />
* The game now actually plays defeat music when you lose.<br />
<br />
* When you win, the game first plays the For The Fallen vocal track, and then goes into the from-Classic Victory track, then goes on to play regular music from the in-game rotation.<br />
** When you lose, the game plays the defeat track, then also goes back to the regular in-game rotation.<br />
** These two changes are aimed at people who want to keep playing after a victory or loss, which are a not-insubstantial number of people.<br />
** We actually have not tested this bit at all, so, uh, if it doesn't work properly like this then please do let us know and give us a savegame. We're kinda busy on a lot of fronts right now! Normally we unit-test things, though.<br />
<br />
* We're now internally using the Asset Bundle Browser to help us find trouble spots with overlarge pieces of data in our asset bundles that we're building for the game. This helps with load speed, runtime efficiency, and asset bundle build speed.<br />
** On github: https://github.com/Unity-Technologies/AssetBundles-Browser<br />
<br />
* Slightly improved the efficiency/size of the effects asset bundle.<br />
<br />
* Reworked the bloom effects to use the Natural Amplify Bloom effect rather than the Realistic one. This, plus a couple of other tweaks in that area, lead to something that still has bloom, but is a lot more subtle than before. Some folks were complaining about that with the teaser trailer, and we can see their point.<br />
<br />
== Version 0.742 Hotfix ==<br />
(Released May 1st, 2018)<br />
<br />
* Fixed a bug where the total seconds to load was only being reported in output.log, and not in the ArcenDebugLog.<br />
<br />
* On the main menu, it now shows how long it took to load the game, and you can hover over that to get details if you want. The "logged in as Steam user" info is right below that, and both are a bit smaller now.<br />
<br />
* The loading feedback on the sound effect items and graphics items are now more coarse, leading to faster overall loading times compared to the last internal versions.<br />
<br />
* The method for tracking how much time has passed has been adjusted to use DateTime.Now instead of the Stopwatch class, since we had some questions about accuracy.<br />
<br />
== Version 0.742 Darkly Loading Spire ==<br />
(Released May 1st, 2018)<br />
<br />
* Rather than looking like the application is hung when it starts, the game now shows the loading progress in the form of what it's doing at the bottom. It doesn't show a loading bar, but it does show a counter of how long has elapsed, and how long specific long-running bits are taking.<br />
** This is useful both for us to know in terms of telling when something is overly slow to load, and it also gives players something to look at and a cue that there's not just a frozen application in front of them.<br />
<br />
* Surprisingly, the sound effects loading is taking twice as long as the loading of the graphical data right now (9.6s versus 4.4s on Chris's machine), so this is already an example of where we can optimize our loading speeds a bit, which saves everybody a lot of grief and saves the devs here time staring at the screen when it's time to test each item.<br />
<br />
* Additionally, now if the game has an error during load, it won't show a mishmash of all the gui windows all overlapping themselves in an insane and obviously-glitchy way. There is no functional difference between before and now, but it seems a lot less terrifying now if you're seeing it for the first time.<br />
<br />
* The loading log for how the game starts up is now more informative than ever, and on the long-running sections it actually shows a progress count rather than just hanging on those sub-parts. Sometimes those sub-parts can take 30 seconds or more on first run (though usually 4 seconds or so on subsequent runs), so having this feedback is pretty vital to this not feeling like maybe it locked up.<br />
<br />
* The alpha channel has been removed from a ton of images that didn't need it, letting the compression format be smaller on disk, in RAM, and in VRAM, as well as loading faster. This will definitely be kept, as it was useless data.<br />
<br />
* The max texture size for some of the non-diffuse texture channels for the ships are now cut way down from what they were before, to reflect the distances you typically see these from. This saves 300MB of RAM, disk space, and also lowers the VRAM requirements and makes rendering faster. It also makes loading vastly faster. This is definitely a quality/compression tradeoff, and we do still have the originals, so we may wind up making this an option or something in the future if it seems ugly to folks this new way. At a fairly casual glance by those who worked on the ship graphics, we can't really tell the difference, though; in side-by-side shots you would notice it, but that's about it unless we are mistaken.<br />
<br />
* The compression style for weapons effects and other sound effects has been changed to ADPCM instead of Vorbis, and these are now set to load on a background thread rather than the main thread. This makes loading vastly faster for the sound effects, although it does use something like 20MB of extra disk space. The amount of space used in RAM is identical, since we always decompress on load, anyway.<br />
<br />
* The voice acting clips are now set to stream in like the music does, as well as load on a background thread, rather than being preloaded or decompressed early. This actually saves quite a bit of RAM, and doesn't affect disk space, and saves an enormous amount of loading time. The downside is that it can cause a sub-second delay in playback of voice clips, but given the nature of a voice clip that is both imperceptible and irrelevant.<br />
** Different types of sounds have different characteristics and need different settings, and we've optimized these, in short.<br />
<br />
* Speaking of optimization, we're no longer doing full error-checks on load for each ship visual that is loaded in. That was time-consuming and pointless. In the ship designer windows it shows errors, and if someone commits a ship with errors that's something that is a goof on their part and not something we need every player machine checking for every time the game starts. So that saves another batch of time.<br />
<br />
* We're also doing another experimental thing, where with the solomesh ships we're directly using the asset bundle copies of the ships to get their meshes and materials, rather than instantiating a copy first.<br />
** Generally this is not advised, since it can cause a bunch of extra disk reads and other general slowness when accessing that data. However, in this particular case, since we're not actually accessing anything more than the data on these objects (we're not making copies of the object), we think it's not hitting the disk like that. We don't see any evidence of it in the profiler now, anyway, and we were in the past.<br />
** This speeds things up yet again, and so far so good on that front, but we may have to back this one out later.<br />
<br />
* Overall the loading speed of the game has more than doubled, in typical test cases thus far, and it actually is responsive while loading as well, which is an important first impression piece.<br />
<br />
* Fix a bug where the Nanocaust was never losing influence over a planet even after the constructor was destroyed<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Change the default colour of the Risk Analyzers<br />
<br />
* When the Human Marauders put Marauder Outposts on a planet, give them Influence over the planet (so it will be shown on the Galaxy map)<br />
<br />
* Initial commit of Dark Spire. Like in AIWC, it spawns ships based on energy it gains when ships die on a planet with a Vengeance Generator (VG).<br />
** Energy is tracked per VG. When VG energy > threshold it either shares energy with the VG with lowest energy or it spawns ships to attack. There's a Conversion Ratio when turning energy into ships; it starts out not very efficient (maybe 50% of the energy becomes ships), but every time a VG spawns new ships it becomes more efficient. <br />
** AI Overlords start with a Dark Spire Ward structure on their planets which prevents Dark Spire ships from going there. If a player destroys the Ward then the Dark Spire will be able to attack the AI overlord, thus giving you a new win condition.<br />
** Every so often the Dark Spire will attempt to spawn a Vengeance Generator Locus. The Locus will transform into a full Vengeance Generator in 5 minutes. If you don't kill the Locus in that time period then it turns into a Vengeance Generator. Planets are eligible for a Locus to spawn if they have no Human or AI ships on them, and they are adjacent to a Vengeance Generator without any human or AI ships on it.<br />
<br />
== Version 0.741 Music Part 1 Of 2 ==<br />
(Released April 29th, 2018)<br />
<br />
* The first half of the new tracks for the AI War 2 soundtrack are now in place: Abandoned Ship, Absolute Zero, Bouncing Lights, Event Horizon, Light Year, and Supercluster.<br />
** All by Pablo Vega, mastered by Dio, and all fantastic.<br />
<br />
* Update to Human Marauders behaviour. If they destroy all your forces on a planet then they will begin to construct Marauder Outposts which will spawn Marauder new units. This will make it harder to recapture planets. Every so often a new MarauderOutpost will be added, and existing MarauderOutposts will upgrade themselves to make stronger units. Note also that when the Marauders capture a planet they get a permanent boost to their MaxBudget, making them more dangerous.<br />
** If you allow the Marauders to get Mark 3 outposts then they will start getting Budget faster.<br />
** The balance levers are in XML for ease of use<br />
<br />
* The default game volume is now quieter in the hope of not deafening new players<br />
** Thanks to Flavin for the report<br />
<br />
* Improved the performance of music loading at the start of the game and during the game.<br />
<br />
* Fixed a regression in the prior version of the game where the first time any camera loaded a "traditional skybox" type of background, it would be solid black instead.<br />
<br />
* Fixed an issue where the construction part of the sidebar could show some stale data when switching from a planet with a builder to one without a builder.<br />
** Thanks to hawk for reporting.<br />
<br />
* Fixed a bug that nobody had reported yet with lightning attacks being very strange-looking and not like lightning bolts anymore.<br />
<br />
* Fixed a bug with the various type of geometry-based explosions (flak, lightning, etc) so that they now render additively in the transparent queue rather than the overlay queue, and so that they read from the zbuffer but no longer write to it.<br />
** This changes the effects a fair bit so that they no longer do things like eat into one another or the ship icons around them.<br />
** These will need further tuning to not be over-bright in huge battles, and they're on our list for further improvements visually anyway, but for now it's a good enough start.<br />
<br />
* Risk Analyzers: code tidying, also track the total and net AIP generated by Risk Analyzers. Eventually this is going to turn into 'When X AIP is generated by Risk Analyzers, do something unpleasant to the player', probably an exo wave, once exo waves are added<br />
<br />
* Map Types: Add a new planet placement mechanism for Simple and Realistic, and tweak one of the previous placement algorithms for Simple and Realistic<br />
<br />
* Fix some bugs with Marauders, where outposts weren't upgrading properly.<br />
<br />
== Version 0.740 Clean Up That Nebula, Young Man! ==<br />
(Released April 26th, 2018)<br />
<br />
* Fix some dumb bugs in the HumanMarauders faction that was preventing the marauders from correctly analyzing your planets to see which they should attack<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a bug where the Vis layer was not correctly setting the Shot location when we tabbed into a planet with the shot in flight; it was assuming the shots should be at the middle of the planet, which is manifestly incorrect<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fix a bug where where if a non-Nanocaust faction killed a unit that had taken Nanocaust damage, the killing faction would get the new zombie ship instead of the Nanocaust. <br />
** Thanks to OvalCircle for reporting<br />
<br />
* A new and frightening visual look for Usurpers has been added. These will be absent for a while until we get past the "Fun point" once Keith gets his first wave in place, but then we expect these to come back pretty darn fast, so we want them to look nice and scary). (These are the AI ships that recapture planets)<br />
<br />
* The infrequently-changed space backgrounds, and planet graphics, have all been moved into a new internal AIW2Scenery unity project, which saves us a _ton_ of time when actually building the gui asset bundles, or ship asset bundles, for the game.<br />
<br />
* The sound effects and voice acting files have all been moved out of the platform-specific projects, and out of the modding and gui project in general.<br />
** These are now in the GlobalBundles folder, which saves some disk space if you've got multiple OSes of the game installed at once. It also saves us time when pushing new versions of the game, and has less of a footprint on the system for everybody thanks to the modding unity project now being much smaller without all those files.<br />
** This does make some of the sound stuff a bit harder to mod, but we'll just throw that stuff up on github or google drive or something when the time comes. It's not worth inconveniencing everyone over putting it directly in the build.<br />
<br />
* There were a variety of old "space boxes" that were from back in the kickstarter days that were just... underwhelming. They were nicely colorful, but had kind of gross large stars in them, and in some cases just junky colors in general. These have either had their gross big stars patched out, or they've been removed.<br />
** Overall these have mostly been removed except for the best couple of them (which now have color variants!). <br />
** This saves about 200mb of RAM for something that wasn't looking so hot in general, and makes the game load faster, too.<br />
<br />
* Our middle-style "nebula sphere" type of backgrounds previously had a really bad problem with distortion on the starfields. This was just embarrassing, and led to some perfectly-fine spaceboxes looking really gross depending on the angle of view, instead. These have all been fixed up with a revised shader for handling those starfields as simple tiling rather than triplanar reading.<br />
<br />
* Our most recent, and best-lookg style of space backgrounds, which are based on traditional skyboxes, were absolutely HUGE, taking up more than 450mb on disk, and in RAM. Each one was 12MB of VRAM to render, as well, although that's unavoidable to keep the starfields crisp using a non-tiling cubemap like that.<br />
** We've now split these out so that the stars themselves are in a separate cubemap which is the larger size, and then the nebula parts are able to be a quarter of the size (half the side length) without any drop in quality. This adds 3MB of VRAM usage per draw (of which there is exactly one per frame), but saves over 300mb of disk space and system RAM during runtime, as well as making the game, once again, load faster.<br />
<br />
* 49 new space backgrounds have been added, based on 8 source cubemaps, to replace the ones that were taken away (though this actually adds back more than were taken).<br />
** The new skyboxes are way higher quality than the ones that were removed, is the main point, anyhow.<br />
<br />
* The starfield backgrounds on the galaxy map are now much more neutral, with mostly black and a little bit of white. Easier to see foreground objects on them, now.<br />
<br />
* Fixed a bug where once you viewed an old-style spacebox background, it wasn't letting you view any "traditional skybox" backgrounds, which explained the over-prevalence of the former.<br />
<br />
* The settings option for "background style" has been removed, as that's no longer really relevant to anything.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Final Pre-Beta Checks]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Pivot&diff=30883AI War 2:The Pivot2018-06-22T13:30:51Z<p>Keith.lamothe: /* Misc Bugfixes */</p>
<hr />
<div>== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* '''Multiplayer is temporarily disabled''' while we focus on tightening up the single-player loop.<br />
<br />
== What is this "Pivot?" ==<br />
<br />
The full details are on kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
<br />
The short answer is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
== Version 0.745 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Existing savegames are all broken now. With the game basically being redone from the ground up in terms of units and content, this seems pretty reasonable. Older savegames would have been incredibly strange in the new version, anyway.<br />
<br />
=== Wave 1 of 5 of the Pivot ===<br />
<br />
* Wave 1 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Note that this obliterates a lot of the game that was previously known as AI War 2, and we're going to be adding back to this rapidly.<br />
** Please also note that a lot of the graphics for the post-pivot stuff is still inwork, which includes both icons and actual ship graphics. We have a lot to do!<br />
** Lastly, please note that this is putting a variety of kinks in our current GUI, so there is work incoming on that, too. We're basically making a mess at the moment, so please excuse our sawdust.<br />
** The overall goal of Wave 1 of the pivot was to get an end-to-end playable version of the game. By that, we mean the MINIMUM possible possible playable stuff, to be clear.<br />
** Main things that were thus included:<br />
*** Removing all the ships that previously existed, and then adding as new:<br />
*** Command station mechanics, and home command stations.<br />
*** AIWC-style mechanics for the AI home command station.<br />
*** Upgradeable mechanics for other command stations (so we can do econ, military, etc).<br />
*** AIWC-style metal harvesters, the seeding of them, and all that.<br />
*** Ditching power and fuel, and going back to the AIWC-style Energy mechanic, and adding energy collectors.<br />
*** Going back to AIWC-style mechanics for the space docks.<br />
*** Fighters, Bombers, and Missile Corvettes; and with that, a framework for applying the old AIWC balance numbers on top of our newer xml balance framework (until the framework and the numbers can be made to meet in the middle)<br />
*** Warp Gates for the AI, those were already pretty much the same between games.<br />
*** Engineers, and all the AIWC-style mechanics associated with them.<br />
*** A variety of turrets from the first game.<br />
*** Tractor turrets, but this time switching to the older AIWC-style mechanics for how those work.<br />
*** Scouts, and the AIWC-style scouting mechanics.<br />
*** AI Tachyon Guardians, which are simply a new unit, although possibly this included a shift to the AIWC-style cloaking mechanics? Not sure on that one bit.<br />
*** Science Labs, and the AIWC-style knowledge-gathering mechancis.<br />
*** Colony ships, and the AIWC style of those working.<br />
*** Mine layers, and the rebuilder mechanics that go along with those.<br />
*** Guard posts for the AI, and the mechanics that go with that.<br />
*** Some of the AI guardians, and the AIWC style of guardian mechanics (AIW2 was previously wrapping guard posts and guardians into one thing, but now that's more split)<br />
*** Force field generators, and a return to the AIWC style mechanic (with those now being present at all in general, too.<br />
*** Starship constructors, nothing major different here between the two games.<br />
*** Some of the basic starships.<br />
<br />
* For the time being, in the xml and underlying data structures, we still have global fuel and per-planet power.<br />
** However, everything is just using the global fuel now, to be more AIWC-like.<br />
** On the interface, we are now referring to this global fuel as being Energy again, as with AIWC.<br />
** We'll see how this continues to evolve, but for now that was the simplest thing.<br />
<br />
=== Wave 2 of 5 of the Pivot ===<br />
<br />
* Wave 2 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Now we're building back up a bit more in terms of having the game more recognizable, but there's still a lot to clean up before we even release it to you.<br />
** New ships, with their attendant mechanics, added:<br />
** Scout Starship mk1-4, Stealth Starship mk1-4, Shield Starship mk1-4, Siege Starship mk1-4, Sniper Starship mk1-4, Carrier Starship mk1-4.<br />
** Arachnid Guard Post mk1-5, Missile Guard Post mk1-5, MLRS Guard Post mk1-5, Laser Guard Post mk1-5, Shield Guard Post mk1-5, Stealth Guard Post mk1-5.<br />
** Tachyon Guardian is now Tachyon Sentinel. Added Wormhole Sentinel, Data Center, Advanced Research Station.<br />
** Matter Converter, Mercenary Space Dock (and mercenary versions of relevant ships), Home Human Settlement, Human Cryogenic Pod.<br />
** Multi-Needler Corvette mk1-5, Eyebot mk1-5, Armor Ship mk1-5, Autocannon Minipod mk1-5, Lightning Corvette mk1-5, Grenade Launcher mk1-5, Infiltrator mk1-5, Laser Gatling mk1-5, MLRS mk1-5, Raider mk1-5, Raptor mk1-5, Sentinel Frigate mk1-5, Sniper mk1-5, Space Plane mk1-5, Space Tank mk1-5, Spider mk1-5, Vampire Claw mk1-5, Vorticular Cutlass mk1-5, Tachyon MicroFighter mk1-5, <br />
** Flak Turret mk1-5, Laser Turret mk1-5, Lightning Turret mk1-5, Missile Turret mk1-5, MLRS Turret mk1-5, Sniper Turret mk1-5, Spider Turret mk1-5, Beam Cannon mk1-5, <br />
** Tachyon Array, Stealth Tachyon Array, Focused Gravity Generator mk1-5.<br />
** Laser Guardian mk1-5 as a rename from Needler Guardian, Stealth Guardian mk1-5, Sniper Guardian mk1-5, Missile Guardian mk1-5, Widow Guardian mk1-5, Tractor Guardian mk1-5, Lightning Guardian mk1-5, Flak Guardian mk1-5, <br />
<br />
=== New Faction: Astro Trains (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Astro Trains'.<br />
** When enabled, a bunch of Astro Train Stations are seeded on the map. Every so often the AI will create a Depot, then begin to spawn trains that head to the Depot. Trains will travel between the Stations, then eventually to the Depot. <br />
** For some depots, a train will be required to go "near" a player if possible so that you always have a chance to kill them. Whether trains are required to go near the player is tunable on a per-Depot basis.<br />
** There will be a number of different types of Depots. Some produce an effect whenever a train arrives ("Increase the next CPA's strength", "Spawn some ships for the Warden Fleet", etc), others produce an effect after a certain number of trains ("If 4 trains arrive then spawn a Golem"). Depots are defined entirely in XML so it's easy to add new ones or change their balance<br />
** There will also be a number of types of Trains based on the defenses they have. At the moment there is only 1 (and it's misnamed, Keith hasn't added its weapon system back into the Pivot yet)<br />
** Eventually I'd like to have the Trains give you metal when killed, but that mechanic isn't added yet. <br />
** This faction intended to be a More Interactive and Fun version of AIWC's astro trains, which I always found rather frustrating.<br />
** For other modders, this faction is a great example to look to since it defines a new table in the XML, which allows for very complex behaviour.<br />
<br />
=== New Faction: Macrophage (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Macrophage'<br />
** This faction is an invasion of giant organic Macrophage. They prey on Metal, devouring ships and structures they come across, and in particular they prey on the AI (since you haven't encountered them yet). <br />
** Macrophage live in colonies called Telium, which are hidden from the AI. A Telium sends out Macrophage to harvest metal by destroying human or AI ships. When a Colony has been fed enough metal it will create cloaked and harmless Spores which wander the galaxy. When spores encounter spores from other Telium they can reproduce to spawn a new Telium.<br />
** They are hostile to humans and AI alike, but not very intelligent.<br />
** If a Telium produces enough Macrophage, some of the Macrophage will be transformed into an Aggressive form and then go try to kill the human player. If a Telium is destroyed, all of the Macrophages associated with it will attack the player.<br />
** This faction is a bit like reimagining the Devourer Golem as a part of an ecosystem.<br />
<br />
=== Dyson Rework (Thanks, Badger!) === <br />
<br />
* The Dyson Sphere now uses a "Metal income per second" mechanic to spawn units instead of just arbitrarily creating things at a time interval. This makes it much much easier to balance.<br />
** Changing the intensity of a Dyson Sphere changes the income per second; the balance numbers for a given intensity are now in the XML.<br />
* Multiple Dyson Spheres can be enabled at a time, and each can have a different colour and intensity. Enabling X dyson spheres divides the income of a given sphere by X so multiple Dysons won't be able to just crush the Galaxy.<br />
* Dyson Spheres can be Antagonized, like AIWC. If a Dyson Antagonizer exists, all the Dyson Spheres drop what they are doing and start sending units to attack you. Previously created Dyson Sphere ships will keep their previous alignment (so if they were friendly before, they will fight Antagonized ships)<br />
** Antagonizers are not currently created by anything yet, so don't worry about them showing up yet. I imagine one of the Astro Train Depots will create antagonizers eventually, but there may be other mechanisms worth exploring.<br />
* Each Dyson Sphere now has a max Strength Allowed based on the current AIP; the higher the AIP the stronger the Dyson can get. The tuning for this is in the XML<br />
<br />
=== New Faction: Mercenaries (Thanks -- yet again -- Badger!) ===<br />
<br />
* Add new faction for Mercenaries. The Mercenaries are a much fancier version of the AIWC mercenaries (which are rebranded as "Auxiliaries").<br />
* Mercenaries are groups of units defined in the XML that can be hired to come fight for you temporarily using metal or hacking points. We may define other costs for them as appropriate going forward. A small set of mercenaries are defined right now with no attempt for balance, just to illustrate the various options that exist. Each group has a name and backstory and different behaviour. Some only defend one planet, others patrol nearby worlds (and will go help any of your planets if they are attacked), others will kamikaze at the AI. Some groups consist only of turrets and engineers. One group is a large cloaked unit that can be summoned on an AI world which will hopefully distract the Warden fleet, but that's untested.<br />
<br />
* Options for mercenary groups that can be specified in the XML<br />
** On Spawn behaviour: Fight all enemies on a current planet, then warp out. Defend this planet. Patrol nearby friendly planets (they will detect attacks on nearby planets and go help). Kamikaze into the AI. <br />
** Planet summoning restrictions: Can only be summoned on a Friendly planet, an AI planet, a planet not owned by the AI, or anywhere<br />
** Seconds allowed to exist: mercenaries will only stick around for a certain amount of time (in seconds)<br />
** Times allowed to summon: If the Primary unit of the mercenary group survives to the end of its "Seconds allowed to exist" then you can summon these mercs again, up to a certain number of times.<br />
** Cost: Metal, hacking points or both<br />
** Spawn Delay: the mercenary group in question will appear after this many seconds<br />
** Primary/Secondary/Tertiary units: A mercenary group can have up to 3 unit classes. You set these classes with the "[primary|secondary|tertiary]_unit_tag" field in the XML. Note that a tag can be on multiple types of units, and it will choose randomly among them. For example, we might have multiple units tagged with "MercenaryFleetship", and specifying that as one of the unit tags will pick among those at random. You can specify either a specific number of units with that tag, a strength of units, or both. So for example, one might say primary_unit_tag="MercenaryFlagship" primary_number_to_spawn="1" primary_strength_to_spawn="2000". If the Mercenary Flagship units all have 900 strength then this will summon 1 + 3 (we round up when calculating how many units for the strength) = 4 flagships.<br />
** Class: Defense/Offense/Utility. This is future proofing, we don't do anything with it yet.<br />
<br />
*At the beginning of the game, a number of Mercenary Communicators (I am open to a more flavorful name) are seeded on the map. Each Communicator grants access to some unique mercenary groups. If you are holding a planet with a Mercenary Communicator then you can summon those mercenaries.<br />
<br />
*The two key advantages of mercenaries over regular ships are that they don't cost energy and they can be summoned more quickly. Also some may do other fancier things later (like the warden fleet distractor). There is nothing preventing someone from tweaking the XML to allow you to hire the Devourer, for example, as a fun alternate win condition.<br />
<br />
*How quickly the Mercs appear is tunable on a per Group basis (so we could have identical groups, one that spawns in 60 seconds and costs X metal, another that spawns in 5 seconds and costs 5X metal).<br />
<br />
* AIWC style mercenaries are rebranded as "Auxiliaries"<br />
<br />
=== Marauders Expansionism ===<br />
<br />
* When the Marauders capture a planet, if they get up to Mark III outposts then they will begin spawning Raiders, powerful starships that will attack weakly defended nearby worlds. So if you give the Marauders and inch they will expand rapidly (the ideal case is "You've cleared out a bunch of planets but haven't captured them, and the Marauders will build an empire there if you don't watch out").<br />
* Make Marauders hostile to everyone. This means that neutral planets or weakly defended AI planets are eligible to be captured by the Marauders. Remember that the Marauders capturing a planet will permanently strengthen the faction.<br />
** Thanks to Ovalcircle for the suggestion<br />
<br />
=== Misc Bugfixes ===<br />
<br />
* Fixed an oversight in some of the recent versions where the Dyson Sphere was missing its cage. It now has a shiny (literally) new material on it.<br />
<br />
* Slight rework of the Autosave code. You now can specify the interval for autosaves and the number of previous autosaves to keep. So if I want to take autosaves every 10 minutes and keep the last 6 then I'll be able to easily jump back to the game up to an hour before. The goal is to make it easy to savescum efficiently and effectively ;-)<br />
<br />
* Provide a workaround for the problem where people who had last used a no-longer-extant map type would hit a crash when they start the game. Those deprecated map types are now defined (so it won't cause a crash anymore), but hidden by default so they can't be selected.<br />
** This was reported by numerous people, including Valeroth, Clasmir, zeusalmighty and probably others<br />
<br />
* Fixed a since-forever bug where ships fast ships that wind up needing to move to not overlap something would start bouncing around like they needed to go to the little starship's room.<br />
<br />
* Fixed the scales and collision radii of the assault starships.<br />
<br />
* For now at least, the bobbing of ships within squads has been turned off. As steam user Bucketsmith pointed out, it looked too much like ships on the ocean. It was meant to give a sense of life to the ships, but after he pointed this out to us, we couldn't stop seeing it, either...<br />
<br />
* The game now has proper settings on all the ship renderers for dynamic occlusion, motion vectors, shadows, etc. This should lead to a slight performance bump.<br />
** The editor has also now been set up to detect incorrect settings for these.<br />
<br />
* We had some extra uv2 and color and so forth channels on about 510 of our meshes, and we've now removed those. The amount of data was small, but it was useless info to be sending to the GPU since our shaders don't read from those. Every little bit of data shaved off when you're pushing millions of polygons on a millisecond scale is a win, not that it was causing problems in our testing thus far.<br />
<br />
* Fixed a bug where the single-ship-in-a-squad units were not being properly scaled down location-wise.<br />
* There was previously a bug in the profile screen where it was reversing what your body and trim color selections were on the box-based examples.<br />
** The icon-based examples were fine, but now the boxes have been corrected to match the icons.<br />
<br />
* Fixed a likely-longstanding bug where the scale of ships would drift smaller and smaller the longer you played, depending on how many times pooled ship visual instances of that type were reused due to deaths or due to switching in and out of the galaxy map view or between planets. Some went extremely fast, such as the recently added AI command stations. We suspect this is also what was going on previously with the warp gates.<br />
<br />
* Previously, the icon scales could sometimes be incorrect when tabbing back from the galaxy map, until you scrolled the camera around a bit. Fixed.<br />
<br />
* The placement mode icons were never scaled up or down to match the size they would be once placement was complete. Fixed.<br />
<br />
* Fixed a since-forever bug where the colors of icons in the main view were lighter than those in the sidebar. Turns out it was not color grading being applied, but rather that we were passing in our Color type parameters as Vector4s. This worked, sort of, but the typo wound up transposing the data slightly for some reason. Why it didn't just function correctly or fail completely is a solid mystery, to be honest.<br />
<br />
* Fixed an issue where opening savegames that were originally saved in a different campaign name but have been manually moved to a new folder were using the old campaign name instead of the new one as far as "continue last save" was considered.<br />
<br />
* Previously, if continue last save was not able to load the last save because it couldn't find the file, it was not showing any error. Now it tells you what the issue is.<br />
<br />
* In the game setup screen on the galaxy map, it no longer shows the colors of any factions other than player planet names (since in games with a lot of factions that actually gives away info).<br />
<br />
* In the game setup screen on the galaxy map, it now shows the player names under each planet name controlled by one.<br />
<br />
* Once into the game, it no longer shows the color of the faction on the other side of a wormhole if you've never scouted that planet at all.<br />
<br />
* Fixed an issue with the little bottom-left menus where the mouseover of elements behind them could sometimes happen because there were cracks between the buttons. Now there's a backplate behind the entire windows in those locations.<br />
<br />
* The underlying flag under the queue pause button was not actually implemented (it may have previously been the loop flag), so it didn't work; now it's implemented and works to pause that queue. Incidentally this does not disable any other functions of the building unit, unlike in AIWC where it was done through the general "disable everything" mode<br />
<br />
* Removed requirement that you have had units on a planet before you can send units there on the galaxy map (leftover from the sensor-scrambler scouting model)<br />
<br />
* Fixed a bug where the game was still trying to seed design-template-servers when the AI unlocked something new, despite those not currently being defined in the game, and thus throwing errors<br />
<br />
* Fixed a bug where AI ships freed by a minor faction still just went after the humans<br />
<br />
=== Misc Improvements And Additions ===<br />
<br />
* Added a new IGameEntityDescriptionAppender, which can be linked up using the new xml tags description_appender_dll and description_appender_type.<br />
** One example is presently in place with the human home command station and a test class called AnyUnitExampleAppender.<br />
** This is something that can be used for adding arbitrary unit-specific or class-specific dynamic text to the description of any unit or unit type. This is likely to be widely useful as we build out the UI later on, because we can put in context-specific warnings and commentary, for instance.<br />
<br />
* If a ship has been shot to death into remains, it now says REMAINS in red after the name of the ship in the mouseover, and it tells you what the remains means and that you need a remains rebuilder in the description text. Otherwise this was absolutely mystifying as to what was going on!<br />
<br />
* When ships are under construction directly on the battlefield, it now shows the health bar to show the progress that they are making towards completion. Holy cow did things feel incomplete without that.<br />
<br />
* Hey, does the scale of the grav wells on planets feel too small to you? Here's how you can tune the numbers. For example, at the moment we've doubled the size of the grav wells, and we'll see how that feels. To do the doubling, since that's simple math, here are the changes:<br />
** GameData/Configuration/ExternalConstants/KDL_VanillaConstants.xml<br />
*** distance_scale_gravwell_radius 13000 to 26000 (This makes the sim-level grav well twice as large, but if you just change this then visually things will draw very wrong. Must be an integer.)<br />
*** asset_base_unit_radius from 100 to 200 (This makes the units draw half as large as they previously were. It has to be an integer).<br />
** GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml<br />
*** combat_visual_scale_divisor from 10 to 20 (This makes the position of units, and the size of their selection radius, all make sense visually. Whatever multiplier you apply to distance_scale_gravwell_radius, apply the same one here).<br />
*** forcefield_visual_scale_divisor from 5 to 10 (Same deal, forcefields will look the wrong size if this isn't adjusted).<br />
** There actually may be a few other settings that we overlooked, but hopefully this is a comprehensive guide. If not, we'll update this in the future if we discover a hole.<br />
<br />
* Selecting a constructor unit (like the Space Dock or Starship Constructor) will automatically open the Build Tab on the sidebar. It was really annoying to click on a constructor, then realize you need to also click on the Build Tab. Note that hitting "B" is more efficient than clicking on a constructor anyway.<br />
<br />
* Dark Spire: Different factions produce different amounts of Energy when their units kill or are killed. These values are tunable in the XML. The AI or players units produce more energy than minor factions like the Macrophage, Devourer or Nanocaust.<br />
<br />
* In the planet view, linked planet names are no longer shown over wormholes unless you are holding down the ctrl key. Thus you can easily see the names, still, but they aren't cluttering up your view all the time (and making the gravity well feel smaller in the process). This also has the benefit of making it really obvious when you can click to send your ships or camera through the wormholes.<br />
<br />
* Now that warheads are no longer a resource that should be shown on the top bar, we're bringing back the attack warning/numbers up there. This shifted around several elements on the top bar, spatially, but put the new attack warning in the bottom right of that bar.<br />
** Slightly different from the first game, the new attack indicator shows the number of hostile enemy ships on ANY player planets, not just those you own. That seems relevant. It has three states: a greyed-out "nothing's here" safe shield with checkmark, a yellow and orange "things are here, but not on your personal home planet," and then a red and white warning "there are at least some of these guys on YOUR home planet."<br />
** Undoubtedly we'll adjust this some over time. One oddity you'll notice is that the frequency of the flashing of the text in this field is inconsistent. That's unfortunate, but a side effect of the way that unity dirties its GUIs rather than drawing every frame, along with the multithreaded queued approach we take on top of that.<br />
** The tooltip will list all your planets that are under attack sorted by the strength of the attack<br />
<br />
* The quick start button now actually works, although it goes to the same location as the custom start. A tooltip notes that the quick start variant is coming soon. However, some folks were confused and not thinking to go to the custom start, so here we are.<br />
<br />
* On the galaxy map and in the planet view, the icons for ships now are rotated to billboard toward the camera on the GPU instead of on the CPU. This saves an enormous amount of processing when there are many icons, and means that we can update the scale of icons more rapidly even when there are many many icons on screen -- getting rid of that delay in rotation/scale that was seen in prior versions of the game. There still IS a delay built in, just in case you absolutely flood your screen with icons, but it shouldn't be hit in normal gameplay (or if it is, we'll adjust this further based on profiling of said savegames). Additionally, since the rotation is run on the GPU, that means that CAN'T happen any way other than instantly, which is nice.<br />
<br />
* The color picker UI has seen a number of updates:<br />
** The individual color cells are now far smaller, letting you see tons more of them at once, and feeling more like traditional color pickers.<br />
** The selected color cells no longer blink their main color, but instead blink a little border around them. It's a lot more obvious what is going on now, and no longer seems like a bug. The flashing is still needed because the borders get lost in the riot of colors, otherwise. Hazard of having so many options.<br />
** There is now a section of preset options (combos of body and trim colors) down at the bottom of the screen. These give attractive options that also don't conflict with any of the NPC factions. This is one of those things that makes the game infinitely more usable.<br />
*** There are eight of these right now, but it's possible to define more via xml.<br />
<br />
* The in-game tooltips for planets and units/objects now shows in the bottom left, as it previously did in AIWC.<br />
<br />
* The selected ships notice now also shows up down at the bottom of the screen, where the tooltips do. It only shows if a tooltip (or the escape menu) is not showing. This saves important space in general, and also paves the way for the notifications bar up at the top to finally have room.<br />
<br />
* Scouts have a much higher movespeed than anything in the game, so the approximation for lerping squad movement was much higher than anything else. This caused scout movement to feel very jerky. Instead we put a cap on the fastest possible visual movespeed for a squad.<br />
<br />
* Fixed a bug deep in the bowels of our UI code that was leading to a lot of higher-level bugs with things being positioned incorrectly, etc. The most recent manifestation of this, in the working versions of the pivot build, were un-owned metal desposit spots showing up half off the sidebar.<br />
<br />
* Added a new "Owned by Nobody" section on the ships section of the sidebar, since that's a legitimate fourth category. Golems that nobody controls yet, un-owned metal spots, etc, etc.<br />
** Also new, the items in this category can be seen on the sidebar if you've ever been to the planet before, even if you don't have vision of the planet right now. This is pretty handy.<br />
<br />
* Engineer and Rebuilder FRD now works (though their prioritization leaves something to be desired)<br />
<br />
* AI planets directly adjacent to a human homeworld no longer seed guardians or sentinels, to match AIWC (AIWC had wormhole guard posts, now known as wormhole sentinels, but their omission is not significant)<br />
<br />
* Guardian counts have generally been significant reduced, and are now proportional to planet mark level as well as number of guard posts<br />
<br />
* A bonus ship type can now be selected for each human faction (currently you have to click "more" to get to this, since the space is already taken by the two color dropdowns and the Ark dropdown)<br />
<br />
* You now start with 10k science, and all weapon turrets (except beam), to parallel AIWC<br />
<br />
* Your command stations will now automatically claim metal spots, to better resemble what happened after capturing a planet in AIWC.<br />
<br />
=== Keyboard/Mouse Input Overhaul ===<br />
<br />
* Previously we were using some middleware called Rewired, which was bulky and inflexible in a variety of ways. It's super useful if you want to handle a bunch of gamepads and in particular if you want to have design-time-defined controls. Our use case was diverging enough that all it added was bloat, though, because we had to write our own runtime-control-definition layer, poll the list of all our controls while it polled all the keys under the hood, and other messy things like that. So Rewired is out.<br />
<br />
* We brought in what started as EasyInput from ootii as replacement middleware, then pared that down to just the keyboard and mouse bits. We then basically rewrote the entire thing so that it's more efficient, uses no dictionary lookups during the game loop, and is compatible with all the things we want it to do for this game. So ultimately we wound up just kind of creating our own.<br />
<br />
* The new input system has a lot of performance benefits, but one of the biggest things it will do is make it easier for us to define all of the keybinds in xml, no matter how many we have. All of the keybinds that were previously hardcoded have now been moved to xml.<br />
** It was previously somewhat difficult for us to check if something was just pressed, just released, being held, etc, in an efficient and automated way. This is now something that can be directly specified in our xml definitions for the keybinds.<br />
** We also have a new Custom type of key check, which basically skips the whole Handler reflection-linking process and instead just lets classes elsewhere in the code get an object reference to that key and then check it as needed. This is very useful for modifier keys of any sort, and for all of the camera controls.<br />
<br />
* Work has also been done to prep this for an actual interface for viewing and editing keybinds in game. We'll get that in place prior to Early Access, but for now we have a few other fish to fry.<br />
<br />
* A variety of bugs relating to keys that could be triggered on the main menu that were only supposed to be in-game have been fixed.<br />
<br />
=== Galaxy Map Improvements ===<br />
<br />
* The galaxy map is now using a purely top-down camera with the ability to pan and zoom but no ability to tilt or rotate the view. There have been a number of valid issues brought up with the existing galaxy map, and we're starting to work through those now. Lots more to come, but here are some of the first bits.<br />
<br />
* Players can now see the entire galaxy map structure -- meaning the actual planets and their wormhole links and lines -- from the start of the game.<br />
** This is the same data you see in the lobby, so it was always strange that we took it away after the game started in Classic and this game.<br />
** This does NOT grant you any actual visibility on the planets as to their contents, owners, resources, ships present, or anything else.<br />
*** Aka, this is not a reduction of fog of war, it's just the ability to see the shape of the battlefield, same as you already could in the lobby.<br />
<br />
* Previously, on the galaxy map it would take you into the planet view as soon as you clicked a planet, unless you held Alt. This was not helpful for a variety of reasons, so based on user feedback it now by default just switches which planet is selected but doesn't change the view unless you hold Ctrl.<br />
<br />
* When you are on the galaxy map, it now only shows the name of the planet you are currently viewing unless you hold down the ctrl key. This is a lot more like the first game, and is way less cluttered.<br />
** In the lobby, it shows the names for all human planets, with their colors on there.<br />
<br />
* You can no longer zoom the galaxy map so far in, you start further zoomed out, and you can zoom out further.<br />
<br />
* On the galaxy map, the visuals for the planet are now 4x larger, making them easier to see at farther zoom ranges. This is essentially the same as making the planets "closer together," so to speak, in its effect on how you view the map.<br />
<br />
* Rather than drawing the literal visual of the planet on the galaxy map, which turned out to be fairly pointless, we now draw icon-like 3D models in place of them.<br />
** These show the color of the owning party for the planet, if there is one, and they show a different icon for unscouted (ever), regular, and homeworld planets.<br />
** The regular-planet icons are a bit different for marks 1-5 of regular planets, incidentally (anything over mark v shows the mark 5 graphic for the planet itself). These help give you an indicator of the strength of planets when they are in the hands of the AI.<br />
*** After you capture a planet, it still retains its graphical styling for what mark level it used to be, which is a subtle but cool way of showing your progress in the past.<br />
<br />
* On the galaxy map, the selection ring is now fancier, easier to see from a distance, and it rotates to make it even more obvious where it is.<br />
<br />
* The "king unit" no longer shows up next to home planets on the galaxy map. Instead, now the planet itself is showing up looking different. It's a lot easier to tell what the heck is going on, now!<br />
<br />
=== Camera Improvements ===<br />
<br />
* The camera in the planet view has been something of a bugbear for a little while, because there were a variety of things that could go wrong with it. But even more than that, it was using a TON of keys on the keyboard: WASD and the arrow keys for movement, Q and E for rotation, and R and F for tilt. Time for revisions!<br />
<br />
* One of the new things that was most interesting was the idea of a "tilt and rotate" mode, rather like what happens if you hold the right mouse button in Planet Coaster. We can't really use the right mouse button that way, and the middle mouse button makes more sense as the existing "grab and pan" functionality, so we've defined the mode modifier for that as Q now, or Mouse4 if you have a 4+ button mouse (those are awesome, incidentally).<br />
** Along with this change, the default bindings for rotation and tilt are simply set to nothing. If you want to bring back the Q and E and R and F the way they were, that ability didn't go away, but we're claiming those keys for other things instead (Q is already the tilt and rotate mode, whereas the others are unbound at the moment).<br />
<br />
* Along with this, zooming out could potentially put you out of bounds previously, if you had the camera tilted sideways a lot. Now when you zoom out, it un-tilts your camera to avoid this happening. Most other games do this same thing; technically it wasn't zooming out before, but just backing up laterally, anyway, if your angle was shallow enough. Now it actually always zooms out.<br />
<br />
* Previously it was possible for sometimes the mouse wheel to give way too much input in one frame, and send you shooting forward. Probably this was happening directly during a long Garbage Collector frame, although we're not sure. We've put in some safeguards to prevent this from happening, although if it is caused by something other than what we guessed then it will still happen and we'll have to add more safeguards elsewhere.<br />
<br />
* There's a new setting for the tilt/rotate mode that lets you set the sensitivity of that.<br />
<br />
* The "free look camera" stuff has all been commented out for now. We could in theory bring that back, but it felt awkward and was not really needed, ultimately. This removal also helps the settings menus be a little less overwhelming when it comes to camera options.<br />
<br />
=== Visual, Audio, and Workflow Improvements ===<br />
<br />
* The icons for ships are now just stored once in the game, at a single size, rather than twice at two different sizes. This makes it a lot faster for us to update the icons, and uses a bit less disk space.<br />
<br />
* Added a new visuals_scale_multiplier xml entry for GameEntities that lets us scale up or down entities as we wish for whatever purposes.<br />
** One of the biggest uses is so that we can have fewer prefabs that we have to initialize and keep in memory for ships that grow in size but nothing else during mark-level changes.<br />
** This is now in use on the AssaultStarship and the NeedlerGuardian, which are the only two ships re-implemented at this point for which this is relevant.<br />
<br />
* The tractor turrets look so cool that we've made them a bit larger and made it so that there is only one per "squad" on them. They look like they individually mean business as it is.<br />
<br />
* The visuals, icons, and scales for engineers, rebuilders, and human cryogenic pods are all now in place.<br />
** Note that only engineers and rebuilders are actually in the game yet.<br />
<br />
* Adjusted gimbal_base_scale from 2 to 2.5 in GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml so that the gimbal icons aren't so darn tiny. This seems to feel more like AIWC, now.<br />
<br />
* Human scouts and AI tachyon sentinels now have their graphics in place.<br />
<br />
* Added a new y_offset_of_ship_in_formation xml tag, which allows us to raise and lower ships from a squad as a group. This is useful for really tall structures, for instance.<br />
<br />
* Added the visuals for all of the command stations (AI, basic human, economic, logistical, military, warp jammer, human home, human home core).<br />
** This was quite a task to pull off in a satisfying yet recognizable way, but we finally have it. Basically these needed to be larger and more epic, yet stand out and not have too many polygons, etc.<br />
<br />
* All of the icons for the new command stations and such are now in place, and the icons for command stations show larger than other icons on the planet. The icons for the king units now show even larger. There are also different icons for each type of command station, in such a way that you can easily tell something is a command station, but also that it is some other kind of command station beyond the basic sort.<br />
<br />
* The voice_group xml tag that specifies what voice is used for ships is now required. For non-human-controllable ships, just using Silent is preferred, although it doesn't really matter since these voices only happen when a human player gives orders to the ship in question.<br />
** Previously these were partly defined on the weapon types, but this was far too broad a way of doing it (and had stopped working on our internal versions as part of the Pivot anyhow).<br />
<br />
* Visuals have been created for the energy collector, matter converter, science lab 1 and 2 (though only mk1 is in the game), raid starships mk1-4, metal harvester (and empty version), tractor guardians mk1-5, scout starships mk1-4, home human settlements, and hackers (though hackers are not in the game yet).<br />
<br />
* The visuals for the colony ship are now in place.<br />
<br />
* There are a lot more Arcen-based header menus in unity now for us to speed up repetitive tasks. Also ones for opening folders, and in general letting us work faster and with fewer clicks to get things done.<br />
<br />
* The icon definitions no longer need a _border entry in xml. They still need the actual files, but the game can find them just based off the original icon entry. Yay less typing and chances for typos.<br />
<br />
* Wormhole scaling-up has been removed, and will be replaced by a far-zoom icon like ships/squads get.<br />
<br />
* "GenericObjects" can now have a list of AlternativeMaterials specified. <br />
** This is used for the wormholes in particular so that they can change colors and cubemaps in order to represent different things, or even being hovered.<br />
*** On the wormholes, if you look into them, you'll see a distorted view of actual images from the ESA/Hubble, used with attribution. It's a neat little detail, and you have to get extremely close in to see it.<br />
<br />
* The wormhole visuals have been completely redone AGAIN, probably for the last time this time. We're using something called Scingularity, heavily modified for our purposes.<br />
** The wormholes are drawn using a single untextured quad, which then does a ton of math and uses a cubemap for the center of the singularity, and then a pixel shader to do the outer swirl. Because of this, it looks fantastic at any zoom level. And amazingly, it performs well. You don't need any special hardware.<br />
** In our case, we're using those EA/Hubble images noted above for the center of the wormholes, and then different normal maps for swirl patterns on each color of wormhole, and different colorizations on the wormhole swirls to indicate different things.<br />
** Greenish ones go to enemy planets, darker blue ones go to your planets, lighter blue ones go to allied planets, red/orange ones have a wave incoming, pale green ones go to allied or neutral NPC factions, and white goes to unowned planets.<br />
** When you are hovering over the wormhole -- which requires you to be holding ctrl down, incidentally, so that you can send either the camea or units through it -- then it glows at a much brighter temperature. Makes it far easier to know if you're actually hovering over it.<br />
<br />
* At long last, your choice of colors in the profile menu actually means something! Whatever you select on your profile for your body and trim colors are now used next time you go into the lobby.<br />
** The lobby is still the outdated style with the dropdown for colors, but now it has two colors there for your choosing, too. Using it that way is not ideal, but we'll get to that in the next few weeks.<br />
** For now, it's a very happy thing that we finally have two-color player colors in the game!<br />
*** For each place text is using the colors, it just uses the body color right now.<br />
*** There are presently be some issues with the icons in the main not matching the colors exactly, which is probably due to color-correction post-processing. We're going to be shifting those icons into the GUI camera soon anyhow, so that should solve that when we do. Until then, everything looks washed out in the main icon view.<br />
*** When it comes to showing that a unit is hovered-over, it now goes darker or lighter depending on whether its average color is greater than or less than half brightness; this is instead of the <br />
*** When it comes to showing that a unit is selected, it now inverts which is the border and which is the center color on those selected ships. This may wind up being confusing or not clear enough, but it was pretty decent for a first stab at this.<br />
** As an aside, when you change the colors and hit OK in the color picker in the player profile screen, it writes to the underlying log what the color selections are called. You can then use this in xml defaults if you're doing modding. Otherwise this doesn't affect you.<br />
** For all of the special factions, AI factions and subfactions, humans, and so forth, there are now default colors! With the two-tone colors we were able to do a lot more theming and nuance.<br />
*** Player colors are going to need to include some defaults for people to choose from, since it can be time-consuming to do so otherwise and you don't know if you're potentially selecting something similar to another faction's defaults. Providing some quick-pick attractive defaults is on our list prior to EA; we already have 8 sets of colors, but the interface isn't updated for that yet.<br />
<br />
* The icons for all ships have been improved, with more darkness and light on them, and more layers of borders and sub-borders, to make things really have contrast and stand out so that they are more legible.<br />
<br />
* Put in a fix to our spritesheet for the ship icons so that now there is substantially more padding in them, fixing some bleed-over between sprites (causing line artifacts, etc) at smaller mipmap levels (when an icon is shrunk a lot).<br />
<br />
* The game finally has "burning and dying" effects on the ship icons as they are killed. Thanks to Badger for continuously pushing for this, as well as for implementing the timing code portion of this. This really helps make the battles both more dramatic from the far zoom view, as well as frankly clearer what is going on.<br />
** We implemented this in completely open-source code between the C# and shader bits, so it can be tuned by other folks if desired. We though about using a ramp texture, but wound up going with a series of lerps between vector4s instead.<br />
<br />
== Version 0.743 Music Blooms ==<br />
(Released May 2nd, 2018)<br />
<br />
* The second half of the AI War 2 soundtrack is now in place! These pieces, as specified in the kickstarter, are all remixed/remastered versions of tracks from AI War Classic. In there we have the Defeat and Victory tracks from the first game, Nomad Sunrise from DoW, Intro and Midnight from the base game, Night Light from LOTS, Rising Up from VOTM, and Voyage to Zenith from TZR.<br />
** With this, we're now also distributing the full soundtrack (plus a variety of bonuses!) to all those backers who signed up for it. You should have an email with that link, and/or be able to see it in your backerkit profile page: https://aiwar2.backerkit.com/<br />
<br />
* The game now actually plays defeat music when you lose.<br />
<br />
* When you win, the game first plays the For The Fallen vocal track, and then goes into the from-Classic Victory track, then goes on to play regular music from the in-game rotation.<br />
** When you lose, the game plays the defeat track, then also goes back to the regular in-game rotation.<br />
** These two changes are aimed at people who want to keep playing after a victory or loss, which are a not-insubstantial number of people.<br />
** We actually have not tested this bit at all, so, uh, if it doesn't work properly like this then please do let us know and give us a savegame. We're kinda busy on a lot of fronts right now! Normally we unit-test things, though.<br />
<br />
* We're now internally using the Asset Bundle Browser to help us find trouble spots with overlarge pieces of data in our asset bundles that we're building for the game. This helps with load speed, runtime efficiency, and asset bundle build speed.<br />
** On github: https://github.com/Unity-Technologies/AssetBundles-Browser<br />
<br />
* Slightly improved the efficiency/size of the effects asset bundle.<br />
<br />
* Reworked the bloom effects to use the Natural Amplify Bloom effect rather than the Realistic one. This, plus a couple of other tweaks in that area, lead to something that still has bloom, but is a lot more subtle than before. Some folks were complaining about that with the teaser trailer, and we can see their point.<br />
<br />
== Version 0.742 Hotfix ==<br />
(Released May 1st, 2018)<br />
<br />
* Fixed a bug where the total seconds to load was only being reported in output.log, and not in the ArcenDebugLog.<br />
<br />
* On the main menu, it now shows how long it took to load the game, and you can hover over that to get details if you want. The "logged in as Steam user" info is right below that, and both are a bit smaller now.<br />
<br />
* The loading feedback on the sound effect items and graphics items are now more coarse, leading to faster overall loading times compared to the last internal versions.<br />
<br />
* The method for tracking how much time has passed has been adjusted to use DateTime.Now instead of the Stopwatch class, since we had some questions about accuracy.<br />
<br />
== Version 0.742 Darkly Loading Spire ==<br />
(Released May 1st, 2018)<br />
<br />
* Rather than looking like the application is hung when it starts, the game now shows the loading progress in the form of what it's doing at the bottom. It doesn't show a loading bar, but it does show a counter of how long has elapsed, and how long specific long-running bits are taking.<br />
** This is useful both for us to know in terms of telling when something is overly slow to load, and it also gives players something to look at and a cue that there's not just a frozen application in front of them.<br />
<br />
* Surprisingly, the sound effects loading is taking twice as long as the loading of the graphical data right now (9.6s versus 4.4s on Chris's machine), so this is already an example of where we can optimize our loading speeds a bit, which saves everybody a lot of grief and saves the devs here time staring at the screen when it's time to test each item.<br />
<br />
* Additionally, now if the game has an error during load, it won't show a mishmash of all the gui windows all overlapping themselves in an insane and obviously-glitchy way. There is no functional difference between before and now, but it seems a lot less terrifying now if you're seeing it for the first time.<br />
<br />
* The loading log for how the game starts up is now more informative than ever, and on the long-running sections it actually shows a progress count rather than just hanging on those sub-parts. Sometimes those sub-parts can take 30 seconds or more on first run (though usually 4 seconds or so on subsequent runs), so having this feedback is pretty vital to this not feeling like maybe it locked up.<br />
<br />
* The alpha channel has been removed from a ton of images that didn't need it, letting the compression format be smaller on disk, in RAM, and in VRAM, as well as loading faster. This will definitely be kept, as it was useless data.<br />
<br />
* The max texture size for some of the non-diffuse texture channels for the ships are now cut way down from what they were before, to reflect the distances you typically see these from. This saves 300MB of RAM, disk space, and also lowers the VRAM requirements and makes rendering faster. It also makes loading vastly faster. This is definitely a quality/compression tradeoff, and we do still have the originals, so we may wind up making this an option or something in the future if it seems ugly to folks this new way. At a fairly casual glance by those who worked on the ship graphics, we can't really tell the difference, though; in side-by-side shots you would notice it, but that's about it unless we are mistaken.<br />
<br />
* The compression style for weapons effects and other sound effects has been changed to ADPCM instead of Vorbis, and these are now set to load on a background thread rather than the main thread. This makes loading vastly faster for the sound effects, although it does use something like 20MB of extra disk space. The amount of space used in RAM is identical, since we always decompress on load, anyway.<br />
<br />
* The voice acting clips are now set to stream in like the music does, as well as load on a background thread, rather than being preloaded or decompressed early. This actually saves quite a bit of RAM, and doesn't affect disk space, and saves an enormous amount of loading time. The downside is that it can cause a sub-second delay in playback of voice clips, but given the nature of a voice clip that is both imperceptible and irrelevant.<br />
** Different types of sounds have different characteristics and need different settings, and we've optimized these, in short.<br />
<br />
* Speaking of optimization, we're no longer doing full error-checks on load for each ship visual that is loaded in. That was time-consuming and pointless. In the ship designer windows it shows errors, and if someone commits a ship with errors that's something that is a goof on their part and not something we need every player machine checking for every time the game starts. So that saves another batch of time.<br />
<br />
* We're also doing another experimental thing, where with the solomesh ships we're directly using the asset bundle copies of the ships to get their meshes and materials, rather than instantiating a copy first.<br />
** Generally this is not advised, since it can cause a bunch of extra disk reads and other general slowness when accessing that data. However, in this particular case, since we're not actually accessing anything more than the data on these objects (we're not making copies of the object), we think it's not hitting the disk like that. We don't see any evidence of it in the profiler now, anyway, and we were in the past.<br />
** This speeds things up yet again, and so far so good on that front, but we may have to back this one out later.<br />
<br />
* Overall the loading speed of the game has more than doubled, in typical test cases thus far, and it actually is responsive while loading as well, which is an important first impression piece.<br />
<br />
* Fix a bug where the Nanocaust was never losing influence over a planet even after the constructor was destroyed<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Change the default colour of the Risk Analyzers<br />
<br />
* When the Human Marauders put Marauder Outposts on a planet, give them Influence over the planet (so it will be shown on the Galaxy map)<br />
<br />
* Initial commit of Dark Spire. Like in AIWC, it spawns ships based on energy it gains when ships die on a planet with a Vengeance Generator (VG).<br />
** Energy is tracked per VG. When VG energy > threshold it either shares energy with the VG with lowest energy or it spawns ships to attack. There's a Conversion Ratio when turning energy into ships; it starts out not very efficient (maybe 50% of the energy becomes ships), but every time a VG spawns new ships it becomes more efficient. <br />
** AI Overlords start with a Dark Spire Ward structure on their planets which prevents Dark Spire ships from going there. If a player destroys the Ward then the Dark Spire will be able to attack the AI overlord, thus giving you a new win condition.<br />
** Every so often the Dark Spire will attempt to spawn a Vengeance Generator Locus. The Locus will transform into a full Vengeance Generator in 5 minutes. If you don't kill the Locus in that time period then it turns into a Vengeance Generator. Planets are eligible for a Locus to spawn if they have no Human or AI ships on them, and they are adjacent to a Vengeance Generator without any human or AI ships on it.<br />
<br />
== Version 0.741 Music Part 1 Of 2 ==<br />
(Released April 29th, 2018)<br />
<br />
* The first half of the new tracks for the AI War 2 soundtrack are now in place: Abandoned Ship, Absolute Zero, Bouncing Lights, Event Horizon, Light Year, and Supercluster.<br />
** All by Pablo Vega, mastered by Dio, and all fantastic.<br />
<br />
* Update to Human Marauders behaviour. If they destroy all your forces on a planet then they will begin to construct Marauder Outposts which will spawn Marauder new units. This will make it harder to recapture planets. Every so often a new MarauderOutpost will be added, and existing MarauderOutposts will upgrade themselves to make stronger units. Note also that when the Marauders capture a planet they get a permanent boost to their MaxBudget, making them more dangerous.<br />
** If you allow the Marauders to get Mark 3 outposts then they will start getting Budget faster.<br />
** The balance levers are in XML for ease of use<br />
<br />
* The default game volume is now quieter in the hope of not deafening new players<br />
** Thanks to Flavin for the report<br />
<br />
* Improved the performance of music loading at the start of the game and during the game.<br />
<br />
* Fixed a regression in the prior version of the game where the first time any camera loaded a "traditional skybox" type of background, it would be solid black instead.<br />
<br />
* Fixed an issue where the construction part of the sidebar could show some stale data when switching from a planet with a builder to one without a builder.<br />
** Thanks to hawk for reporting.<br />
<br />
* Fixed a bug that nobody had reported yet with lightning attacks being very strange-looking and not like lightning bolts anymore.<br />
<br />
* Fixed a bug with the various type of geometry-based explosions (flak, lightning, etc) so that they now render additively in the transparent queue rather than the overlay queue, and so that they read from the zbuffer but no longer write to it.<br />
** This changes the effects a fair bit so that they no longer do things like eat into one another or the ship icons around them.<br />
** These will need further tuning to not be over-bright in huge battles, and they're on our list for further improvements visually anyway, but for now it's a good enough start.<br />
<br />
* Risk Analyzers: code tidying, also track the total and net AIP generated by Risk Analyzers. Eventually this is going to turn into 'When X AIP is generated by Risk Analyzers, do something unpleasant to the player', probably an exo wave, once exo waves are added<br />
<br />
* Map Types: Add a new planet placement mechanism for Simple and Realistic, and tweak one of the previous placement algorithms for Simple and Realistic<br />
<br />
* Fix some bugs with Marauders, where outposts weren't upgrading properly.<br />
<br />
== Version 0.740 Clean Up That Nebula, Young Man! ==<br />
(Released April 26th, 2018)<br />
<br />
* Fix some dumb bugs in the HumanMarauders faction that was preventing the marauders from correctly analyzing your planets to see which they should attack<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a bug where the Vis layer was not correctly setting the Shot location when we tabbed into a planet with the shot in flight; it was assuming the shots should be at the middle of the planet, which is manifestly incorrect<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fix a bug where where if a non-Nanocaust faction killed a unit that had taken Nanocaust damage, the killing faction would get the new zombie ship instead of the Nanocaust. <br />
** Thanks to OvalCircle for reporting<br />
<br />
* A new and frightening visual look for Usurpers has been added. These will be absent for a while until we get past the "Fun point" once Keith gets his first wave in place, but then we expect these to come back pretty darn fast, so we want them to look nice and scary). (These are the AI ships that recapture planets)<br />
<br />
* The infrequently-changed space backgrounds, and planet graphics, have all been moved into a new internal AIW2Scenery unity project, which saves us a _ton_ of time when actually building the gui asset bundles, or ship asset bundles, for the game.<br />
<br />
* The sound effects and voice acting files have all been moved out of the platform-specific projects, and out of the modding and gui project in general.<br />
** These are now in the GlobalBundles folder, which saves some disk space if you've got multiple OSes of the game installed at once. It also saves us time when pushing new versions of the game, and has less of a footprint on the system for everybody thanks to the modding unity project now being much smaller without all those files.<br />
** This does make some of the sound stuff a bit harder to mod, but we'll just throw that stuff up on github or google drive or something when the time comes. It's not worth inconveniencing everyone over putting it directly in the build.<br />
<br />
* There were a variety of old "space boxes" that were from back in the kickstarter days that were just... underwhelming. They were nicely colorful, but had kind of gross large stars in them, and in some cases just junky colors in general. These have either had their gross big stars patched out, or they've been removed.<br />
** Overall these have mostly been removed except for the best couple of them (which now have color variants!). <br />
** This saves about 200mb of RAM for something that wasn't looking so hot in general, and makes the game load faster, too.<br />
<br />
* Our middle-style "nebula sphere" type of backgrounds previously had a really bad problem with distortion on the starfields. This was just embarrassing, and led to some perfectly-fine spaceboxes looking really gross depending on the angle of view, instead. These have all been fixed up with a revised shader for handling those starfields as simple tiling rather than triplanar reading.<br />
<br />
* Our most recent, and best-lookg style of space backgrounds, which are based on traditional skyboxes, were absolutely HUGE, taking up more than 450mb on disk, and in RAM. Each one was 12MB of VRAM to render, as well, although that's unavoidable to keep the starfields crisp using a non-tiling cubemap like that.<br />
** We've now split these out so that the stars themselves are in a separate cubemap which is the larger size, and then the nebula parts are able to be a quarter of the size (half the side length) without any drop in quality. This adds 3MB of VRAM usage per draw (of which there is exactly one per frame), but saves over 300mb of disk space and system RAM during runtime, as well as making the game, once again, load faster.<br />
<br />
* 49 new space backgrounds have been added, based on 8 source cubemaps, to replace the ones that were taken away (though this actually adds back more than were taken).<br />
** The new skyboxes are way higher quality than the ones that were removed, is the main point, anyhow.<br />
<br />
* The starfield backgrounds on the galaxy map are now much more neutral, with mostly black and a little bit of white. Easier to see foreground objects on them, now.<br />
<br />
* Fixed a bug where once you viewed an old-style spacebox background, it wasn't letting you view any "traditional skybox" backgrounds, which explained the over-prevalence of the former.<br />
<br />
* The settings option for "background style" has been removed, as that's no longer really relevant to anything.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Final Pre-Beta Checks]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Pivot&diff=30882AI War 2:The Pivot2018-06-22T13:30:38Z<p>Keith.lamothe: /* Misc Improvements And Additions */</p>
<hr />
<div>== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* '''Multiplayer is temporarily disabled''' while we focus on tightening up the single-player loop.<br />
<br />
== What is this "Pivot?" ==<br />
<br />
The full details are on kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
<br />
The short answer is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
== Version 0.745 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Existing savegames are all broken now. With the game basically being redone from the ground up in terms of units and content, this seems pretty reasonable. Older savegames would have been incredibly strange in the new version, anyway.<br />
<br />
=== Wave 1 of 5 of the Pivot ===<br />
<br />
* Wave 1 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Note that this obliterates a lot of the game that was previously known as AI War 2, and we're going to be adding back to this rapidly.<br />
** Please also note that a lot of the graphics for the post-pivot stuff is still inwork, which includes both icons and actual ship graphics. We have a lot to do!<br />
** Lastly, please note that this is putting a variety of kinks in our current GUI, so there is work incoming on that, too. We're basically making a mess at the moment, so please excuse our sawdust.<br />
** The overall goal of Wave 1 of the pivot was to get an end-to-end playable version of the game. By that, we mean the MINIMUM possible possible playable stuff, to be clear.<br />
** Main things that were thus included:<br />
*** Removing all the ships that previously existed, and then adding as new:<br />
*** Command station mechanics, and home command stations.<br />
*** AIWC-style mechanics for the AI home command station.<br />
*** Upgradeable mechanics for other command stations (so we can do econ, military, etc).<br />
*** AIWC-style metal harvesters, the seeding of them, and all that.<br />
*** Ditching power and fuel, and going back to the AIWC-style Energy mechanic, and adding energy collectors.<br />
*** Going back to AIWC-style mechanics for the space docks.<br />
*** Fighters, Bombers, and Missile Corvettes; and with that, a framework for applying the old AIWC balance numbers on top of our newer xml balance framework (until the framework and the numbers can be made to meet in the middle)<br />
*** Warp Gates for the AI, those were already pretty much the same between games.<br />
*** Engineers, and all the AIWC-style mechanics associated with them.<br />
*** A variety of turrets from the first game.<br />
*** Tractor turrets, but this time switching to the older AIWC-style mechanics for how those work.<br />
*** Scouts, and the AIWC-style scouting mechanics.<br />
*** AI Tachyon Guardians, which are simply a new unit, although possibly this included a shift to the AIWC-style cloaking mechanics? Not sure on that one bit.<br />
*** Science Labs, and the AIWC-style knowledge-gathering mechancis.<br />
*** Colony ships, and the AIWC style of those working.<br />
*** Mine layers, and the rebuilder mechanics that go along with those.<br />
*** Guard posts for the AI, and the mechanics that go with that.<br />
*** Some of the AI guardians, and the AIWC style of guardian mechanics (AIW2 was previously wrapping guard posts and guardians into one thing, but now that's more split)<br />
*** Force field generators, and a return to the AIWC style mechanic (with those now being present at all in general, too.<br />
*** Starship constructors, nothing major different here between the two games.<br />
*** Some of the basic starships.<br />
<br />
* For the time being, in the xml and underlying data structures, we still have global fuel and per-planet power.<br />
** However, everything is just using the global fuel now, to be more AIWC-like.<br />
** On the interface, we are now referring to this global fuel as being Energy again, as with AIWC.<br />
** We'll see how this continues to evolve, but for now that was the simplest thing.<br />
<br />
=== Wave 2 of 5 of the Pivot ===<br />
<br />
* Wave 2 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Now we're building back up a bit more in terms of having the game more recognizable, but there's still a lot to clean up before we even release it to you.<br />
** New ships, with their attendant mechanics, added:<br />
** Scout Starship mk1-4, Stealth Starship mk1-4, Shield Starship mk1-4, Siege Starship mk1-4, Sniper Starship mk1-4, Carrier Starship mk1-4.<br />
** Arachnid Guard Post mk1-5, Missile Guard Post mk1-5, MLRS Guard Post mk1-5, Laser Guard Post mk1-5, Shield Guard Post mk1-5, Stealth Guard Post mk1-5.<br />
** Tachyon Guardian is now Tachyon Sentinel. Added Wormhole Sentinel, Data Center, Advanced Research Station.<br />
** Matter Converter, Mercenary Space Dock (and mercenary versions of relevant ships), Home Human Settlement, Human Cryogenic Pod.<br />
** Multi-Needler Corvette mk1-5, Eyebot mk1-5, Armor Ship mk1-5, Autocannon Minipod mk1-5, Lightning Corvette mk1-5, Grenade Launcher mk1-5, Infiltrator mk1-5, Laser Gatling mk1-5, MLRS mk1-5, Raider mk1-5, Raptor mk1-5, Sentinel Frigate mk1-5, Sniper mk1-5, Space Plane mk1-5, Space Tank mk1-5, Spider mk1-5, Vampire Claw mk1-5, Vorticular Cutlass mk1-5, Tachyon MicroFighter mk1-5, <br />
** Flak Turret mk1-5, Laser Turret mk1-5, Lightning Turret mk1-5, Missile Turret mk1-5, MLRS Turret mk1-5, Sniper Turret mk1-5, Spider Turret mk1-5, Beam Cannon mk1-5, <br />
** Tachyon Array, Stealth Tachyon Array, Focused Gravity Generator mk1-5.<br />
** Laser Guardian mk1-5 as a rename from Needler Guardian, Stealth Guardian mk1-5, Sniper Guardian mk1-5, Missile Guardian mk1-5, Widow Guardian mk1-5, Tractor Guardian mk1-5, Lightning Guardian mk1-5, Flak Guardian mk1-5, <br />
<br />
=== New Faction: Astro Trains (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Astro Trains'.<br />
** When enabled, a bunch of Astro Train Stations are seeded on the map. Every so often the AI will create a Depot, then begin to spawn trains that head to the Depot. Trains will travel between the Stations, then eventually to the Depot. <br />
** For some depots, a train will be required to go "near" a player if possible so that you always have a chance to kill them. Whether trains are required to go near the player is tunable on a per-Depot basis.<br />
** There will be a number of different types of Depots. Some produce an effect whenever a train arrives ("Increase the next CPA's strength", "Spawn some ships for the Warden Fleet", etc), others produce an effect after a certain number of trains ("If 4 trains arrive then spawn a Golem"). Depots are defined entirely in XML so it's easy to add new ones or change their balance<br />
** There will also be a number of types of Trains based on the defenses they have. At the moment there is only 1 (and it's misnamed, Keith hasn't added its weapon system back into the Pivot yet)<br />
** Eventually I'd like to have the Trains give you metal when killed, but that mechanic isn't added yet. <br />
** This faction intended to be a More Interactive and Fun version of AIWC's astro trains, which I always found rather frustrating.<br />
** For other modders, this faction is a great example to look to since it defines a new table in the XML, which allows for very complex behaviour.<br />
<br />
=== New Faction: Macrophage (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Macrophage'<br />
** This faction is an invasion of giant organic Macrophage. They prey on Metal, devouring ships and structures they come across, and in particular they prey on the AI (since you haven't encountered them yet). <br />
** Macrophage live in colonies called Telium, which are hidden from the AI. A Telium sends out Macrophage to harvest metal by destroying human or AI ships. When a Colony has been fed enough metal it will create cloaked and harmless Spores which wander the galaxy. When spores encounter spores from other Telium they can reproduce to spawn a new Telium.<br />
** They are hostile to humans and AI alike, but not very intelligent.<br />
** If a Telium produces enough Macrophage, some of the Macrophage will be transformed into an Aggressive form and then go try to kill the human player. If a Telium is destroyed, all of the Macrophages associated with it will attack the player.<br />
** This faction is a bit like reimagining the Devourer Golem as a part of an ecosystem.<br />
<br />
=== Dyson Rework (Thanks, Badger!) === <br />
<br />
* The Dyson Sphere now uses a "Metal income per second" mechanic to spawn units instead of just arbitrarily creating things at a time interval. This makes it much much easier to balance.<br />
** Changing the intensity of a Dyson Sphere changes the income per second; the balance numbers for a given intensity are now in the XML.<br />
* Multiple Dyson Spheres can be enabled at a time, and each can have a different colour and intensity. Enabling X dyson spheres divides the income of a given sphere by X so multiple Dysons won't be able to just crush the Galaxy.<br />
* Dyson Spheres can be Antagonized, like AIWC. If a Dyson Antagonizer exists, all the Dyson Spheres drop what they are doing and start sending units to attack you. Previously created Dyson Sphere ships will keep their previous alignment (so if they were friendly before, they will fight Antagonized ships)<br />
** Antagonizers are not currently created by anything yet, so don't worry about them showing up yet. I imagine one of the Astro Train Depots will create antagonizers eventually, but there may be other mechanisms worth exploring.<br />
* Each Dyson Sphere now has a max Strength Allowed based on the current AIP; the higher the AIP the stronger the Dyson can get. The tuning for this is in the XML<br />
<br />
=== New Faction: Mercenaries (Thanks -- yet again -- Badger!) ===<br />
<br />
* Add new faction for Mercenaries. The Mercenaries are a much fancier version of the AIWC mercenaries (which are rebranded as "Auxiliaries").<br />
* Mercenaries are groups of units defined in the XML that can be hired to come fight for you temporarily using metal or hacking points. We may define other costs for them as appropriate going forward. A small set of mercenaries are defined right now with no attempt for balance, just to illustrate the various options that exist. Each group has a name and backstory and different behaviour. Some only defend one planet, others patrol nearby worlds (and will go help any of your planets if they are attacked), others will kamikaze at the AI. Some groups consist only of turrets and engineers. One group is a large cloaked unit that can be summoned on an AI world which will hopefully distract the Warden fleet, but that's untested.<br />
<br />
* Options for mercenary groups that can be specified in the XML<br />
** On Spawn behaviour: Fight all enemies on a current planet, then warp out. Defend this planet. Patrol nearby friendly planets (they will detect attacks on nearby planets and go help). Kamikaze into the AI. <br />
** Planet summoning restrictions: Can only be summoned on a Friendly planet, an AI planet, a planet not owned by the AI, or anywhere<br />
** Seconds allowed to exist: mercenaries will only stick around for a certain amount of time (in seconds)<br />
** Times allowed to summon: If the Primary unit of the mercenary group survives to the end of its "Seconds allowed to exist" then you can summon these mercs again, up to a certain number of times.<br />
** Cost: Metal, hacking points or both<br />
** Spawn Delay: the mercenary group in question will appear after this many seconds<br />
** Primary/Secondary/Tertiary units: A mercenary group can have up to 3 unit classes. You set these classes with the "[primary|secondary|tertiary]_unit_tag" field in the XML. Note that a tag can be on multiple types of units, and it will choose randomly among them. For example, we might have multiple units tagged with "MercenaryFleetship", and specifying that as one of the unit tags will pick among those at random. You can specify either a specific number of units with that tag, a strength of units, or both. So for example, one might say primary_unit_tag="MercenaryFlagship" primary_number_to_spawn="1" primary_strength_to_spawn="2000". If the Mercenary Flagship units all have 900 strength then this will summon 1 + 3 (we round up when calculating how many units for the strength) = 4 flagships.<br />
** Class: Defense/Offense/Utility. This is future proofing, we don't do anything with it yet.<br />
<br />
*At the beginning of the game, a number of Mercenary Communicators (I am open to a more flavorful name) are seeded on the map. Each Communicator grants access to some unique mercenary groups. If you are holding a planet with a Mercenary Communicator then you can summon those mercenaries.<br />
<br />
*The two key advantages of mercenaries over regular ships are that they don't cost energy and they can be summoned more quickly. Also some may do other fancier things later (like the warden fleet distractor). There is nothing preventing someone from tweaking the XML to allow you to hire the Devourer, for example, as a fun alternate win condition.<br />
<br />
*How quickly the Mercs appear is tunable on a per Group basis (so we could have identical groups, one that spawns in 60 seconds and costs X metal, another that spawns in 5 seconds and costs 5X metal).<br />
<br />
* AIWC style mercenaries are rebranded as "Auxiliaries"<br />
<br />
=== Marauders Expansionism ===<br />
<br />
* When the Marauders capture a planet, if they get up to Mark III outposts then they will begin spawning Raiders, powerful starships that will attack weakly defended nearby worlds. So if you give the Marauders and inch they will expand rapidly (the ideal case is "You've cleared out a bunch of planets but haven't captured them, and the Marauders will build an empire there if you don't watch out").<br />
* Make Marauders hostile to everyone. This means that neutral planets or weakly defended AI planets are eligible to be captured by the Marauders. Remember that the Marauders capturing a planet will permanently strengthen the faction.<br />
** Thanks to Ovalcircle for the suggestion<br />
<br />
=== Misc Bugfixes ===<br />
<br />
* Fixed an oversight in some of the recent versions where the Dyson Sphere was missing its cage. It now has a shiny (literally) new material on it.<br />
<br />
* Slight rework of the Autosave code. You now can specify the interval for autosaves and the number of previous autosaves to keep. So if I want to take autosaves every 10 minutes and keep the last 6 then I'll be able to easily jump back to the game up to an hour before. The goal is to make it easy to savescum efficiently and effectively ;-)<br />
<br />
* Provide a workaround for the problem where people who had last used a no-longer-extant map type would hit a crash when they start the game. Those deprecated map types are now defined (so it won't cause a crash anymore), but hidden by default so they can't be selected.<br />
** This was reported by numerous people, including Valeroth, Clasmir, zeusalmighty and probably others<br />
<br />
* Fixed a since-forever bug where ships fast ships that wind up needing to move to not overlap something would start bouncing around like they needed to go to the little starship's room.<br />
<br />
* Fixed the scales and collision radii of the assault starships.<br />
<br />
* For now at least, the bobbing of ships within squads has been turned off. As steam user Bucketsmith pointed out, it looked too much like ships on the ocean. It was meant to give a sense of life to the ships, but after he pointed this out to us, we couldn't stop seeing it, either...<br />
<br />
* The game now has proper settings on all the ship renderers for dynamic occlusion, motion vectors, shadows, etc. This should lead to a slight performance bump.<br />
** The editor has also now been set up to detect incorrect settings for these.<br />
<br />
* We had some extra uv2 and color and so forth channels on about 510 of our meshes, and we've now removed those. The amount of data was small, but it was useless info to be sending to the GPU since our shaders don't read from those. Every little bit of data shaved off when you're pushing millions of polygons on a millisecond scale is a win, not that it was causing problems in our testing thus far.<br />
<br />
* Fixed a bug where the single-ship-in-a-squad units were not being properly scaled down location-wise.<br />
* There was previously a bug in the profile screen where it was reversing what your body and trim color selections were on the box-based examples.<br />
** The icon-based examples were fine, but now the boxes have been corrected to match the icons.<br />
<br />
* Fixed a likely-longstanding bug where the scale of ships would drift smaller and smaller the longer you played, depending on how many times pooled ship visual instances of that type were reused due to deaths or due to switching in and out of the galaxy map view or between planets. Some went extremely fast, such as the recently added AI command stations. We suspect this is also what was going on previously with the warp gates.<br />
<br />
* Previously, the icon scales could sometimes be incorrect when tabbing back from the galaxy map, until you scrolled the camera around a bit. Fixed.<br />
<br />
* The placement mode icons were never scaled up or down to match the size they would be once placement was complete. Fixed.<br />
<br />
* Fixed a since-forever bug where the colors of icons in the main view were lighter than those in the sidebar. Turns out it was not color grading being applied, but rather that we were passing in our Color type parameters as Vector4s. This worked, sort of, but the typo wound up transposing the data slightly for some reason. Why it didn't just function correctly or fail completely is a solid mystery, to be honest.<br />
<br />
* Fixed an issue where opening savegames that were originally saved in a different campaign name but have been manually moved to a new folder were using the old campaign name instead of the new one as far as "continue last save" was considered.<br />
<br />
* Previously, if continue last save was not able to load the last save because it couldn't find the file, it was not showing any error. Now it tells you what the issue is.<br />
<br />
* In the game setup screen on the galaxy map, it no longer shows the colors of any factions other than player planet names (since in games with a lot of factions that actually gives away info).<br />
<br />
* In the game setup screen on the galaxy map, it now shows the player names under each planet name controlled by one.<br />
<br />
* Once into the game, it no longer shows the color of the faction on the other side of a wormhole if you've never scouted that planet at all.<br />
<br />
* Fixed an issue with the little bottom-left menus where the mouseover of elements behind them could sometimes happen because there were cracks between the buttons. Now there's a backplate behind the entire windows in those locations.<br />
<br />
=== Misc Improvements And Additions ===<br />
<br />
* Added a new IGameEntityDescriptionAppender, which can be linked up using the new xml tags description_appender_dll and description_appender_type.<br />
** One example is presently in place with the human home command station and a test class called AnyUnitExampleAppender.<br />
** This is something that can be used for adding arbitrary unit-specific or class-specific dynamic text to the description of any unit or unit type. This is likely to be widely useful as we build out the UI later on, because we can put in context-specific warnings and commentary, for instance.<br />
<br />
* If a ship has been shot to death into remains, it now says REMAINS in red after the name of the ship in the mouseover, and it tells you what the remains means and that you need a remains rebuilder in the description text. Otherwise this was absolutely mystifying as to what was going on!<br />
<br />
* When ships are under construction directly on the battlefield, it now shows the health bar to show the progress that they are making towards completion. Holy cow did things feel incomplete without that.<br />
<br />
* Hey, does the scale of the grav wells on planets feel too small to you? Here's how you can tune the numbers. For example, at the moment we've doubled the size of the grav wells, and we'll see how that feels. To do the doubling, since that's simple math, here are the changes:<br />
** GameData/Configuration/ExternalConstants/KDL_VanillaConstants.xml<br />
*** distance_scale_gravwell_radius 13000 to 26000 (This makes the sim-level grav well twice as large, but if you just change this then visually things will draw very wrong. Must be an integer.)<br />
*** asset_base_unit_radius from 100 to 200 (This makes the units draw half as large as they previously were. It has to be an integer).<br />
** GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml<br />
*** combat_visual_scale_divisor from 10 to 20 (This makes the position of units, and the size of their selection radius, all make sense visually. Whatever multiplier you apply to distance_scale_gravwell_radius, apply the same one here).<br />
*** forcefield_visual_scale_divisor from 5 to 10 (Same deal, forcefields will look the wrong size if this isn't adjusted).<br />
** There actually may be a few other settings that we overlooked, but hopefully this is a comprehensive guide. If not, we'll update this in the future if we discover a hole.<br />
<br />
* Selecting a constructor unit (like the Space Dock or Starship Constructor) will automatically open the Build Tab on the sidebar. It was really annoying to click on a constructor, then realize you need to also click on the Build Tab. Note that hitting "B" is more efficient than clicking on a constructor anyway.<br />
<br />
* Dark Spire: Different factions produce different amounts of Energy when their units kill or are killed. These values are tunable in the XML. The AI or players units produce more energy than minor factions like the Macrophage, Devourer or Nanocaust.<br />
<br />
* In the planet view, linked planet names are no longer shown over wormholes unless you are holding down the ctrl key. Thus you can easily see the names, still, but they aren't cluttering up your view all the time (and making the gravity well feel smaller in the process). This also has the benefit of making it really obvious when you can click to send your ships or camera through the wormholes.<br />
<br />
* Now that warheads are no longer a resource that should be shown on the top bar, we're bringing back the attack warning/numbers up there. This shifted around several elements on the top bar, spatially, but put the new attack warning in the bottom right of that bar.<br />
** Slightly different from the first game, the new attack indicator shows the number of hostile enemy ships on ANY player planets, not just those you own. That seems relevant. It has three states: a greyed-out "nothing's here" safe shield with checkmark, a yellow and orange "things are here, but not on your personal home planet," and then a red and white warning "there are at least some of these guys on YOUR home planet."<br />
** Undoubtedly we'll adjust this some over time. One oddity you'll notice is that the frequency of the flashing of the text in this field is inconsistent. That's unfortunate, but a side effect of the way that unity dirties its GUIs rather than drawing every frame, along with the multithreaded queued approach we take on top of that.<br />
** The tooltip will list all your planets that are under attack sorted by the strength of the attack<br />
<br />
* The quick start button now actually works, although it goes to the same location as the custom start. A tooltip notes that the quick start variant is coming soon. However, some folks were confused and not thinking to go to the custom start, so here we are.<br />
<br />
* On the galaxy map and in the planet view, the icons for ships now are rotated to billboard toward the camera on the GPU instead of on the CPU. This saves an enormous amount of processing when there are many icons, and means that we can update the scale of icons more rapidly even when there are many many icons on screen -- getting rid of that delay in rotation/scale that was seen in prior versions of the game. There still IS a delay built in, just in case you absolutely flood your screen with icons, but it shouldn't be hit in normal gameplay (or if it is, we'll adjust this further based on profiling of said savegames). Additionally, since the rotation is run on the GPU, that means that CAN'T happen any way other than instantly, which is nice.<br />
<br />
* The color picker UI has seen a number of updates:<br />
** The individual color cells are now far smaller, letting you see tons more of them at once, and feeling more like traditional color pickers.<br />
** The selected color cells no longer blink their main color, but instead blink a little border around them. It's a lot more obvious what is going on now, and no longer seems like a bug. The flashing is still needed because the borders get lost in the riot of colors, otherwise. Hazard of having so many options.<br />
** There is now a section of preset options (combos of body and trim colors) down at the bottom of the screen. These give attractive options that also don't conflict with any of the NPC factions. This is one of those things that makes the game infinitely more usable.<br />
*** There are eight of these right now, but it's possible to define more via xml.<br />
<br />
* The in-game tooltips for planets and units/objects now shows in the bottom left, as it previously did in AIWC.<br />
<br />
* The selected ships notice now also shows up down at the bottom of the screen, where the tooltips do. It only shows if a tooltip (or the escape menu) is not showing. This saves important space in general, and also paves the way for the notifications bar up at the top to finally have room.<br />
<br />
* Scouts have a much higher movespeed than anything in the game, so the approximation for lerping squad movement was much higher than anything else. This caused scout movement to feel very jerky. Instead we put a cap on the fastest possible visual movespeed for a squad.<br />
<br />
* Fixed a bug deep in the bowels of our UI code that was leading to a lot of higher-level bugs with things being positioned incorrectly, etc. The most recent manifestation of this, in the working versions of the pivot build, were un-owned metal desposit spots showing up half off the sidebar.<br />
<br />
* Added a new "Owned by Nobody" section on the ships section of the sidebar, since that's a legitimate fourth category. Golems that nobody controls yet, un-owned metal spots, etc, etc.<br />
** Also new, the items in this category can be seen on the sidebar if you've ever been to the planet before, even if you don't have vision of the planet right now. This is pretty handy.<br />
<br />
* Engineer and Rebuilder FRD now works (though their prioritization leaves something to be desired)<br />
<br />
* AI planets directly adjacent to a human homeworld no longer seed guardians or sentinels, to match AIWC (AIWC had wormhole guard posts, now known as wormhole sentinels, but their omission is not significant)<br />
<br />
* Guardian counts have generally been significant reduced, and are now proportional to planet mark level as well as number of guard posts<br />
<br />
* A bonus ship type can now be selected for each human faction (currently you have to click "more" to get to this, since the space is already taken by the two color dropdowns and the Ark dropdown)<br />
<br />
* You now start with 10k science, and all weapon turrets (except beam), to parallel AIWC<br />
<br />
* Your command stations will now automatically claim metal spots, to better resemble what happened after capturing a planet in AIWC.<br />
<br />
=== Keyboard/Mouse Input Overhaul ===<br />
<br />
* Previously we were using some middleware called Rewired, which was bulky and inflexible in a variety of ways. It's super useful if you want to handle a bunch of gamepads and in particular if you want to have design-time-defined controls. Our use case was diverging enough that all it added was bloat, though, because we had to write our own runtime-control-definition layer, poll the list of all our controls while it polled all the keys under the hood, and other messy things like that. So Rewired is out.<br />
<br />
* We brought in what started as EasyInput from ootii as replacement middleware, then pared that down to just the keyboard and mouse bits. We then basically rewrote the entire thing so that it's more efficient, uses no dictionary lookups during the game loop, and is compatible with all the things we want it to do for this game. So ultimately we wound up just kind of creating our own.<br />
<br />
* The new input system has a lot of performance benefits, but one of the biggest things it will do is make it easier for us to define all of the keybinds in xml, no matter how many we have. All of the keybinds that were previously hardcoded have now been moved to xml.<br />
** It was previously somewhat difficult for us to check if something was just pressed, just released, being held, etc, in an efficient and automated way. This is now something that can be directly specified in our xml definitions for the keybinds.<br />
** We also have a new Custom type of key check, which basically skips the whole Handler reflection-linking process and instead just lets classes elsewhere in the code get an object reference to that key and then check it as needed. This is very useful for modifier keys of any sort, and for all of the camera controls.<br />
<br />
* Work has also been done to prep this for an actual interface for viewing and editing keybinds in game. We'll get that in place prior to Early Access, but for now we have a few other fish to fry.<br />
<br />
* A variety of bugs relating to keys that could be triggered on the main menu that were only supposed to be in-game have been fixed.<br />
<br />
=== Galaxy Map Improvements ===<br />
<br />
* The galaxy map is now using a purely top-down camera with the ability to pan and zoom but no ability to tilt or rotate the view. There have been a number of valid issues brought up with the existing galaxy map, and we're starting to work through those now. Lots more to come, but here are some of the first bits.<br />
<br />
* Players can now see the entire galaxy map structure -- meaning the actual planets and their wormhole links and lines -- from the start of the game.<br />
** This is the same data you see in the lobby, so it was always strange that we took it away after the game started in Classic and this game.<br />
** This does NOT grant you any actual visibility on the planets as to their contents, owners, resources, ships present, or anything else.<br />
*** Aka, this is not a reduction of fog of war, it's just the ability to see the shape of the battlefield, same as you already could in the lobby.<br />
<br />
* Previously, on the galaxy map it would take you into the planet view as soon as you clicked a planet, unless you held Alt. This was not helpful for a variety of reasons, so based on user feedback it now by default just switches which planet is selected but doesn't change the view unless you hold Ctrl.<br />
<br />
* When you are on the galaxy map, it now only shows the name of the planet you are currently viewing unless you hold down the ctrl key. This is a lot more like the first game, and is way less cluttered.<br />
** In the lobby, it shows the names for all human planets, with their colors on there.<br />
<br />
* You can no longer zoom the galaxy map so far in, you start further zoomed out, and you can zoom out further.<br />
<br />
* On the galaxy map, the visuals for the planet are now 4x larger, making them easier to see at farther zoom ranges. This is essentially the same as making the planets "closer together," so to speak, in its effect on how you view the map.<br />
<br />
* Rather than drawing the literal visual of the planet on the galaxy map, which turned out to be fairly pointless, we now draw icon-like 3D models in place of them.<br />
** These show the color of the owning party for the planet, if there is one, and they show a different icon for unscouted (ever), regular, and homeworld planets.<br />
** The regular-planet icons are a bit different for marks 1-5 of regular planets, incidentally (anything over mark v shows the mark 5 graphic for the planet itself). These help give you an indicator of the strength of planets when they are in the hands of the AI.<br />
*** After you capture a planet, it still retains its graphical styling for what mark level it used to be, which is a subtle but cool way of showing your progress in the past.<br />
<br />
* On the galaxy map, the selection ring is now fancier, easier to see from a distance, and it rotates to make it even more obvious where it is.<br />
<br />
* The "king unit" no longer shows up next to home planets on the galaxy map. Instead, now the planet itself is showing up looking different. It's a lot easier to tell what the heck is going on, now!<br />
<br />
=== Camera Improvements ===<br />
<br />
* The camera in the planet view has been something of a bugbear for a little while, because there were a variety of things that could go wrong with it. But even more than that, it was using a TON of keys on the keyboard: WASD and the arrow keys for movement, Q and E for rotation, and R and F for tilt. Time for revisions!<br />
<br />
* One of the new things that was most interesting was the idea of a "tilt and rotate" mode, rather like what happens if you hold the right mouse button in Planet Coaster. We can't really use the right mouse button that way, and the middle mouse button makes more sense as the existing "grab and pan" functionality, so we've defined the mode modifier for that as Q now, or Mouse4 if you have a 4+ button mouse (those are awesome, incidentally).<br />
** Along with this change, the default bindings for rotation and tilt are simply set to nothing. If you want to bring back the Q and E and R and F the way they were, that ability didn't go away, but we're claiming those keys for other things instead (Q is already the tilt and rotate mode, whereas the others are unbound at the moment).<br />
<br />
* Along with this, zooming out could potentially put you out of bounds previously, if you had the camera tilted sideways a lot. Now when you zoom out, it un-tilts your camera to avoid this happening. Most other games do this same thing; technically it wasn't zooming out before, but just backing up laterally, anyway, if your angle was shallow enough. Now it actually always zooms out.<br />
<br />
* Previously it was possible for sometimes the mouse wheel to give way too much input in one frame, and send you shooting forward. Probably this was happening directly during a long Garbage Collector frame, although we're not sure. We've put in some safeguards to prevent this from happening, although if it is caused by something other than what we guessed then it will still happen and we'll have to add more safeguards elsewhere.<br />
<br />
* There's a new setting for the tilt/rotate mode that lets you set the sensitivity of that.<br />
<br />
* The "free look camera" stuff has all been commented out for now. We could in theory bring that back, but it felt awkward and was not really needed, ultimately. This removal also helps the settings menus be a little less overwhelming when it comes to camera options.<br />
<br />
=== Visual, Audio, and Workflow Improvements ===<br />
<br />
* The icons for ships are now just stored once in the game, at a single size, rather than twice at two different sizes. This makes it a lot faster for us to update the icons, and uses a bit less disk space.<br />
<br />
* Added a new visuals_scale_multiplier xml entry for GameEntities that lets us scale up or down entities as we wish for whatever purposes.<br />
** One of the biggest uses is so that we can have fewer prefabs that we have to initialize and keep in memory for ships that grow in size but nothing else during mark-level changes.<br />
** This is now in use on the AssaultStarship and the NeedlerGuardian, which are the only two ships re-implemented at this point for which this is relevant.<br />
<br />
* The tractor turrets look so cool that we've made them a bit larger and made it so that there is only one per "squad" on them. They look like they individually mean business as it is.<br />
<br />
* The visuals, icons, and scales for engineers, rebuilders, and human cryogenic pods are all now in place.<br />
** Note that only engineers and rebuilders are actually in the game yet.<br />
<br />
* Adjusted gimbal_base_scale from 2 to 2.5 in GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml so that the gimbal icons aren't so darn tiny. This seems to feel more like AIWC, now.<br />
<br />
* Human scouts and AI tachyon sentinels now have their graphics in place.<br />
<br />
* Added a new y_offset_of_ship_in_formation xml tag, which allows us to raise and lower ships from a squad as a group. This is useful for really tall structures, for instance.<br />
<br />
* Added the visuals for all of the command stations (AI, basic human, economic, logistical, military, warp jammer, human home, human home core).<br />
** This was quite a task to pull off in a satisfying yet recognizable way, but we finally have it. Basically these needed to be larger and more epic, yet stand out and not have too many polygons, etc.<br />
<br />
* All of the icons for the new command stations and such are now in place, and the icons for command stations show larger than other icons on the planet. The icons for the king units now show even larger. There are also different icons for each type of command station, in such a way that you can easily tell something is a command station, but also that it is some other kind of command station beyond the basic sort.<br />
<br />
* The voice_group xml tag that specifies what voice is used for ships is now required. For non-human-controllable ships, just using Silent is preferred, although it doesn't really matter since these voices only happen when a human player gives orders to the ship in question.<br />
** Previously these were partly defined on the weapon types, but this was far too broad a way of doing it (and had stopped working on our internal versions as part of the Pivot anyhow).<br />
<br />
* Visuals have been created for the energy collector, matter converter, science lab 1 and 2 (though only mk1 is in the game), raid starships mk1-4, metal harvester (and empty version), tractor guardians mk1-5, scout starships mk1-4, home human settlements, and hackers (though hackers are not in the game yet).<br />
<br />
* The visuals for the colony ship are now in place.<br />
<br />
* There are a lot more Arcen-based header menus in unity now for us to speed up repetitive tasks. Also ones for opening folders, and in general letting us work faster and with fewer clicks to get things done.<br />
<br />
* The icon definitions no longer need a _border entry in xml. They still need the actual files, but the game can find them just based off the original icon entry. Yay less typing and chances for typos.<br />
<br />
* Wormhole scaling-up has been removed, and will be replaced by a far-zoom icon like ships/squads get.<br />
<br />
* "GenericObjects" can now have a list of AlternativeMaterials specified. <br />
** This is used for the wormholes in particular so that they can change colors and cubemaps in order to represent different things, or even being hovered.<br />
*** On the wormholes, if you look into them, you'll see a distorted view of actual images from the ESA/Hubble, used with attribution. It's a neat little detail, and you have to get extremely close in to see it.<br />
<br />
* The wormhole visuals have been completely redone AGAIN, probably for the last time this time. We're using something called Scingularity, heavily modified for our purposes.<br />
** The wormholes are drawn using a single untextured quad, which then does a ton of math and uses a cubemap for the center of the singularity, and then a pixel shader to do the outer swirl. Because of this, it looks fantastic at any zoom level. And amazingly, it performs well. You don't need any special hardware.<br />
** In our case, we're using those EA/Hubble images noted above for the center of the wormholes, and then different normal maps for swirl patterns on each color of wormhole, and different colorizations on the wormhole swirls to indicate different things.<br />
** Greenish ones go to enemy planets, darker blue ones go to your planets, lighter blue ones go to allied planets, red/orange ones have a wave incoming, pale green ones go to allied or neutral NPC factions, and white goes to unowned planets.<br />
** When you are hovering over the wormhole -- which requires you to be holding ctrl down, incidentally, so that you can send either the camea or units through it -- then it glows at a much brighter temperature. Makes it far easier to know if you're actually hovering over it.<br />
<br />
* At long last, your choice of colors in the profile menu actually means something! Whatever you select on your profile for your body and trim colors are now used next time you go into the lobby.<br />
** The lobby is still the outdated style with the dropdown for colors, but now it has two colors there for your choosing, too. Using it that way is not ideal, but we'll get to that in the next few weeks.<br />
** For now, it's a very happy thing that we finally have two-color player colors in the game!<br />
*** For each place text is using the colors, it just uses the body color right now.<br />
*** There are presently be some issues with the icons in the main not matching the colors exactly, which is probably due to color-correction post-processing. We're going to be shifting those icons into the GUI camera soon anyhow, so that should solve that when we do. Until then, everything looks washed out in the main icon view.<br />
*** When it comes to showing that a unit is hovered-over, it now goes darker or lighter depending on whether its average color is greater than or less than half brightness; this is instead of the <br />
*** When it comes to showing that a unit is selected, it now inverts which is the border and which is the center color on those selected ships. This may wind up being confusing or not clear enough, but it was pretty decent for a first stab at this.<br />
** As an aside, when you change the colors and hit OK in the color picker in the player profile screen, it writes to the underlying log what the color selections are called. You can then use this in xml defaults if you're doing modding. Otherwise this doesn't affect you.<br />
** For all of the special factions, AI factions and subfactions, humans, and so forth, there are now default colors! With the two-tone colors we were able to do a lot more theming and nuance.<br />
*** Player colors are going to need to include some defaults for people to choose from, since it can be time-consuming to do so otherwise and you don't know if you're potentially selecting something similar to another faction's defaults. Providing some quick-pick attractive defaults is on our list prior to EA; we already have 8 sets of colors, but the interface isn't updated for that yet.<br />
<br />
* The icons for all ships have been improved, with more darkness and light on them, and more layers of borders and sub-borders, to make things really have contrast and stand out so that they are more legible.<br />
<br />
* Put in a fix to our spritesheet for the ship icons so that now there is substantially more padding in them, fixing some bleed-over between sprites (causing line artifacts, etc) at smaller mipmap levels (when an icon is shrunk a lot).<br />
<br />
* The game finally has "burning and dying" effects on the ship icons as they are killed. Thanks to Badger for continuously pushing for this, as well as for implementing the timing code portion of this. This really helps make the battles both more dramatic from the far zoom view, as well as frankly clearer what is going on.<br />
** We implemented this in completely open-source code between the C# and shader bits, so it can be tuned by other folks if desired. We though about using a ramp texture, but wound up going with a series of lerps between vector4s instead.<br />
<br />
== Version 0.743 Music Blooms ==<br />
(Released May 2nd, 2018)<br />
<br />
* The second half of the AI War 2 soundtrack is now in place! These pieces, as specified in the kickstarter, are all remixed/remastered versions of tracks from AI War Classic. In there we have the Defeat and Victory tracks from the first game, Nomad Sunrise from DoW, Intro and Midnight from the base game, Night Light from LOTS, Rising Up from VOTM, and Voyage to Zenith from TZR.<br />
** With this, we're now also distributing the full soundtrack (plus a variety of bonuses!) to all those backers who signed up for it. You should have an email with that link, and/or be able to see it in your backerkit profile page: https://aiwar2.backerkit.com/<br />
<br />
* The game now actually plays defeat music when you lose.<br />
<br />
* When you win, the game first plays the For The Fallen vocal track, and then goes into the from-Classic Victory track, then goes on to play regular music from the in-game rotation.<br />
** When you lose, the game plays the defeat track, then also goes back to the regular in-game rotation.<br />
** These two changes are aimed at people who want to keep playing after a victory or loss, which are a not-insubstantial number of people.<br />
** We actually have not tested this bit at all, so, uh, if it doesn't work properly like this then please do let us know and give us a savegame. We're kinda busy on a lot of fronts right now! Normally we unit-test things, though.<br />
<br />
* We're now internally using the Asset Bundle Browser to help us find trouble spots with overlarge pieces of data in our asset bundles that we're building for the game. This helps with load speed, runtime efficiency, and asset bundle build speed.<br />
** On github: https://github.com/Unity-Technologies/AssetBundles-Browser<br />
<br />
* Slightly improved the efficiency/size of the effects asset bundle.<br />
<br />
* Reworked the bloom effects to use the Natural Amplify Bloom effect rather than the Realistic one. This, plus a couple of other tweaks in that area, lead to something that still has bloom, but is a lot more subtle than before. Some folks were complaining about that with the teaser trailer, and we can see their point.<br />
<br />
== Version 0.742 Hotfix ==<br />
(Released May 1st, 2018)<br />
<br />
* Fixed a bug where the total seconds to load was only being reported in output.log, and not in the ArcenDebugLog.<br />
<br />
* On the main menu, it now shows how long it took to load the game, and you can hover over that to get details if you want. The "logged in as Steam user" info is right below that, and both are a bit smaller now.<br />
<br />
* The loading feedback on the sound effect items and graphics items are now more coarse, leading to faster overall loading times compared to the last internal versions.<br />
<br />
* The method for tracking how much time has passed has been adjusted to use DateTime.Now instead of the Stopwatch class, since we had some questions about accuracy.<br />
<br />
== Version 0.742 Darkly Loading Spire ==<br />
(Released May 1st, 2018)<br />
<br />
* Rather than looking like the application is hung when it starts, the game now shows the loading progress in the form of what it's doing at the bottom. It doesn't show a loading bar, but it does show a counter of how long has elapsed, and how long specific long-running bits are taking.<br />
** This is useful both for us to know in terms of telling when something is overly slow to load, and it also gives players something to look at and a cue that there's not just a frozen application in front of them.<br />
<br />
* Surprisingly, the sound effects loading is taking twice as long as the loading of the graphical data right now (9.6s versus 4.4s on Chris's machine), so this is already an example of where we can optimize our loading speeds a bit, which saves everybody a lot of grief and saves the devs here time staring at the screen when it's time to test each item.<br />
<br />
* Additionally, now if the game has an error during load, it won't show a mishmash of all the gui windows all overlapping themselves in an insane and obviously-glitchy way. There is no functional difference between before and now, but it seems a lot less terrifying now if you're seeing it for the first time.<br />
<br />
* The loading log for how the game starts up is now more informative than ever, and on the long-running sections it actually shows a progress count rather than just hanging on those sub-parts. Sometimes those sub-parts can take 30 seconds or more on first run (though usually 4 seconds or so on subsequent runs), so having this feedback is pretty vital to this not feeling like maybe it locked up.<br />
<br />
* The alpha channel has been removed from a ton of images that didn't need it, letting the compression format be smaller on disk, in RAM, and in VRAM, as well as loading faster. This will definitely be kept, as it was useless data.<br />
<br />
* The max texture size for some of the non-diffuse texture channels for the ships are now cut way down from what they were before, to reflect the distances you typically see these from. This saves 300MB of RAM, disk space, and also lowers the VRAM requirements and makes rendering faster. It also makes loading vastly faster. This is definitely a quality/compression tradeoff, and we do still have the originals, so we may wind up making this an option or something in the future if it seems ugly to folks this new way. At a fairly casual glance by those who worked on the ship graphics, we can't really tell the difference, though; in side-by-side shots you would notice it, but that's about it unless we are mistaken.<br />
<br />
* The compression style for weapons effects and other sound effects has been changed to ADPCM instead of Vorbis, and these are now set to load on a background thread rather than the main thread. This makes loading vastly faster for the sound effects, although it does use something like 20MB of extra disk space. The amount of space used in RAM is identical, since we always decompress on load, anyway.<br />
<br />
* The voice acting clips are now set to stream in like the music does, as well as load on a background thread, rather than being preloaded or decompressed early. This actually saves quite a bit of RAM, and doesn't affect disk space, and saves an enormous amount of loading time. The downside is that it can cause a sub-second delay in playback of voice clips, but given the nature of a voice clip that is both imperceptible and irrelevant.<br />
** Different types of sounds have different characteristics and need different settings, and we've optimized these, in short.<br />
<br />
* Speaking of optimization, we're no longer doing full error-checks on load for each ship visual that is loaded in. That was time-consuming and pointless. In the ship designer windows it shows errors, and if someone commits a ship with errors that's something that is a goof on their part and not something we need every player machine checking for every time the game starts. So that saves another batch of time.<br />
<br />
* We're also doing another experimental thing, where with the solomesh ships we're directly using the asset bundle copies of the ships to get their meshes and materials, rather than instantiating a copy first.<br />
** Generally this is not advised, since it can cause a bunch of extra disk reads and other general slowness when accessing that data. However, in this particular case, since we're not actually accessing anything more than the data on these objects (we're not making copies of the object), we think it's not hitting the disk like that. We don't see any evidence of it in the profiler now, anyway, and we were in the past.<br />
** This speeds things up yet again, and so far so good on that front, but we may have to back this one out later.<br />
<br />
* Overall the loading speed of the game has more than doubled, in typical test cases thus far, and it actually is responsive while loading as well, which is an important first impression piece.<br />
<br />
* Fix a bug where the Nanocaust was never losing influence over a planet even after the constructor was destroyed<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Change the default colour of the Risk Analyzers<br />
<br />
* When the Human Marauders put Marauder Outposts on a planet, give them Influence over the planet (so it will be shown on the Galaxy map)<br />
<br />
* Initial commit of Dark Spire. Like in AIWC, it spawns ships based on energy it gains when ships die on a planet with a Vengeance Generator (VG).<br />
** Energy is tracked per VG. When VG energy > threshold it either shares energy with the VG with lowest energy or it spawns ships to attack. There's a Conversion Ratio when turning energy into ships; it starts out not very efficient (maybe 50% of the energy becomes ships), but every time a VG spawns new ships it becomes more efficient. <br />
** AI Overlords start with a Dark Spire Ward structure on their planets which prevents Dark Spire ships from going there. If a player destroys the Ward then the Dark Spire will be able to attack the AI overlord, thus giving you a new win condition.<br />
** Every so often the Dark Spire will attempt to spawn a Vengeance Generator Locus. The Locus will transform into a full Vengeance Generator in 5 minutes. If you don't kill the Locus in that time period then it turns into a Vengeance Generator. Planets are eligible for a Locus to spawn if they have no Human or AI ships on them, and they are adjacent to a Vengeance Generator without any human or AI ships on it.<br />
<br />
== Version 0.741 Music Part 1 Of 2 ==<br />
(Released April 29th, 2018)<br />
<br />
* The first half of the new tracks for the AI War 2 soundtrack are now in place: Abandoned Ship, Absolute Zero, Bouncing Lights, Event Horizon, Light Year, and Supercluster.<br />
** All by Pablo Vega, mastered by Dio, and all fantastic.<br />
<br />
* Update to Human Marauders behaviour. If they destroy all your forces on a planet then they will begin to construct Marauder Outposts which will spawn Marauder new units. This will make it harder to recapture planets. Every so often a new MarauderOutpost will be added, and existing MarauderOutposts will upgrade themselves to make stronger units. Note also that when the Marauders capture a planet they get a permanent boost to their MaxBudget, making them more dangerous.<br />
** If you allow the Marauders to get Mark 3 outposts then they will start getting Budget faster.<br />
** The balance levers are in XML for ease of use<br />
<br />
* The default game volume is now quieter in the hope of not deafening new players<br />
** Thanks to Flavin for the report<br />
<br />
* Improved the performance of music loading at the start of the game and during the game.<br />
<br />
* Fixed a regression in the prior version of the game where the first time any camera loaded a "traditional skybox" type of background, it would be solid black instead.<br />
<br />
* Fixed an issue where the construction part of the sidebar could show some stale data when switching from a planet with a builder to one without a builder.<br />
** Thanks to hawk for reporting.<br />
<br />
* Fixed a bug that nobody had reported yet with lightning attacks being very strange-looking and not like lightning bolts anymore.<br />
<br />
* Fixed a bug with the various type of geometry-based explosions (flak, lightning, etc) so that they now render additively in the transparent queue rather than the overlay queue, and so that they read from the zbuffer but no longer write to it.<br />
** This changes the effects a fair bit so that they no longer do things like eat into one another or the ship icons around them.<br />
** These will need further tuning to not be over-bright in huge battles, and they're on our list for further improvements visually anyway, but for now it's a good enough start.<br />
<br />
* Risk Analyzers: code tidying, also track the total and net AIP generated by Risk Analyzers. Eventually this is going to turn into 'When X AIP is generated by Risk Analyzers, do something unpleasant to the player', probably an exo wave, once exo waves are added<br />
<br />
* Map Types: Add a new planet placement mechanism for Simple and Realistic, and tweak one of the previous placement algorithms for Simple and Realistic<br />
<br />
* Fix some bugs with Marauders, where outposts weren't upgrading properly.<br />
<br />
== Version 0.740 Clean Up That Nebula, Young Man! ==<br />
(Released April 26th, 2018)<br />
<br />
* Fix some dumb bugs in the HumanMarauders faction that was preventing the marauders from correctly analyzing your planets to see which they should attack<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a bug where the Vis layer was not correctly setting the Shot location when we tabbed into a planet with the shot in flight; it was assuming the shots should be at the middle of the planet, which is manifestly incorrect<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fix a bug where where if a non-Nanocaust faction killed a unit that had taken Nanocaust damage, the killing faction would get the new zombie ship instead of the Nanocaust. <br />
** Thanks to OvalCircle for reporting<br />
<br />
* A new and frightening visual look for Usurpers has been added. These will be absent for a while until we get past the "Fun point" once Keith gets his first wave in place, but then we expect these to come back pretty darn fast, so we want them to look nice and scary). (These are the AI ships that recapture planets)<br />
<br />
* The infrequently-changed space backgrounds, and planet graphics, have all been moved into a new internal AIW2Scenery unity project, which saves us a _ton_ of time when actually building the gui asset bundles, or ship asset bundles, for the game.<br />
<br />
* The sound effects and voice acting files have all been moved out of the platform-specific projects, and out of the modding and gui project in general.<br />
** These are now in the GlobalBundles folder, which saves some disk space if you've got multiple OSes of the game installed at once. It also saves us time when pushing new versions of the game, and has less of a footprint on the system for everybody thanks to the modding unity project now being much smaller without all those files.<br />
** This does make some of the sound stuff a bit harder to mod, but we'll just throw that stuff up on github or google drive or something when the time comes. It's not worth inconveniencing everyone over putting it directly in the build.<br />
<br />
* There were a variety of old "space boxes" that were from back in the kickstarter days that were just... underwhelming. They were nicely colorful, but had kind of gross large stars in them, and in some cases just junky colors in general. These have either had their gross big stars patched out, or they've been removed.<br />
** Overall these have mostly been removed except for the best couple of them (which now have color variants!). <br />
** This saves about 200mb of RAM for something that wasn't looking so hot in general, and makes the game load faster, too.<br />
<br />
* Our middle-style "nebula sphere" type of backgrounds previously had a really bad problem with distortion on the starfields. This was just embarrassing, and led to some perfectly-fine spaceboxes looking really gross depending on the angle of view, instead. These have all been fixed up with a revised shader for handling those starfields as simple tiling rather than triplanar reading.<br />
<br />
* Our most recent, and best-lookg style of space backgrounds, which are based on traditional skyboxes, were absolutely HUGE, taking up more than 450mb on disk, and in RAM. Each one was 12MB of VRAM to render, as well, although that's unavoidable to keep the starfields crisp using a non-tiling cubemap like that.<br />
** We've now split these out so that the stars themselves are in a separate cubemap which is the larger size, and then the nebula parts are able to be a quarter of the size (half the side length) without any drop in quality. This adds 3MB of VRAM usage per draw (of which there is exactly one per frame), but saves over 300mb of disk space and system RAM during runtime, as well as making the game, once again, load faster.<br />
<br />
* 49 new space backgrounds have been added, based on 8 source cubemaps, to replace the ones that were taken away (though this actually adds back more than were taken).<br />
** The new skyboxes are way higher quality than the ones that were removed, is the main point, anyhow.<br />
<br />
* The starfield backgrounds on the galaxy map are now much more neutral, with mostly black and a little bit of white. Easier to see foreground objects on them, now.<br />
<br />
* Fixed a bug where once you viewed an old-style spacebox background, it wasn't letting you view any "traditional skybox" backgrounds, which explained the over-prevalence of the former.<br />
<br />
* The settings option for "background style" has been removed, as that's no longer really relevant to anything.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Final Pre-Beta Checks]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:The_Pivot&diff=30881AI War 2:The Pivot2018-06-21T16:56:08Z<p>Keith.lamothe: /* Version 0.745 */</p>
<hr />
<div>== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* '''Multiplayer is temporarily disabled''' while we focus on tightening up the single-player loop.<br />
<br />
== What is this "Pivot?" ==<br />
<br />
The full details are on kickstarter: [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 Pivoting AI War 2: Bring The Fun!].<br />
<br />
The short answer is that we're dropping back from what was considered a beta status, and instead proceeding with a revised design on our existing engine in order to make sure that this sequel fully lives up to the legacy of its predecessor.<br />
<br />
== Version 0.745 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Existing savegames are all broken now. With the game basically being redone from the ground up in terms of units and content, this seems pretty reasonable. Older savegames would have been incredibly strange in the new version, anyway.<br />
<br />
=== Wave 1 of 5 of the Pivot ===<br />
<br />
* Wave 1 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Note that this obliterates a lot of the game that was previously known as AI War 2, and we're going to be adding back to this rapidly.<br />
** Please also note that a lot of the graphics for the post-pivot stuff is still inwork, which includes both icons and actual ship graphics. We have a lot to do!<br />
** Lastly, please note that this is putting a variety of kinks in our current GUI, so there is work incoming on that, too. We're basically making a mess at the moment, so please excuse our sawdust.<br />
** The overall goal of Wave 1 of the pivot was to get an end-to-end playable version of the game. By that, we mean the MINIMUM possible possible playable stuff, to be clear.<br />
** Main things that were thus included:<br />
*** Removing all the ships that previously existed, and then adding as new:<br />
*** Command station mechanics, and home command stations.<br />
*** AIWC-style mechanics for the AI home command station.<br />
*** Upgradeable mechanics for other command stations (so we can do econ, military, etc).<br />
*** AIWC-style metal harvesters, the seeding of them, and all that.<br />
*** Ditching power and fuel, and going back to the AIWC-style Energy mechanic, and adding energy collectors.<br />
*** Going back to AIWC-style mechanics for the space docks.<br />
*** Fighters, Bombers, and Missile Corvettes; and with that, a framework for applying the old AIWC balance numbers on top of our newer xml balance framework (until the framework and the numbers can be made to meet in the middle)<br />
*** Warp Gates for the AI, those were already pretty much the same between games.<br />
*** Engineers, and all the AIWC-style mechanics associated with them.<br />
*** A variety of turrets from the first game.<br />
*** Tractor turrets, but this time switching to the older AIWC-style mechanics for how those work.<br />
*** Scouts, and the AIWC-style scouting mechanics.<br />
*** AI Tachyon Guardians, which are simply a new unit, although possibly this included a shift to the AIWC-style cloaking mechanics? Not sure on that one bit.<br />
*** Science Labs, and the AIWC-style knowledge-gathering mechancis.<br />
*** Colony ships, and the AIWC style of those working.<br />
*** Mine layers, and the rebuilder mechanics that go along with those.<br />
*** Guard posts for the AI, and the mechanics that go with that.<br />
*** Some of the AI guardians, and the AIWC style of guardian mechanics (AIW2 was previously wrapping guard posts and guardians into one thing, but now that's more split)<br />
*** Force field generators, and a return to the AIWC style mechanic (with those now being present at all in general, too.<br />
*** Starship constructors, nothing major different here between the two games.<br />
*** Some of the basic starships.<br />
<br />
* For the time being, in the xml and underlying data structures, we still have global fuel and per-planet power.<br />
** However, everything is just using the global fuel now, to be more AIWC-like.<br />
** On the interface, we are now referring to this global fuel as being Energy again, as with AIWC.<br />
** We'll see how this continues to evolve, but for now that was the simplest thing.<br />
<br />
=== Wave 2 of 5 of the Pivot ===<br />
<br />
* Wave 2 of 5 of [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2169345 The Pivot] is now complete.<br />
** Now we're building back up a bit more in terms of having the game more recognizable, but there's still a lot to clean up before we even release it to you.<br />
** New ships, with their attendant mechanics, added:<br />
** Scout Starship mk1-4, Stealth Starship mk1-4, Shield Starship mk1-4, Siege Starship mk1-4, Sniper Starship mk1-4, Carrier Starship mk1-4.<br />
** Arachnid Guard Post mk1-5, Missile Guard Post mk1-5, MLRS Guard Post mk1-5, Laser Guard Post mk1-5, Shield Guard Post mk1-5, Stealth Guard Post mk1-5.<br />
** Tachyon Guardian is now Tachyon Sentinel. Added Wormhole Sentinel, Data Center, Advanced Research Station.<br />
** Matter Converter, Mercenary Space Dock (and mercenary versions of relevant ships), Home Human Settlement, Human Cryogenic Pod.<br />
** Multi-Needler Corvette mk1-5, Eyebot mk1-5, Armor Ship mk1-5, Autocannon Minipod mk1-5, Lightning Corvette mk1-5, Grenade Launcher mk1-5, Infiltrator mk1-5, Laser Gatling mk1-5, MLRS mk1-5, Raider mk1-5, Raptor mk1-5, Sentinel Frigate mk1-5, Sniper mk1-5, Space Plane mk1-5, Space Tank mk1-5, Spider mk1-5, Vampire Claw mk1-5, Vorticular Cutlass mk1-5, Tachyon MicroFighter mk1-5, <br />
** Flak Turret mk1-5, Laser Turret mk1-5, Lightning Turret mk1-5, Missile Turret mk1-5, MLRS Turret mk1-5, Sniper Turret mk1-5, Spider Turret mk1-5, Beam Cannon mk1-5, <br />
** Tachyon Array, Stealth Tachyon Array, Focused Gravity Generator mk1-5.<br />
** Laser Guardian mk1-5 as a rename from Needler Guardian, Stealth Guardian mk1-5, Sniper Guardian mk1-5, Missile Guardian mk1-5, Widow Guardian mk1-5, Tractor Guardian mk1-5, Lightning Guardian mk1-5, Flak Guardian mk1-5, <br />
<br />
=== New Faction: Astro Trains (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Astro Trains'.<br />
** When enabled, a bunch of Astro Train Stations are seeded on the map. Every so often the AI will create a Depot, then begin to spawn trains that head to the Depot. Trains will travel between the Stations, then eventually to the Depot. <br />
** For some depots, a train will be required to go "near" a player if possible so that you always have a chance to kill them. Whether trains are required to go near the player is tunable on a per-Depot basis.<br />
** There will be a number of different types of Depots. Some produce an effect whenever a train arrives ("Increase the next CPA's strength", "Spawn some ships for the Warden Fleet", etc), others produce an effect after a certain number of trains ("If 4 trains arrive then spawn a Golem"). Depots are defined entirely in XML so it's easy to add new ones or change their balance<br />
** There will also be a number of types of Trains based on the defenses they have. At the moment there is only 1 (and it's misnamed, Keith hasn't added its weapon system back into the Pivot yet)<br />
** Eventually I'd like to have the Trains give you metal when killed, but that mechanic isn't added yet. <br />
** This faction intended to be a More Interactive and Fun version of AIWC's astro trains, which I always found rather frustrating.<br />
** For other modders, this faction is a great example to look to since it defines a new table in the XML, which allows for very complex behaviour.<br />
<br />
=== New Faction: Macrophage (Thanks, Badger!) ===<br />
<br />
* Add new faction 'Macrophage'<br />
** This faction is an invasion of giant organic Macrophage. They prey on Metal, devouring ships and structures they come across, and in particular they prey on the AI (since you haven't encountered them yet). <br />
** Macrophage live in colonies called Telium, which are hidden from the AI. A Telium sends out Macrophage to harvest metal by destroying human or AI ships. When a Colony has been fed enough metal it will create cloaked and harmless Spores which wander the galaxy. When spores encounter spores from other Telium they can reproduce to spawn a new Telium.<br />
** They are hostile to humans and AI alike, but not very intelligent.<br />
** If a Telium produces enough Macrophage, some of the Macrophage will be transformed into an Aggressive form and then go try to kill the human player. If a Telium is destroyed, all of the Macrophages associated with it will attack the player.<br />
** This faction is a bit like reimagining the Devourer Golem as a part of an ecosystem.<br />
<br />
=== Dyson Rework (Thanks, Badger!) === <br />
<br />
* The Dyson Sphere now uses a "Metal income per second" mechanic to spawn units instead of just arbitrarily creating things at a time interval. This makes it much much easier to balance.<br />
** Changing the intensity of a Dyson Sphere changes the income per second; the balance numbers for a given intensity are now in the XML.<br />
* Multiple Dyson Spheres can be enabled at a time, and each can have a different colour and intensity. Enabling X dyson spheres divides the income of a given sphere by X so multiple Dysons won't be able to just crush the Galaxy.<br />
* Dyson Spheres can be Antagonized, like AIWC. If a Dyson Antagonizer exists, all the Dyson Spheres drop what they are doing and start sending units to attack you. Previously created Dyson Sphere ships will keep their previous alignment (so if they were friendly before, they will fight Antagonized ships)<br />
** Antagonizers are not currently created by anything yet, so don't worry about them showing up yet. I imagine one of the Astro Train Depots will create antagonizers eventually, but there may be other mechanisms worth exploring.<br />
* Each Dyson Sphere now has a max Strength Allowed based on the current AIP; the higher the AIP the stronger the Dyson can get. The tuning for this is in the XML<br />
<br />
=== New Faction: Mercenaries (Thanks -- yet again -- Badger!) ===<br />
<br />
* Add new faction for Mercenaries. The Mercenaries are a much fancier version of the AIWC mercenaries (which are rebranded as "Auxiliaries").<br />
* Mercenaries are groups of units defined in the XML that can be hired to come fight for you temporarily using metal or hacking points. We may define other costs for them as appropriate going forward. A small set of mercenaries are defined right now with no attempt for balance, just to illustrate the various options that exist. Each group has a name and backstory and different behaviour. Some only defend one planet, others patrol nearby worlds (and will go help any of your planets if they are attacked), others will kamikaze at the AI. Some groups consist only of turrets and engineers. One group is a large cloaked unit that can be summoned on an AI world which will hopefully distract the Warden fleet, but that's untested.<br />
<br />
* Options for mercenary groups that can be specified in the XML<br />
** On Spawn behaviour: Fight all enemies on a current planet, then warp out. Defend this planet. Patrol nearby friendly planets (they will detect attacks on nearby planets and go help). Kamikaze into the AI. <br />
** Planet summoning restrictions: Can only be summoned on a Friendly planet, an AI planet, a planet not owned by the AI, or anywhere<br />
** Seconds allowed to exist: mercenaries will only stick around for a certain amount of time (in seconds)<br />
** Times allowed to summon: If the Primary unit of the mercenary group survives to the end of its "Seconds allowed to exist" then you can summon these mercs again, up to a certain number of times.<br />
** Cost: Metal, hacking points or both<br />
** Spawn Delay: the mercenary group in question will appear after this many seconds<br />
** Primary/Secondary/Tertiary units: A mercenary group can have up to 3 unit classes. You set these classes with the "[primary|secondary|tertiary]_unit_tag" field in the XML. Note that a tag can be on multiple types of units, and it will choose randomly among them. For example, we might have multiple units tagged with "MercenaryFleetship", and specifying that as one of the unit tags will pick among those at random. You can specify either a specific number of units with that tag, a strength of units, or both. So for example, one might say primary_unit_tag="MercenaryFlagship" primary_number_to_spawn="1" primary_strength_to_spawn="2000". If the Mercenary Flagship units all have 900 strength then this will summon 1 + 3 (we round up when calculating how many units for the strength) = 4 flagships.<br />
** Class: Defense/Offense/Utility. This is future proofing, we don't do anything with it yet.<br />
<br />
*At the beginning of the game, a number of Mercenary Communicators (I am open to a more flavorful name) are seeded on the map. Each Communicator grants access to some unique mercenary groups. If you are holding a planet with a Mercenary Communicator then you can summon those mercenaries.<br />
<br />
*The two key advantages of mercenaries over regular ships are that they don't cost energy and they can be summoned more quickly. Also some may do other fancier things later (like the warden fleet distractor). There is nothing preventing someone from tweaking the XML to allow you to hire the Devourer, for example, as a fun alternate win condition.<br />
<br />
*How quickly the Mercs appear is tunable on a per Group basis (so we could have identical groups, one that spawns in 60 seconds and costs X metal, another that spawns in 5 seconds and costs 5X metal).<br />
<br />
* AIWC style mercenaries are rebranded as "Auxiliaries"<br />
<br />
=== Marauders Expansionism ===<br />
<br />
* When the Marauders capture a planet, if they get up to Mark III outposts then they will begin spawning Raiders, powerful starships that will attack weakly defended nearby worlds. So if you give the Marauders and inch they will expand rapidly (the ideal case is "You've cleared out a bunch of planets but haven't captured them, and the Marauders will build an empire there if you don't watch out").<br />
* Make Marauders hostile to everyone. This means that neutral planets or weakly defended AI planets are eligible to be captured by the Marauders. Remember that the Marauders capturing a planet will permanently strengthen the faction.<br />
** Thanks to Ovalcircle for the suggestion<br />
<br />
=== Misc Bugfixes ===<br />
<br />
* Fixed an oversight in some of the recent versions where the Dyson Sphere was missing its cage. It now has a shiny (literally) new material on it.<br />
<br />
* Slight rework of the Autosave code. You now can specify the interval for autosaves and the number of previous autosaves to keep. So if I want to take autosaves every 10 minutes and keep the last 6 then I'll be able to easily jump back to the game up to an hour before. The goal is to make it easy to savescum efficiently and effectively ;-)<br />
<br />
* Provide a workaround for the problem where people who had last used a no-longer-extant map type would hit a crash when they start the game. Those deprecated map types are now defined (so it won't cause a crash anymore), but hidden by default so they can't be selected.<br />
** This was reported by numerous people, including Valeroth, Clasmir, zeusalmighty and probably others<br />
<br />
* Fixed a since-forever bug where ships fast ships that wind up needing to move to not overlap something would start bouncing around like they needed to go to the little starship's room.<br />
<br />
* Fixed the scales and collision radii of the assault starships.<br />
<br />
* For now at least, the bobbing of ships within squads has been turned off. As steam user Bucketsmith pointed out, it looked too much like ships on the ocean. It was meant to give a sense of life to the ships, but after he pointed this out to us, we couldn't stop seeing it, either...<br />
<br />
* The game now has proper settings on all the ship renderers for dynamic occlusion, motion vectors, shadows, etc. This should lead to a slight performance bump.<br />
** The editor has also now been set up to detect incorrect settings for these.<br />
<br />
* We had some extra uv2 and color and so forth channels on about 510 of our meshes, and we've now removed those. The amount of data was small, but it was useless info to be sending to the GPU since our shaders don't read from those. Every little bit of data shaved off when you're pushing millions of polygons on a millisecond scale is a win, not that it was causing problems in our testing thus far.<br />
<br />
* Fixed a bug where the single-ship-in-a-squad units were not being properly scaled down location-wise.<br />
* There was previously a bug in the profile screen where it was reversing what your body and trim color selections were on the box-based examples.<br />
** The icon-based examples were fine, but now the boxes have been corrected to match the icons.<br />
<br />
* Fixed a likely-longstanding bug where the scale of ships would drift smaller and smaller the longer you played, depending on how many times pooled ship visual instances of that type were reused due to deaths or due to switching in and out of the galaxy map view or between planets. Some went extremely fast, such as the recently added AI command stations. We suspect this is also what was going on previously with the warp gates.<br />
<br />
* Previously, the icon scales could sometimes be incorrect when tabbing back from the galaxy map, until you scrolled the camera around a bit. Fixed.<br />
<br />
* The placement mode icons were never scaled up or down to match the size they would be once placement was complete. Fixed.<br />
<br />
* Fixed a since-forever bug where the colors of icons in the main view were lighter than those in the sidebar. Turns out it was not color grading being applied, but rather that we were passing in our Color type parameters as Vector4s. This worked, sort of, but the typo wound up transposing the data slightly for some reason. Why it didn't just function correctly or fail completely is a solid mystery, to be honest.<br />
<br />
* Fixed an issue where opening savegames that were originally saved in a different campaign name but have been manually moved to a new folder were using the old campaign name instead of the new one as far as "continue last save" was considered.<br />
<br />
* Previously, if continue last save was not able to load the last save because it couldn't find the file, it was not showing any error. Now it tells you what the issue is.<br />
<br />
* In the game setup screen on the galaxy map, it no longer shows the colors of any factions other than player planet names (since in games with a lot of factions that actually gives away info).<br />
<br />
* In the game setup screen on the galaxy map, it now shows the player names under each planet name controlled by one.<br />
<br />
* Once into the game, it no longer shows the color of the faction on the other side of a wormhole if you've never scouted that planet at all.<br />
<br />
* Fixed an issue with the little bottom-left menus where the mouseover of elements behind them could sometimes happen because there were cracks between the buttons. Now there's a backplate behind the entire windows in those locations.<br />
<br />
=== Misc Improvements And Additions ===<br />
<br />
* Added a new IGameEntityDescriptionAppender, which can be linked up using the new xml tags description_appender_dll and description_appender_type.<br />
** One example is presently in place with the human home command station and a test class called AnyUnitExampleAppender.<br />
** This is something that can be used for adding arbitrary unit-specific or class-specific dynamic text to the description of any unit or unit type. This is likely to be widely useful as we build out the UI later on, because we can put in context-specific warnings and commentary, for instance.<br />
<br />
* If a ship has been shot to death into remains, it now says REMAINS in red after the name of the ship in the mouseover, and it tells you what the remains means and that you need a remains rebuilder in the description text. Otherwise this was absolutely mystifying as to what was going on!<br />
<br />
* When ships are under construction directly on the battlefield, it now shows the health bar to show the progress that they are making towards completion. Holy cow did things feel incomplete without that.<br />
<br />
* Hey, does the scale of the grav wells on planets feel too small to you? Here's how you can tune the numbers. For example, at the moment we've doubled the size of the grav wells, and we'll see how that feels. To do the doubling, since that's simple math, here are the changes:<br />
** GameData/Configuration/ExternalConstants/KDL_VanillaConstants.xml<br />
*** distance_scale_gravwell_radius 13000 to 26000 (This makes the sim-level grav well twice as large, but if you just change this then visually things will draw very wrong. Must be an integer.)<br />
*** asset_base_unit_radius from 100 to 200 (This makes the units draw half as large as they previously were. It has to be an integer).<br />
** GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml<br />
*** combat_visual_scale_divisor from 10 to 20 (This makes the position of units, and the size of their selection radius, all make sense visually. Whatever multiplier you apply to distance_scale_gravwell_radius, apply the same one here).<br />
*** forcefield_visual_scale_divisor from 5 to 10 (Same deal, forcefields will look the wrong size if this isn't adjusted).<br />
** There actually may be a few other settings that we overlooked, but hopefully this is a comprehensive guide. If not, we'll update this in the future if we discover a hole.<br />
<br />
* Selecting a constructor unit (like the Space Dock or Starship Constructor) will automatically open the Build Tab on the sidebar. It was really annoying to click on a constructor, then realize you need to also click on the Build Tab. Note that hitting "B" is more efficient than clicking on a constructor anyway.<br />
<br />
* Dark Spire: Different factions produce different amounts of Energy when their units kill or are killed. These values are tunable in the XML. The AI or players units produce more energy than minor factions like the Macrophage, Devourer or Nanocaust.<br />
<br />
* In the planet view, linked planet names are no longer shown over wormholes unless you are holding down the ctrl key. Thus you can easily see the names, still, but they aren't cluttering up your view all the time (and making the gravity well feel smaller in the process). This also has the benefit of making it really obvious when you can click to send your ships or camera through the wormholes.<br />
<br />
* Now that warheads are no longer a resource that should be shown on the top bar, we're bringing back the attack warning/numbers up there. This shifted around several elements on the top bar, spatially, but put the new attack warning in the bottom right of that bar.<br />
** Slightly different from the first game, the new attack indicator shows the number of hostile enemy ships on ANY player planets, not just those you own. That seems relevant. It has three states: a greyed-out "nothing's here" safe shield with checkmark, a yellow and orange "things are here, but not on your personal home planet," and then a red and white warning "there are at least some of these guys on YOUR home planet."<br />
** Undoubtedly we'll adjust this some over time. One oddity you'll notice is that the frequency of the flashing of the text in this field is inconsistent. That's unfortunate, but a side effect of the way that unity dirties its GUIs rather than drawing every frame, along with the multithreaded queued approach we take on top of that.<br />
** The tooltip will list all your planets that are under attack sorted by the strength of the attack<br />
<br />
* The quick start button now actually works, although it goes to the same location as the custom start. A tooltip notes that the quick start variant is coming soon. However, some folks were confused and not thinking to go to the custom start, so here we are.<br />
<br />
* On the galaxy map and in the planet view, the icons for ships now are rotated to billboard toward the camera on the GPU instead of on the CPU. This saves an enormous amount of processing when there are many icons, and means that we can update the scale of icons more rapidly even when there are many many icons on screen -- getting rid of that delay in rotation/scale that was seen in prior versions of the game. There still IS a delay built in, just in case you absolutely flood your screen with icons, but it shouldn't be hit in normal gameplay (or if it is, we'll adjust this further based on profiling of said savegames). Additionally, since the rotation is run on the GPU, that means that CAN'T happen any way other than instantly, which is nice.<br />
<br />
* The color picker UI has seen a number of updates:<br />
** The individual color cells are now far smaller, letting you see tons more of them at once, and feeling more like traditional color pickers.<br />
** The selected color cells no longer blink their main color, but instead blink a little border around them. It's a lot more obvious what is going on now, and no longer seems like a bug. The flashing is still needed because the borders get lost in the riot of colors, otherwise. Hazard of having so many options.<br />
** There is now a section of preset options (combos of body and trim colors) down at the bottom of the screen. These give attractive options that also don't conflict with any of the NPC factions. This is one of those things that makes the game infinitely more usable.<br />
*** There are eight of these right now, but it's possible to define more via xml.<br />
<br />
* The in-game tooltips for planets and units/objects now shows in the bottom left, as it previously did in AIWC.<br />
<br />
* The selected ships notice now also shows up down at the bottom of the screen, where the tooltips do. It only shows if a tooltip (or the escape menu) is not showing. This saves important space in general, and also paves the way for the notifications bar up at the top to finally have room.<br />
<br />
* Scouts have a much higher movespeed than anything in the game, so the approximation for lerping squad movement was much higher than anything else. This caused scout movement to feel very jerky. Instead we put a cap on the fastest possible visual movespeed for a squad.<br />
<br />
* Fixed a bug deep in the bowels of our UI code that was leading to a lot of higher-level bugs with things being positioned incorrectly, etc. The most recent manifestation of this, in the working versions of the pivot build, were un-owned metal desposit spots showing up half off the sidebar.<br />
<br />
* Added a new "Owned by Nobody" section on the ships section of the sidebar, since that's a legitimate fourth category. Golems that nobody controls yet, un-owned metal spots, etc, etc.<br />
** Also new, the items in this category can be seen on the sidebar if you've ever been to the planet before, even if you don't have vision of the planet right now. This is pretty handy.<br />
<br />
* The underlying flag under the queue pause button was not actually implemented (it may have previously been the loop flag), so it didn't work; now it's implemented and works to pause that queue. Incidentally this does not disable any other functions of the building unit, unlike in AIWC where it was done through the general "disable everything" mode<br />
<br />
* Removed requirement that you have had units on a planet before you can send units there on the galaxy map (leftover from the sensor-scrambler scouting model)<br />
<br />
* Fixed a bug where the game was still trying to seed design-template-servers when the AI unlocked something new, despite those not currently being defined in the game, and thus throwing errors<br />
<br />
* Fixed a bug where AI ships freed by a minor faction still just went after the humans<br />
<br />
* Engineer and Rebuilder FRD now works (though their prioritization leaves something to be desired)<br />
<br />
* AI planets directly adjacent to a human homeworld no longer seed guardians or sentinels, to match AIWC (AIWC had wormhole guard posts, now known as wormhole sentinels, but their omission is not significant)<br />
<br />
* Guardian counts have generally been significant reduced, and are now proportional to planet mark level as well as number of guard posts<br />
<br />
* A bonus ship type can now be selected for each human faction (currently you have to click "more" to get to this, since the space is already taken by the two color dropdowns and the Ark dropdown)<br />
<br />
* You now start with 10k science, and all weapon turrets (except beam), to parallel AIWC<br />
<br />
=== Keyboard/Mouse Input Overhaul ===<br />
<br />
* Previously we were using some middleware called Rewired, which was bulky and inflexible in a variety of ways. It's super useful if you want to handle a bunch of gamepads and in particular if you want to have design-time-defined controls. Our use case was diverging enough that all it added was bloat, though, because we had to write our own runtime-control-definition layer, poll the list of all our controls while it polled all the keys under the hood, and other messy things like that. So Rewired is out.<br />
<br />
* We brought in what started as EasyInput from ootii as replacement middleware, then pared that down to just the keyboard and mouse bits. We then basically rewrote the entire thing so that it's more efficient, uses no dictionary lookups during the game loop, and is compatible with all the things we want it to do for this game. So ultimately we wound up just kind of creating our own.<br />
<br />
* The new input system has a lot of performance benefits, but one of the biggest things it will do is make it easier for us to define all of the keybinds in xml, no matter how many we have. All of the keybinds that were previously hardcoded have now been moved to xml.<br />
** It was previously somewhat difficult for us to check if something was just pressed, just released, being held, etc, in an efficient and automated way. This is now something that can be directly specified in our xml definitions for the keybinds.<br />
** We also have a new Custom type of key check, which basically skips the whole Handler reflection-linking process and instead just lets classes elsewhere in the code get an object reference to that key and then check it as needed. This is very useful for modifier keys of any sort, and for all of the camera controls.<br />
<br />
* Work has also been done to prep this for an actual interface for viewing and editing keybinds in game. We'll get that in place prior to Early Access, but for now we have a few other fish to fry.<br />
<br />
* A variety of bugs relating to keys that could be triggered on the main menu that were only supposed to be in-game have been fixed.<br />
<br />
=== Galaxy Map Improvements ===<br />
<br />
* The galaxy map is now using a purely top-down camera with the ability to pan and zoom but no ability to tilt or rotate the view. There have been a number of valid issues brought up with the existing galaxy map, and we're starting to work through those now. Lots more to come, but here are some of the first bits.<br />
<br />
* Players can now see the entire galaxy map structure -- meaning the actual planets and their wormhole links and lines -- from the start of the game.<br />
** This is the same data you see in the lobby, so it was always strange that we took it away after the game started in Classic and this game.<br />
** This does NOT grant you any actual visibility on the planets as to their contents, owners, resources, ships present, or anything else.<br />
*** Aka, this is not a reduction of fog of war, it's just the ability to see the shape of the battlefield, same as you already could in the lobby.<br />
<br />
* Previously, on the galaxy map it would take you into the planet view as soon as you clicked a planet, unless you held Alt. This was not helpful for a variety of reasons, so based on user feedback it now by default just switches which planet is selected but doesn't change the view unless you hold Ctrl.<br />
<br />
* When you are on the galaxy map, it now only shows the name of the planet you are currently viewing unless you hold down the ctrl key. This is a lot more like the first game, and is way less cluttered.<br />
** In the lobby, it shows the names for all human planets, with their colors on there.<br />
<br />
* You can no longer zoom the galaxy map so far in, you start further zoomed out, and you can zoom out further.<br />
<br />
* On the galaxy map, the visuals for the planet are now 4x larger, making them easier to see at farther zoom ranges. This is essentially the same as making the planets "closer together," so to speak, in its effect on how you view the map.<br />
<br />
* Rather than drawing the literal visual of the planet on the galaxy map, which turned out to be fairly pointless, we now draw icon-like 3D models in place of them.<br />
** These show the color of the owning party for the planet, if there is one, and they show a different icon for unscouted (ever), regular, and homeworld planets.<br />
** The regular-planet icons are a bit different for marks 1-5 of regular planets, incidentally (anything over mark v shows the mark 5 graphic for the planet itself). These help give you an indicator of the strength of planets when they are in the hands of the AI.<br />
*** After you capture a planet, it still retains its graphical styling for what mark level it used to be, which is a subtle but cool way of showing your progress in the past.<br />
<br />
* On the galaxy map, the selection ring is now fancier, easier to see from a distance, and it rotates to make it even more obvious where it is.<br />
<br />
* The "king unit" no longer shows up next to home planets on the galaxy map. Instead, now the planet itself is showing up looking different. It's a lot easier to tell what the heck is going on, now!<br />
<br />
=== Camera Improvements ===<br />
<br />
* The camera in the planet view has been something of a bugbear for a little while, because there were a variety of things that could go wrong with it. But even more than that, it was using a TON of keys on the keyboard: WASD and the arrow keys for movement, Q and E for rotation, and R and F for tilt. Time for revisions!<br />
<br />
* One of the new things that was most interesting was the idea of a "tilt and rotate" mode, rather like what happens if you hold the right mouse button in Planet Coaster. We can't really use the right mouse button that way, and the middle mouse button makes more sense as the existing "grab and pan" functionality, so we've defined the mode modifier for that as Q now, or Mouse4 if you have a 4+ button mouse (those are awesome, incidentally).<br />
** Along with this change, the default bindings for rotation and tilt are simply set to nothing. If you want to bring back the Q and E and R and F the way they were, that ability didn't go away, but we're claiming those keys for other things instead (Q is already the tilt and rotate mode, whereas the others are unbound at the moment).<br />
<br />
* Along with this, zooming out could potentially put you out of bounds previously, if you had the camera tilted sideways a lot. Now when you zoom out, it un-tilts your camera to avoid this happening. Most other games do this same thing; technically it wasn't zooming out before, but just backing up laterally, anyway, if your angle was shallow enough. Now it actually always zooms out.<br />
<br />
* Previously it was possible for sometimes the mouse wheel to give way too much input in one frame, and send you shooting forward. Probably this was happening directly during a long Garbage Collector frame, although we're not sure. We've put in some safeguards to prevent this from happening, although if it is caused by something other than what we guessed then it will still happen and we'll have to add more safeguards elsewhere.<br />
<br />
* There's a new setting for the tilt/rotate mode that lets you set the sensitivity of that.<br />
<br />
* The "free look camera" stuff has all been commented out for now. We could in theory bring that back, but it felt awkward and was not really needed, ultimately. This removal also helps the settings menus be a little less overwhelming when it comes to camera options.<br />
<br />
=== Visual, Audio, and Workflow Improvements ===<br />
<br />
* The icons for ships are now just stored once in the game, at a single size, rather than twice at two different sizes. This makes it a lot faster for us to update the icons, and uses a bit less disk space.<br />
<br />
* Added a new visuals_scale_multiplier xml entry for GameEntities that lets us scale up or down entities as we wish for whatever purposes.<br />
** One of the biggest uses is so that we can have fewer prefabs that we have to initialize and keep in memory for ships that grow in size but nothing else during mark-level changes.<br />
** This is now in use on the AssaultStarship and the NeedlerGuardian, which are the only two ships re-implemented at this point for which this is relevant.<br />
<br />
* The tractor turrets look so cool that we've made them a bit larger and made it so that there is only one per "squad" on them. They look like they individually mean business as it is.<br />
<br />
* The visuals, icons, and scales for engineers, rebuilders, and human cryogenic pods are all now in place.<br />
** Note that only engineers and rebuilders are actually in the game yet.<br />
<br />
* Adjusted gimbal_base_scale from 2 to 2.5 in GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml so that the gimbal icons aren't so darn tiny. This seems to feel more like AIWC, now.<br />
<br />
* Human scouts and AI tachyon sentinels now have their graphics in place.<br />
<br />
* Added a new y_offset_of_ship_in_formation xml tag, which allows us to raise and lower ships from a squad as a group. This is useful for really tall structures, for instance.<br />
<br />
* Added the visuals for all of the command stations (AI, basic human, economic, logistical, military, warp jammer, human home, human home core).<br />
** This was quite a task to pull off in a satisfying yet recognizable way, but we finally have it. Basically these needed to be larger and more epic, yet stand out and not have too many polygons, etc.<br />
<br />
* All of the icons for the new command stations and such are now in place, and the icons for command stations show larger than other icons on the planet. The icons for the king units now show even larger. There are also different icons for each type of command station, in such a way that you can easily tell something is a command station, but also that it is some other kind of command station beyond the basic sort.<br />
<br />
* The voice_group xml tag that specifies what voice is used for ships is now required. For non-human-controllable ships, just using Silent is preferred, although it doesn't really matter since these voices only happen when a human player gives orders to the ship in question.<br />
** Previously these were partly defined on the weapon types, but this was far too broad a way of doing it (and had stopped working on our internal versions as part of the Pivot anyhow).<br />
<br />
* Visuals have been created for the energy collector, matter converter, science lab 1 and 2 (though only mk1 is in the game), raid starships mk1-4, metal harvester (and empty version), tractor guardians mk1-5, scout starships mk1-4, home human settlements, and hackers (though hackers are not in the game yet).<br />
<br />
* The visuals for the colony ship are now in place.<br />
<br />
* There are a lot more Arcen-based header menus in unity now for us to speed up repetitive tasks. Also ones for opening folders, and in general letting us work faster and with fewer clicks to get things done.<br />
<br />
* The icon definitions no longer need a _border entry in xml. They still need the actual files, but the game can find them just based off the original icon entry. Yay less typing and chances for typos.<br />
<br />
* Wormhole scaling-up has been removed, and will be replaced by a far-zoom icon like ships/squads get.<br />
<br />
* "GenericObjects" can now have a list of AlternativeMaterials specified. <br />
** This is used for the wormholes in particular so that they can change colors and cubemaps in order to represent different things, or even being hovered.<br />
*** On the wormholes, if you look into them, you'll see a distorted view of actual images from the ESA/Hubble, used with attribution. It's a neat little detail, and you have to get extremely close in to see it.<br />
<br />
* The wormhole visuals have been completely redone AGAIN, probably for the last time this time. We're using something called Scingularity, heavily modified for our purposes.<br />
** The wormholes are drawn using a single untextured quad, which then does a ton of math and uses a cubemap for the center of the singularity, and then a pixel shader to do the outer swirl. Because of this, it looks fantastic at any zoom level. And amazingly, it performs well. You don't need any special hardware.<br />
** In our case, we're using those EA/Hubble images noted above for the center of the wormholes, and then different normal maps for swirl patterns on each color of wormhole, and different colorizations on the wormhole swirls to indicate different things.<br />
** Greenish ones go to enemy planets, darker blue ones go to your planets, lighter blue ones go to allied planets, red/orange ones have a wave incoming, pale green ones go to allied or neutral NPC factions, and white goes to unowned planets.<br />
** When you are hovering over the wormhole -- which requires you to be holding ctrl down, incidentally, so that you can send either the camea or units through it -- then it glows at a much brighter temperature. Makes it far easier to know if you're actually hovering over it.<br />
<br />
* At long last, your choice of colors in the profile menu actually means something! Whatever you select on your profile for your body and trim colors are now used next time you go into the lobby.<br />
** The lobby is still the outdated style with the dropdown for colors, but now it has two colors there for your choosing, too. Using it that way is not ideal, but we'll get to that in the next few weeks.<br />
** For now, it's a very happy thing that we finally have two-color player colors in the game!<br />
*** For each place text is using the colors, it just uses the body color right now.<br />
*** There are presently be some issues with the icons in the main not matching the colors exactly, which is probably due to color-correction post-processing. We're going to be shifting those icons into the GUI camera soon anyhow, so that should solve that when we do. Until then, everything looks washed out in the main icon view.<br />
*** When it comes to showing that a unit is hovered-over, it now goes darker or lighter depending on whether its average color is greater than or less than half brightness; this is instead of the <br />
*** When it comes to showing that a unit is selected, it now inverts which is the border and which is the center color on those selected ships. This may wind up being confusing or not clear enough, but it was pretty decent for a first stab at this.<br />
** As an aside, when you change the colors and hit OK in the color picker in the player profile screen, it writes to the underlying log what the color selections are called. You can then use this in xml defaults if you're doing modding. Otherwise this doesn't affect you.<br />
** For all of the special factions, AI factions and subfactions, humans, and so forth, there are now default colors! With the two-tone colors we were able to do a lot more theming and nuance.<br />
*** Player colors are going to need to include some defaults for people to choose from, since it can be time-consuming to do so otherwise and you don't know if you're potentially selecting something similar to another faction's defaults. Providing some quick-pick attractive defaults is on our list prior to EA; we already have 8 sets of colors, but the interface isn't updated for that yet.<br />
<br />
* The icons for all ships have been improved, with more darkness and light on them, and more layers of borders and sub-borders, to make things really have contrast and stand out so that they are more legible.<br />
<br />
* Put in a fix to our spritesheet for the ship icons so that now there is substantially more padding in them, fixing some bleed-over between sprites (causing line artifacts, etc) at smaller mipmap levels (when an icon is shrunk a lot).<br />
<br />
* The game finally has "burning and dying" effects on the ship icons as they are killed. Thanks to Badger for continuously pushing for this, as well as for implementing the timing code portion of this. This really helps make the battles both more dramatic from the far zoom view, as well as frankly clearer what is going on.<br />
** We implemented this in completely open-source code between the C# and shader bits, so it can be tuned by other folks if desired. We though about using a ramp texture, but wound up going with a series of lerps between vector4s instead.<br />
<br />
== Version 0.743 Music Blooms ==<br />
(Released May 2nd, 2018)<br />
<br />
* The second half of the AI War 2 soundtrack is now in place! These pieces, as specified in the kickstarter, are all remixed/remastered versions of tracks from AI War Classic. In there we have the Defeat and Victory tracks from the first game, Nomad Sunrise from DoW, Intro and Midnight from the base game, Night Light from LOTS, Rising Up from VOTM, and Voyage to Zenith from TZR.<br />
** With this, we're now also distributing the full soundtrack (plus a variety of bonuses!) to all those backers who signed up for it. You should have an email with that link, and/or be able to see it in your backerkit profile page: https://aiwar2.backerkit.com/<br />
<br />
* The game now actually plays defeat music when you lose.<br />
<br />
* When you win, the game first plays the For The Fallen vocal track, and then goes into the from-Classic Victory track, then goes on to play regular music from the in-game rotation.<br />
** When you lose, the game plays the defeat track, then also goes back to the regular in-game rotation.<br />
** These two changes are aimed at people who want to keep playing after a victory or loss, which are a not-insubstantial number of people.<br />
** We actually have not tested this bit at all, so, uh, if it doesn't work properly like this then please do let us know and give us a savegame. We're kinda busy on a lot of fronts right now! Normally we unit-test things, though.<br />
<br />
* We're now internally using the Asset Bundle Browser to help us find trouble spots with overlarge pieces of data in our asset bundles that we're building for the game. This helps with load speed, runtime efficiency, and asset bundle build speed.<br />
** On github: https://github.com/Unity-Technologies/AssetBundles-Browser<br />
<br />
* Slightly improved the efficiency/size of the effects asset bundle.<br />
<br />
* Reworked the bloom effects to use the Natural Amplify Bloom effect rather than the Realistic one. This, plus a couple of other tweaks in that area, lead to something that still has bloom, but is a lot more subtle than before. Some folks were complaining about that with the teaser trailer, and we can see their point.<br />
<br />
== Version 0.742 Hotfix ==<br />
(Released May 1st, 2018)<br />
<br />
* Fixed a bug where the total seconds to load was only being reported in output.log, and not in the ArcenDebugLog.<br />
<br />
* On the main menu, it now shows how long it took to load the game, and you can hover over that to get details if you want. The "logged in as Steam user" info is right below that, and both are a bit smaller now.<br />
<br />
* The loading feedback on the sound effect items and graphics items are now more coarse, leading to faster overall loading times compared to the last internal versions.<br />
<br />
* The method for tracking how much time has passed has been adjusted to use DateTime.Now instead of the Stopwatch class, since we had some questions about accuracy.<br />
<br />
== Version 0.742 Darkly Loading Spire ==<br />
(Released May 1st, 2018)<br />
<br />
* Rather than looking like the application is hung when it starts, the game now shows the loading progress in the form of what it's doing at the bottom. It doesn't show a loading bar, but it does show a counter of how long has elapsed, and how long specific long-running bits are taking.<br />
** This is useful both for us to know in terms of telling when something is overly slow to load, and it also gives players something to look at and a cue that there's not just a frozen application in front of them.<br />
<br />
* Surprisingly, the sound effects loading is taking twice as long as the loading of the graphical data right now (9.6s versus 4.4s on Chris's machine), so this is already an example of where we can optimize our loading speeds a bit, which saves everybody a lot of grief and saves the devs here time staring at the screen when it's time to test each item.<br />
<br />
* Additionally, now if the game has an error during load, it won't show a mishmash of all the gui windows all overlapping themselves in an insane and obviously-glitchy way. There is no functional difference between before and now, but it seems a lot less terrifying now if you're seeing it for the first time.<br />
<br />
* The loading log for how the game starts up is now more informative than ever, and on the long-running sections it actually shows a progress count rather than just hanging on those sub-parts. Sometimes those sub-parts can take 30 seconds or more on first run (though usually 4 seconds or so on subsequent runs), so having this feedback is pretty vital to this not feeling like maybe it locked up.<br />
<br />
* The alpha channel has been removed from a ton of images that didn't need it, letting the compression format be smaller on disk, in RAM, and in VRAM, as well as loading faster. This will definitely be kept, as it was useless data.<br />
<br />
* The max texture size for some of the non-diffuse texture channels for the ships are now cut way down from what they were before, to reflect the distances you typically see these from. This saves 300MB of RAM, disk space, and also lowers the VRAM requirements and makes rendering faster. It also makes loading vastly faster. This is definitely a quality/compression tradeoff, and we do still have the originals, so we may wind up making this an option or something in the future if it seems ugly to folks this new way. At a fairly casual glance by those who worked on the ship graphics, we can't really tell the difference, though; in side-by-side shots you would notice it, but that's about it unless we are mistaken.<br />
<br />
* The compression style for weapons effects and other sound effects has been changed to ADPCM instead of Vorbis, and these are now set to load on a background thread rather than the main thread. This makes loading vastly faster for the sound effects, although it does use something like 20MB of extra disk space. The amount of space used in RAM is identical, since we always decompress on load, anyway.<br />
<br />
* The voice acting clips are now set to stream in like the music does, as well as load on a background thread, rather than being preloaded or decompressed early. This actually saves quite a bit of RAM, and doesn't affect disk space, and saves an enormous amount of loading time. The downside is that it can cause a sub-second delay in playback of voice clips, but given the nature of a voice clip that is both imperceptible and irrelevant.<br />
** Different types of sounds have different characteristics and need different settings, and we've optimized these, in short.<br />
<br />
* Speaking of optimization, we're no longer doing full error-checks on load for each ship visual that is loaded in. That was time-consuming and pointless. In the ship designer windows it shows errors, and if someone commits a ship with errors that's something that is a goof on their part and not something we need every player machine checking for every time the game starts. So that saves another batch of time.<br />
<br />
* We're also doing another experimental thing, where with the solomesh ships we're directly using the asset bundle copies of the ships to get their meshes and materials, rather than instantiating a copy first.<br />
** Generally this is not advised, since it can cause a bunch of extra disk reads and other general slowness when accessing that data. However, in this particular case, since we're not actually accessing anything more than the data on these objects (we're not making copies of the object), we think it's not hitting the disk like that. We don't see any evidence of it in the profiler now, anyway, and we were in the past.<br />
** This speeds things up yet again, and so far so good on that front, but we may have to back this one out later.<br />
<br />
* Overall the loading speed of the game has more than doubled, in typical test cases thus far, and it actually is responsive while loading as well, which is an important first impression piece.<br />
<br />
* Fix a bug where the Nanocaust was never losing influence over a planet even after the constructor was destroyed<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Change the default colour of the Risk Analyzers<br />
<br />
* When the Human Marauders put Marauder Outposts on a planet, give them Influence over the planet (so it will be shown on the Galaxy map)<br />
<br />
* Initial commit of Dark Spire. Like in AIWC, it spawns ships based on energy it gains when ships die on a planet with a Vengeance Generator (VG).<br />
** Energy is tracked per VG. When VG energy > threshold it either shares energy with the VG with lowest energy or it spawns ships to attack. There's a Conversion Ratio when turning energy into ships; it starts out not very efficient (maybe 50% of the energy becomes ships), but every time a VG spawns new ships it becomes more efficient. <br />
** AI Overlords start with a Dark Spire Ward structure on their planets which prevents Dark Spire ships from going there. If a player destroys the Ward then the Dark Spire will be able to attack the AI overlord, thus giving you a new win condition.<br />
** Every so often the Dark Spire will attempt to spawn a Vengeance Generator Locus. The Locus will transform into a full Vengeance Generator in 5 minutes. If you don't kill the Locus in that time period then it turns into a Vengeance Generator. Planets are eligible for a Locus to spawn if they have no Human or AI ships on them, and they are adjacent to a Vengeance Generator without any human or AI ships on it.<br />
<br />
== Version 0.741 Music Part 1 Of 2 ==<br />
(Released April 29th, 2018)<br />
<br />
* The first half of the new tracks for the AI War 2 soundtrack are now in place: Abandoned Ship, Absolute Zero, Bouncing Lights, Event Horizon, Light Year, and Supercluster.<br />
** All by Pablo Vega, mastered by Dio, and all fantastic.<br />
<br />
* Update to Human Marauders behaviour. If they destroy all your forces on a planet then they will begin to construct Marauder Outposts which will spawn Marauder new units. This will make it harder to recapture planets. Every so often a new MarauderOutpost will be added, and existing MarauderOutposts will upgrade themselves to make stronger units. Note also that when the Marauders capture a planet they get a permanent boost to their MaxBudget, making them more dangerous.<br />
** If you allow the Marauders to get Mark 3 outposts then they will start getting Budget faster.<br />
** The balance levers are in XML for ease of use<br />
<br />
* The default game volume is now quieter in the hope of not deafening new players<br />
** Thanks to Flavin for the report<br />
<br />
* Improved the performance of music loading at the start of the game and during the game.<br />
<br />
* Fixed a regression in the prior version of the game where the first time any camera loaded a "traditional skybox" type of background, it would be solid black instead.<br />
<br />
* Fixed an issue where the construction part of the sidebar could show some stale data when switching from a planet with a builder to one without a builder.<br />
** Thanks to hawk for reporting.<br />
<br />
* Fixed a bug that nobody had reported yet with lightning attacks being very strange-looking and not like lightning bolts anymore.<br />
<br />
* Fixed a bug with the various type of geometry-based explosions (flak, lightning, etc) so that they now render additively in the transparent queue rather than the overlay queue, and so that they read from the zbuffer but no longer write to it.<br />
** This changes the effects a fair bit so that they no longer do things like eat into one another or the ship icons around them.<br />
** These will need further tuning to not be over-bright in huge battles, and they're on our list for further improvements visually anyway, but for now it's a good enough start.<br />
<br />
* Risk Analyzers: code tidying, also track the total and net AIP generated by Risk Analyzers. Eventually this is going to turn into 'When X AIP is generated by Risk Analyzers, do something unpleasant to the player', probably an exo wave, once exo waves are added<br />
<br />
* Map Types: Add a new planet placement mechanism for Simple and Realistic, and tweak one of the previous placement algorithms for Simple and Realistic<br />
<br />
* Fix some bugs with Marauders, where outposts weren't upgrading properly.<br />
<br />
== Version 0.740 Clean Up That Nebula, Young Man! ==<br />
(Released April 26th, 2018)<br />
<br />
* Fix some dumb bugs in the HumanMarauders faction that was preventing the marauders from correctly analyzing your planets to see which they should attack<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fixed a bug where the Vis layer was not correctly setting the Shot location when we tabbed into a planet with the shot in flight; it was assuming the shots should be at the middle of the planet, which is manifestly incorrect<br />
** Thanks to OvalCircle for reporting<br />
<br />
* Fix a bug where where if a non-Nanocaust faction killed a unit that had taken Nanocaust damage, the killing faction would get the new zombie ship instead of the Nanocaust. <br />
** Thanks to OvalCircle for reporting<br />
<br />
* A new and frightening visual look for Usurpers has been added. These will be absent for a while until we get past the "Fun point" once Keith gets his first wave in place, but then we expect these to come back pretty darn fast, so we want them to look nice and scary). (These are the AI ships that recapture planets)<br />
<br />
* The infrequently-changed space backgrounds, and planet graphics, have all been moved into a new internal AIW2Scenery unity project, which saves us a _ton_ of time when actually building the gui asset bundles, or ship asset bundles, for the game.<br />
<br />
* The sound effects and voice acting files have all been moved out of the platform-specific projects, and out of the modding and gui project in general.<br />
** These are now in the GlobalBundles folder, which saves some disk space if you've got multiple OSes of the game installed at once. It also saves us time when pushing new versions of the game, and has less of a footprint on the system for everybody thanks to the modding unity project now being much smaller without all those files.<br />
** This does make some of the sound stuff a bit harder to mod, but we'll just throw that stuff up on github or google drive or something when the time comes. It's not worth inconveniencing everyone over putting it directly in the build.<br />
<br />
* There were a variety of old "space boxes" that were from back in the kickstarter days that were just... underwhelming. They were nicely colorful, but had kind of gross large stars in them, and in some cases just junky colors in general. These have either had their gross big stars patched out, or they've been removed.<br />
** Overall these have mostly been removed except for the best couple of them (which now have color variants!). <br />
** This saves about 200mb of RAM for something that wasn't looking so hot in general, and makes the game load faster, too.<br />
<br />
* Our middle-style "nebula sphere" type of backgrounds previously had a really bad problem with distortion on the starfields. This was just embarrassing, and led to some perfectly-fine spaceboxes looking really gross depending on the angle of view, instead. These have all been fixed up with a revised shader for handling those starfields as simple tiling rather than triplanar reading.<br />
<br />
* Our most recent, and best-lookg style of space backgrounds, which are based on traditional skyboxes, were absolutely HUGE, taking up more than 450mb on disk, and in RAM. Each one was 12MB of VRAM to render, as well, although that's unavoidable to keep the starfields crisp using a non-tiling cubemap like that.<br />
** We've now split these out so that the stars themselves are in a separate cubemap which is the larger size, and then the nebula parts are able to be a quarter of the size (half the side length) without any drop in quality. This adds 3MB of VRAM usage per draw (of which there is exactly one per frame), but saves over 300mb of disk space and system RAM during runtime, as well as making the game, once again, load faster.<br />
<br />
* 49 new space backgrounds have been added, based on 8 source cubemaps, to replace the ones that were taken away (though this actually adds back more than were taken).<br />
** The new skyboxes are way higher quality than the ones that were removed, is the main point, anyhow.<br />
<br />
* The starfield backgrounds on the galaxy map are now much more neutral, with mostly black and a little bit of white. Easier to see foreground objects on them, now.<br />
<br />
* Fixed a bug where once you viewed an old-style spacebox background, it wasn't letting you view any "traditional skybox" backgrounds, which explained the over-prevalence of the former.<br />
<br />
* The settings option for "background style" has been removed, as that's no longer really relevant to anything.<br />
<br />
== Prior Release Notes ==<br />
<br />
[[AI War 2: Final Pre-Beta Checks]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30717AI War 2:Final Pre-Beta Checks2018-04-07T23:52:49Z<p>Keith.lamothe: /* Version 0.720 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.721 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
== Version 0.720 Hotfix ==<br />
(Released April 7th, 2018)<br />
<br />
* Fixed a bug where the strength numbers in the sidebar could flicker to zero and back.<br />
** Thanks to Magnus for reporting.<br />
<br />
* Fixed a bug where the sidebar could flicker back and forth between "you don't have vision here".<br />
** Thanks to Badger for reporting.<br />
<br />
* The Prototype Flagship now has a sensor range of 1 (same as the Ark) for giving vision on adjacent planets.<br />
** Thanks to Badger for suggesting.<br />
<br />
== Version 0.719 Do Not Feed The Turrets ==<br />
(Released April 7th, 2018)<br />
<br />
* Added a glowing blue atmosphere effect to the AI planet on the main menu. This wasn't exactly on the top of our todo list, but it was a good palate cleanser as we geared up for some other things today.<br />
<br />
* Fixed a bug where the auto-upgrading of a ship could produce multiple copies of the upgraded unit, and circumvent the ship cap and fuel cap.<br />
** Thanks to Magnus for reporting.<br />
<br />
* Implemented double-speed Sqrt functions based on the math noted here: http://blog.wouldbetheologian.com/2011/11/fast-approximate-sqrt-method-in-c.html<br />
** Also used this to make double-speed (or even a bit faster) magnitude functions for Vector3s.<br />
** Unrelated, added a probably-more-efficient Abs function that the CLR can inline.<br />
<br />
* Shots now consist of the initial "body" of themselves, and then a linear trail that zips out behind them depending on how fast they are moving. For missiles and similar, the effect is particularly neat.<br />
** Unlike the things we were doing in the past, however, with TrailRenderers of unity, this is fully GPU-instancing-compatible, and is also a lot less intense on both the CPU and the GPU, and creates no garbage in RAM for the collector to clean up.<br />
** This approach is also something we'll be making use of, somewhat in reverse, to handle "lines between things" of the type that we have for repair, tractoring, beam weapons, etc. This will let us do much fancier "laser beam spikes" and similar that are entirely volumetric rather than billboarded, and which are more performant as well as looking notably better.<br />
** Currently the following shot types have been updated with their final-for-now visuals: FusionBomb, FusionRocket, ExtremeLongRangeRailgun, EnergyWave, ArmorPiercingShell, GuidedMissile, PlasmaTorpedo, PlasmaBolt, EngineDisruptingShell, Lightning and LightningGuardian were already done, Flak (except the explosion at the end bit needs updating), ExtremelyLongRangeIon, MassDriver, ImplosionCannon, ImplosionBolt, MajorZombifyingRockets, MicroAOERockets, ZombifyingShells, and PlasmaTorpedoShotgun.<br />
** The following beam-style weapons are presently invisible or not showing properly at least, not sure: Laser, HeavyBeam.<br />
** The following explosive-style weapons need updated visuals: Flak, MineExplosion, ArmorPiercingMelee<br />
** The following full-screen weapons need visuals: Attrition, NuclearExplosion, EMPExplosion.<br />
<br />
* Direct Waves are now the only type of waves enabled by default. This matches the default behaviour of AIWC.<br />
<br />
* Some nerfs to the overall strength available to the Warden Fleet.<br />
** Thanks to Magnus for feedback<br />
<br />
* Until the Ark is actually pickable via the profile screen, make The Orchid a selectable Ark type through the current interface in the Game Lobby<br />
<br />
* We're now using Simple Mesh Combine as part of our pipeline in a few areas, combining a variety of meshes with different materials into a single mesh with multiple submeshes. This is done in order to improve culling performance and gameobject handling, and to let us use the ArcenVisualSolomeshShip class instead of ArcenVisualShip, with the former being more efficient.<br />
** We've updated the following ships thusly: Special Forces Ninja Hideout (called the Warden something-or-other on the front-end now), Ark One, Ark Rorqual Hegira, Ark The Orchid, and Small Temporary Rock.<br />
<br />
* Made a number of adjustments to how the "prototypes" for various objects are created and used. We were accidentally double-initializing most of them, which made loading the game slower than it needed to be, as well as creating an extra 800ish objects in the scene behind the scenes. That's now fixed up, and makes garbage collections slightly faster at the same time.<br />
<br />
* The metal section of the resource bar now uses the proper color to indicate metal, rather than just being white.<br />
<br />
* On the construction tab, there is now a little metal icon in the upper left on every icon, and on the science tab there is now a little science icon in the upper left on every icon.<br />
** Thanks to TheVampire100 for suggesting, so that tabs are easier to tell apart.<br />
<br />
* Slight tweaks to shot targeting code to reduce memory usage.<br />
<br />
* Smooth out the shot speed a bit, so shots don't seem to accelerate/decelerate as much mid flight<br />
** Thanks to Chris for the bug report<br />
<br />
* The fourth Ark design, the third commissioned by kickstarter backers, is now in place: Gyrn, The Voidhome<br />
** You can check out a video of it here: https://youtu.be/X0NvDc7mDKc<br />
<br />
* The logic for how the icons and whatnot on the ships tab of the sidebar position themselves has been completely re-coded from scratch.<br />
** It no longer has the same lag with things in the wrong positions, it no longer blinks out of existence periodically, it no longer has to refresh itself 5 times a second, and ship icons never mysteriously go missing or switch positions with one another.<br />
** Thanks to Magnus, Mckloshiv, and etheric42 for reporting.<br />
<br />
* The right-hand sidebar is now top-aligned, but 40px down, rather than being bottom-aligned and 20px up. This feels more natural, and still leaves room for the upcoming wave warnings across the top.<br />
** This also fixes the bug where at certain aspect ratios, the top of the sidebar could stick up off the screen. The bottom of the sidebar still can, at certain screen resolutions, but... well, just don't use those aspect ratios. It's very strange windowed-mode-only resolutions that case that, so the average player would never ever see that.<br />
** Thanks to Badger and Eric for suggesting the parts of this.<br />
<br />
* When the GUI is hidden, holding shift no longer draws the lines for any ships you have selected.<br />
<br />
* Fixed a nullref exception that could happen when saving the game, particularly in the test chamber.<br />
<br />
* When in the test chamber, tabbing out to the galaxy map and back randomizes the planet and the starfield background.<br />
** It's also now randomized in the test chamber in general, rather than always being the same thing.<br />
<br />
* Fixed a number of bugs with the background skyboxes not showing the correct thing in various circumstances. It was most noticeable on the galaxy map, but was also happening in the planet view.<br />
<br />
* The Ops tab of the sidebar now also uses the more efficient and correct method of sizing and positioning its elements.<br />
** Additionally, instead of the confusing "No Ark" note when you need to select your Ark, it instead says "Select Ark."<br />
<br />
* The Science tab has also now been updated in this manner, to perform better and show more correctly more of the time (ideally all of the time).<br />
<br />
* All of the turret icons have been updated to include letter codes within them, which make them vastly more recognizable when they are small.<br />
<br />
* Updated the construction sidebar so that it is also now updated to the new style of logic that is both more correct and more efficient.<br />
** As part of this, the rally, control group, and pause buttons are actually now responsive to mouseover, although they don't yet allow clicking.<br />
<br />
* The Prototype Flagship you start with is no longer eligible to be seeded on the map<br />
** Thanks to ZeusAlmighty for pointing this out<br />
<br />
* Force AI Waves to press home their attack; on higher difficulties sometimes a wave would flee a well defended planet before any actual fighting, and a slight nerf to overall AI strength at higher difficulties<br />
** Thanks to Magnus for those suggestions<br />
<br />
* The AI will now unlock new fleetship types more slowly<br />
<br />
* The Encapsulated map type now lets you choose between a Small, Medium and Large outer circle<br />
<br />
* Human Resistance Fighters now have a cap to how strong they can get. The cap will go up every hour.<br />
<br />
* Under the hood, threat numbers fluctuate wildly for some reason (likely multithreading race conditions).<br />
**We've added two new classes for tracking data over time: MaxFloatValueOverTimeList and MaxIntValueOverTimeList to deal with that.<br />
** The latter is used in order to keep track of the max value that was seen in fifth-second intervals, and thus expire high values only after a full second has passed.<br />
** Since the data can go upwards instantly, it's nice and responsive, and the little sub-second dips to lower values due to multithreaded calculations are not ever showing up anymore.<br />
<br />
* Completely redid the visual font for the ship mark levels in the gimbals. It's a lot more attractive.<br />
** Also the numerals are WAY smaller compared to the actual icon of the ship on the gimbal again, more like the first game.<br />
<br />
* Made the gimbals in general a lot smaller, again more like the first game.<br />
** This will be getting some more reworking soon, anyway, as we change how gimbals are drawn a bit.<br />
<br />
* Reworked the old "flair" spots on the ship gimbals so that we can now show status things like FRD mode and whatnot on there, instead.<br />
** This in turn fixes some other issues that we were having with efficiency and proper scale in this area.<br />
** It also fixes the issue of you not being able to see these sorts of statuses on markless ships.<br />
** These actually show ABOVE the main icon now, leading to somewhat better visibility for these special statuses.<br />
<br />
* Added in new Mark VI and Mark VII data entries and mark level icons.<br />
** We're not actually doing anything with these just yet, and later on we'll only be using these as variants for SUPER late-game stuff if people decide they want to capture all 100 planets or something. You won't be seeing these mark levels in most games at all.<br />
<br />
* Removed the "exit wide" behavior AI ships used when exiting a wormhole. This was left over from when wormhole traversal was always going to be on the edge of the gravwell, with a special animation. As it is now, it was just annoying.<br />
** Thanks to Magnus and others for reporting.<br />
<br />
* Fixed a bug where AI ships would camp on a dead turret waiting for it to come back to life.<br />
** Thanks to Badger for reporting.<br />
<br />
* The time between when a turret dies and when it can be automatically rebuilt has been increased from 5 seconds to 60.<br />
** Thanks to Badger for suggesting.<br />
<br />
* Turrets and Tractors have been doubled in strength, from 5x an equivalent fleet ship to 10x.<br />
** I have a dial. It goes really high.<br />
<br />
* Warp gates are again not autotargeted if you're not capturing the planet, to allow you to more conveniently shape where waves come in.<br />
<br />
* Several metric tons of under-the-hood performance improvements both to CPU and RAM-traffic (not really the overall RAM, since the sim itself is normally less than 100MB, but the amount that gets allocated and then garbage-collected).<br />
** This may or may not get us where we need to be, but it's a step in the right direction.<br />
<br />
* When hovering over a planet in the galaxy view, also show the Enemy Strength on that planet. This will probably be removed once the Galaxy Map UI rework is done, but it's very handy right now<br />
<br />
* There are now lines of techs for increasing Metal, Power, and Fuel production.<br />
** The resource-converter buildings previously used for a similar purpose have been removed from the build menu, since reversible resource conversion leads to either cheesing-the-system (inflating fuel cap, building more ships, scrapping converter; or the same on the power side) or punishment mechanics to prevent the cheese.<br />
** Thanks to Badger and others for suggesting.<br />
<br />
* Metal costs have been increased by roughly 1/3rd across the board.<br />
** Thanks to Badger for suggesting.<br />
<br />
== Version 0.718 A Wild GUI Appears ==<br />
(Released April 2nd, 2018)<br />
<br />
* The GUI in general is now vastly more responsive, and only run from the main thread.<br />
** There are certain sections that can be majorly messed up by the activity of background threads, but we're going to be taking a general try/catch approach with those. My joking note in the code, though accurate, is "sometimes bad things happen to good threads." These instances that cause nullrefs or index out of range exceptions are not frequent enough to be a performance hog, but trying to sync a lot of the gui logic between threads was leading to a sense of subtle lag even though it might be running at 200fps. There were certain kinds of calculations that we previously couldn't do, either.<br />
** Generally speaking, there are now methods that are called Volatile that used to be called FromAnyThread. In those, the assumption should be that any sim-side piece of data might disappear or change at any moment. It's up to each individual control as to how to handle that on a case-by-case basis.<br />
<br />
* Fixed an amusing bug where if you were not spending any metal, it was assuming something was wrong and therefore it wouldn't show your net metal income (which is just your metal income). Now it gives it 0.8 seconds of being unpaused before going "okay, I guess you're just thrifty, here's what you're earning."<br />
<br />
* If a ship is upgraded while in a control group, the upgraded version of that ship now is still in that control group<br />
** Thanks to Pluto011 for reporting. I guess Pluto really is still a planet after all<br />
<br />
* The B and T hotkeys now work for switching to the build and tech tabs again.<br />
** There are also hotkeys for the Ops, Ships, and Objectives tabs of the sidebar, which are all default-unbound right now.<br />
<br />
* Fixed a bug where any item in the science screen that didn't have a weapon would fail to show a tooltip.<br />
<br />
* The white ring around the planet area mysteriously stopped showing in the recent release, and we've decided to just remove it in general. It was unsightly, and thanks to the asteroid field is not even needed. The asteroids can be a bit on the subtle side, but you're not really going out there near the edge anyway, so it doesn't need to be blaring in your face at far zooms.<br />
<br />
* The planet standing orders have been hidden for now, since they weren't working anyway. They're to be reimplemented a different way.<br />
<br />
* The quick defenses and policies sections of the build sidebar now collapse properly.<br />
** Also fixed the issue with the constructors not being able to be minimized and maximized, and made progress on the issue with the constructor pause button and such, though that isn't resolved yet.<br />
<br />
* Fixed an on-startup warning that PowerDist couldn't be found in the arcenui bundle.<br />
<br />
* Fixed a bug where Space Docks, Starship Constructors, and Advanced Starship Constructors were not ever available for construction in the prior version because they were not flagged as builders in the new rollup for that.<br />
** This, incidentally, made it literally impossible to build starships.<br />
<br />
* The sidebar now shows the percent progress of each item being queue-built where it would otherwise show the remaining cap for that item. This really helps you see what's going on, and how much longer it's going to be, etc. Before, even with the new GUI, things felt extremely blind.<br />
<br />
* Fixed a frustrating longstanding issue from the tooltips where they would lag behind on their sizing and text updates, with their background updates even further behind. This was particularly noticeable with the new sidebar tooltips, but not actually new with them. It's fixed for all the kinds of tooltips, now.<br />
<br />
* Fixed a bug with forcefields showing up in strange places.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Autosave defaults to 10 minutes now, instead of 1 minute.<br />
** Thanks to chemical_art for pointing this out<br />
<br />
* Fixed a bug where the unit tooltips still showed squad health instead of the health of an individual visual-thing.<br />
** Thanks to chemical_art for reporting.<br />
<br />
* A third Ark design, the second commissioned by kickstarter backers, is now in place: The Orchid.<br />
** More info will be available on it soon, but it's basically an absolutely massive flower that humans built a spaceship inside of. A lot of cool backstory lore has been batted around for this, but we'll have that actually in place probably later this week.<br />
** And as a reminder, you can't actually see these in-game yet, though you can select them in the profile select screen. Coming soon on that, apologies!<br />
** Here's a video where you can see it, though: https://youtu.be/6Jzh7yD9J0I<br />
<br />
* Fixed a couple of nullref exceptions that would happen when you lost the game, previously.<br />
<br />
* Most of the shot visuals are now in place, although without trails of any sort at the moment.<br />
** They also now do some auto-scaling based on how far away from the camera they are, so that you can still see them when way zoomed out, but they don't appear ginormous when you're zoomed way in.<br />
** All of the projectile-style shots are accounted for. Various ones that are beam-weapon style or other specialty effects are not addressed at all just yet.<br />
** The sound effects for all of these shots are also now in use, which makes battles sound quite different.<br />
** More to come with these bits; right now, fast-moving shots are almost impossible to see, for instance.<br />
<br />
* All AI planets immediately next to a player starting planet now get roughly 1/4 the defenses they would normally get, and all AI planets one hop further out get roughly 3/4 the defenses they would normally get.<br />
** The idea is to switch back to AIWC's philosophy of "you should be able to steamroll your immediate neighbors", because the AI hasn't fortified against you and isn't taking you seriously... yet.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Fuel costs have increased again across the board, since once the player was off the ground at all they'd run out of ship-cap long before they ran out of fuel.<br />
** Thanks to Magnus for inspiring this change.<br />
<br />
* Starships now cost massively more metal and fuel than fleet ships (and way more metal than turrets), but are now balanced at a baseline about 3x as high as they were (and fleet ships still are).<br />
** This is to the extent that you can't field your starting triangle ships AND even a single starship on your starting fuel. Since the neighboring AI planets are such pushovers now it won't really matter, but when you get enough fuel to support a starship it's a significant deal.<br />
** The idea being to further distinguish fleet ships from starships:<br />
*** Fleet ships build quickly, cheaply, and wherever you have a flagship, and are relatively easy on the fuel.<br />
*** Starships are very expensive, and if you lose one it's a big deal because you can't replace it in the field (and it's going to cost a lot of metal). But you also get much more strength per unit of Science (but still not as much as Turrets).<br />
** Thanks to chemical_art for inspiring these changes.<br />
<br />
* Planetary Controllers now have a very basic level of Tachyon output, so a defending planet will never be completely unable to decloak enemy cloaked ships (it would just take a really long time against a big swarm).<br />
<br />
* The Regenerator Golem's health "cost" for regenerating a unit has been increased to 3x of what it was (it was and is proportional to the strength of the regenerated unit).<br />
** Thanks to Magnus for inspiring this change.<br />
<br />
* The number of power distribution nodes on each planet has been halved, to make them less distracting and more individually significant.<br />
** Thanks to etheric for suggesting.<br />
<br />
* Fixed an issue where reclaiming a planet you'd lost would cost more AIP.<br />
** Thanks to BadgerBadger for reporting.<br />
<br />
* Greatly improved the performance of having many tractor emitters on one planet, especially when there's not many potential targets for those targets.<br />
** Thanks to BadgerBadger for the test-case save.<br />
<br />
* Add some infrastructure code for getting Ships Killed/Ships Lost stats, and to eventually improve the timing of "Your ships are under attack" voice effects<br />
<br />
== Version 0.717 Public Beta Branch ==<br />
(Released March 29th, 2018)<br />
<br />
* The main menu no longer has a ship at all, and instead has asteroids flying past pretty fast.<br />
** It also has two versions of earth: a red and black burned out version representing the humans, and a blue and cyan circuit-board-covered one representing the AI. The human earth orbits strangely, while the AI earth orbits much more calmly in place.<br />
<br />
* The new space skyboxes were messed up in general, but are now fixed.<br />
<br />
* The King icon was previously showing as pretty blurry because of all the thin lines. It's now a star with a circle instead of a Chess-style king icon.<br />
** Additionally, all of the ship icons for the sidebar in particular will show up with more clarity at both larger and smaller scales based on your screen size.<br />
<br />
* Flagship is now a new SpecialEntityType.<br />
<br />
* Instead of the KingUnits rollup, which was being incorrectly used (actually nowhere), there are now rollups for KingUnitsOnly, KingsAndFlagships, and Builders.<br />
** KingsAndFlagships is actually what is needed for... well, nothing right now, but something soon, surely.<br />
** Builders includes controllers as well.<br />
<br />
* A new icon for the power distribution nodes is now in place.<br />
<br />
* Added a bit of a soft bevel to the interior of the ship gimbal icons. Not sure if we'll keep exactly that styling, but it does help make ships in a mass more distinct from one another. We'll see how that evolves.<br />
<br />
=== GUI Overhaul, Part 1: The Glorious Sidebar ===<br />
<br />
* The top bar has been completely reimagined, as has the lower-left bar... and the right-hand sidebar... and the build and science menus... who are we kidding, this a whole new UI, and we're not even done yet.<br />
** Massive thanks to Eric T. Edwards really can't begin to cover this.<br />
<br />
* There are now two types of at-mouse tooltips, one wide and one narrow.<br />
** They both now size themselves a bit more accurately in terms of their background panel width compared to their contents.<br />
<br />
* All of the hacking stuff now has proper names and descriptions, so you can actually tell what things do if you aren't versed in play of the first game.<br />
** It also directly shows you the hacking cost of items in the hacking menu, and reds it out if you can't hack for some reason, as well as telling you WHY you can't hack the thing.<br />
<br />
* If the mouse is over the sidebar or a button, you can now use the mouse scrollwheel to control them and it won't affect the camera zoom.<br />
<br />
* Fixed a bug where if a ui element had a mouseover flag set on it, and then it was hidden or its window was hidden, it would still have the mouseover flag set the next time it was brought back around.<br />
<br />
* When upgrading a mark 1+ unit to a higher-level one, it now shows you the improvements in cap, attack power, and health. Suddenly you can make decisions!<br />
** Thanks to Badger for suggesting this, and so many other things. We've kind of stopped thanking him much, since he's now a relatively core part of the dev team, albeit in a volunteer capacity.<br />
<br />
* Infrastructure category construction can now only happen on planets controlled by (any) player.<br />
** This helps to inherently clear up some confusion that otherwise could happen, and it's also yet another reason to hold territory versus (for instance) leaving it unclaimed but building constructors there. You can build the constructors, lose the planet, but not rebuild them until you re-take the planet.<br />
<br />
* The "Build Patterns" are now a new "Quick Defense" section in the build tab of the sidebar, which have a really nice name and description setup.<br />
<br />
* The queue-based constructors are all now shown at once for a planet in the construction sidebar, and you can toggle things for each of them right from one interface.<br />
** The queues are no longer shown, but instead you just have "is on" or not, with a toggle.<br />
** There is also a global pause for the entire queue, but otherwise it's assumed to loop, and just does one unit at a time.<br />
** This simplification of the build screen is a big deal in that you can quickly see what you can build and what type of resource (power/fuel) it takes to run it. Managing groups of constructors is child's play, now, too.<br />
<br />
* When seeing the cap for a ship in the popup next to the sidebar, it now notes if that's a per-planet cap or a galaxy-wide one.<br />
<br />
== Version 0.716 Activating Mk4 Grinding Machine ==<br />
(Released March 28th, 2018)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
* Fix a bug with the Nanocaust where it could desync in multiplayer<br />
* The Nanocaust will now reinforce a planet that is under attack <br />
<br />
* Revised the unit tooltips to show HP and DPS in terms of individual ships (visual things on the screen) instead of squads (groups that you actually control).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Defense Response-Time Rebalancing ===<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** But you do get more time to attack between waves, and generally have a longer warning time to get your fleet back if you need to.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* All ships movement speed increased by roughly 20%, to see if that helps avoid the game feeling sluggish and makes it easier for the player to attack between waves.<br />
** Note that we don't want to make ships much faster for tactical reasons, otherwise the range of ships becomes a lot less interesting (i.e. if a short-range ship can close with a long-range ship so fast that the latter doesn't really have much advantage).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turrets and Tractor Arrays base strength multiplier from 3 => 5.<br />
** For several turret types the increase went primarily to HP instead of DPS, by way of changing Structure-defense turrets to Armor or Jammer, and by increasing their durability class (which spends DPS to buy HP).<br />
** So in general you'll be less reliant on bringing your mobile fleet back to defend against a wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turret and Tractor array power costs have been redone so that all the short-range ones have low power costs (like the needler turrets already had), medium-range ones have moderate power costs, and long-range and sniper-range ones have higher power costs.<br />
** This is to account for the difficulty of defending multiple individual wormholes, and generally the inability of a turret to do anything outside its range.<br />
** On the flip side, if you can concentrate the enemy into one place, you can pack an inordinately high amount of firepower into that small space, especially considering how much higher-dps short-range weapons already were.<br />
** Overall, this is yet another change to make it easier for you to manage waves without pulling your fleet back.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30716AI War 2:Final Pre-Beta Checks2018-04-07T23:52:23Z<p>Keith.lamothe: /* Version 0.720 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.720 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Fixed a bug where the strength numbers in the sidebar could flicker to zero and back.<br />
** Thanks to Magnus for reporting.<br />
<br />
* Fixed a bug where the sidebar could flicker back and forth between "you don't have vision here".<br />
** Thanks to Badger for reporting.<br />
<br />
* The Prototype Flagship now has a sensor range of 1 (same as the Ark) for giving vision on adjacent planets.<br />
** Thanks to Badger for suggesting.<br />
<br />
== Version 0.719 Do Not Feed The Turrets ==<br />
(Released April 7th, 2018)<br />
<br />
* Added a glowing blue atmosphere effect to the AI planet on the main menu. This wasn't exactly on the top of our todo list, but it was a good palate cleanser as we geared up for some other things today.<br />
<br />
* Fixed a bug where the auto-upgrading of a ship could produce multiple copies of the upgraded unit, and circumvent the ship cap and fuel cap.<br />
** Thanks to Magnus for reporting.<br />
<br />
* Implemented double-speed Sqrt functions based on the math noted here: http://blog.wouldbetheologian.com/2011/11/fast-approximate-sqrt-method-in-c.html<br />
** Also used this to make double-speed (or even a bit faster) magnitude functions for Vector3s.<br />
** Unrelated, added a probably-more-efficient Abs function that the CLR can inline.<br />
<br />
* Shots now consist of the initial "body" of themselves, and then a linear trail that zips out behind them depending on how fast they are moving. For missiles and similar, the effect is particularly neat.<br />
** Unlike the things we were doing in the past, however, with TrailRenderers of unity, this is fully GPU-instancing-compatible, and is also a lot less intense on both the CPU and the GPU, and creates no garbage in RAM for the collector to clean up.<br />
** This approach is also something we'll be making use of, somewhat in reverse, to handle "lines between things" of the type that we have for repair, tractoring, beam weapons, etc. This will let us do much fancier "laser beam spikes" and similar that are entirely volumetric rather than billboarded, and which are more performant as well as looking notably better.<br />
** Currently the following shot types have been updated with their final-for-now visuals: FusionBomb, FusionRocket, ExtremeLongRangeRailgun, EnergyWave, ArmorPiercingShell, GuidedMissile, PlasmaTorpedo, PlasmaBolt, EngineDisruptingShell, Lightning and LightningGuardian were already done, Flak (except the explosion at the end bit needs updating), ExtremelyLongRangeIon, MassDriver, ImplosionCannon, ImplosionBolt, MajorZombifyingRockets, MicroAOERockets, ZombifyingShells, and PlasmaTorpedoShotgun.<br />
** The following beam-style weapons are presently invisible or not showing properly at least, not sure: Laser, HeavyBeam.<br />
** The following explosive-style weapons need updated visuals: Flak, MineExplosion, ArmorPiercingMelee<br />
** The following full-screen weapons need visuals: Attrition, NuclearExplosion, EMPExplosion.<br />
<br />
* Direct Waves are now the only type of waves enabled by default. This matches the default behaviour of AIWC.<br />
<br />
* Some nerfs to the overall strength available to the Warden Fleet.<br />
** Thanks to Magnus for feedback<br />
<br />
* Until the Ark is actually pickable via the profile screen, make The Orchid a selectable Ark type through the current interface in the Game Lobby<br />
<br />
* We're now using Simple Mesh Combine as part of our pipeline in a few areas, combining a variety of meshes with different materials into a single mesh with multiple submeshes. This is done in order to improve culling performance and gameobject handling, and to let us use the ArcenVisualSolomeshShip class instead of ArcenVisualShip, with the former being more efficient.<br />
** We've updated the following ships thusly: Special Forces Ninja Hideout (called the Warden something-or-other on the front-end now), Ark One, Ark Rorqual Hegira, Ark The Orchid, and Small Temporary Rock.<br />
<br />
* Made a number of adjustments to how the "prototypes" for various objects are created and used. We were accidentally double-initializing most of them, which made loading the game slower than it needed to be, as well as creating an extra 800ish objects in the scene behind the scenes. That's now fixed up, and makes garbage collections slightly faster at the same time.<br />
<br />
* The metal section of the resource bar now uses the proper color to indicate metal, rather than just being white.<br />
<br />
* On the construction tab, there is now a little metal icon in the upper left on every icon, and on the science tab there is now a little science icon in the upper left on every icon.<br />
** Thanks to TheVampire100 for suggesting, so that tabs are easier to tell apart.<br />
<br />
* Slight tweaks to shot targeting code to reduce memory usage.<br />
<br />
* Smooth out the shot speed a bit, so shots don't seem to accelerate/decelerate as much mid flight<br />
** Thanks to Chris for the bug report<br />
<br />
* The fourth Ark design, the third commissioned by kickstarter backers, is now in place: Gyrn, The Voidhome<br />
** You can check out a video of it here: https://youtu.be/X0NvDc7mDKc<br />
<br />
* The logic for how the icons and whatnot on the ships tab of the sidebar position themselves has been completely re-coded from scratch.<br />
** It no longer has the same lag with things in the wrong positions, it no longer blinks out of existence periodically, it no longer has to refresh itself 5 times a second, and ship icons never mysteriously go missing or switch positions with one another.<br />
** Thanks to Magnus, Mckloshiv, and etheric42 for reporting.<br />
<br />
* The right-hand sidebar is now top-aligned, but 40px down, rather than being bottom-aligned and 20px up. This feels more natural, and still leaves room for the upcoming wave warnings across the top.<br />
** This also fixes the bug where at certain aspect ratios, the top of the sidebar could stick up off the screen. The bottom of the sidebar still can, at certain screen resolutions, but... well, just don't use those aspect ratios. It's very strange windowed-mode-only resolutions that case that, so the average player would never ever see that.<br />
** Thanks to Badger and Eric for suggesting the parts of this.<br />
<br />
* When the GUI is hidden, holding shift no longer draws the lines for any ships you have selected.<br />
<br />
* Fixed a nullref exception that could happen when saving the game, particularly in the test chamber.<br />
<br />
* When in the test chamber, tabbing out to the galaxy map and back randomizes the planet and the starfield background.<br />
** It's also now randomized in the test chamber in general, rather than always being the same thing.<br />
<br />
* Fixed a number of bugs with the background skyboxes not showing the correct thing in various circumstances. It was most noticeable on the galaxy map, but was also happening in the planet view.<br />
<br />
* The Ops tab of the sidebar now also uses the more efficient and correct method of sizing and positioning its elements.<br />
** Additionally, instead of the confusing "No Ark" note when you need to select your Ark, it instead says "Select Ark."<br />
<br />
* The Science tab has also now been updated in this manner, to perform better and show more correctly more of the time (ideally all of the time).<br />
<br />
* All of the turret icons have been updated to include letter codes within them, which make them vastly more recognizable when they are small.<br />
<br />
* Updated the construction sidebar so that it is also now updated to the new style of logic that is both more correct and more efficient.<br />
** As part of this, the rally, control group, and pause buttons are actually now responsive to mouseover, although they don't yet allow clicking.<br />
<br />
* The Prototype Flagship you start with is no longer eligible to be seeded on the map<br />
** Thanks to ZeusAlmighty for pointing this out<br />
<br />
* Force AI Waves to press home their attack; on higher difficulties sometimes a wave would flee a well defended planet before any actual fighting, and a slight nerf to overall AI strength at higher difficulties<br />
** Thanks to Magnus for those suggestions<br />
<br />
* The AI will now unlock new fleetship types more slowly<br />
<br />
* The Encapsulated map type now lets you choose between a Small, Medium and Large outer circle<br />
<br />
* Human Resistance Fighters now have a cap to how strong they can get. The cap will go up every hour.<br />
<br />
* Under the hood, threat numbers fluctuate wildly for some reason (likely multithreading race conditions).<br />
**We've added two new classes for tracking data over time: MaxFloatValueOverTimeList and MaxIntValueOverTimeList to deal with that.<br />
** The latter is used in order to keep track of the max value that was seen in fifth-second intervals, and thus expire high values only after a full second has passed.<br />
** Since the data can go upwards instantly, it's nice and responsive, and the little sub-second dips to lower values due to multithreaded calculations are not ever showing up anymore.<br />
<br />
* Completely redid the visual font for the ship mark levels in the gimbals. It's a lot more attractive.<br />
** Also the numerals are WAY smaller compared to the actual icon of the ship on the gimbal again, more like the first game.<br />
<br />
* Made the gimbals in general a lot smaller, again more like the first game.<br />
** This will be getting some more reworking soon, anyway, as we change how gimbals are drawn a bit.<br />
<br />
* Reworked the old "flair" spots on the ship gimbals so that we can now show status things like FRD mode and whatnot on there, instead.<br />
** This in turn fixes some other issues that we were having with efficiency and proper scale in this area.<br />
** It also fixes the issue of you not being able to see these sorts of statuses on markless ships.<br />
** These actually show ABOVE the main icon now, leading to somewhat better visibility for these special statuses.<br />
<br />
* Added in new Mark VI and Mark VII data entries and mark level icons.<br />
** We're not actually doing anything with these just yet, and later on we'll only be using these as variants for SUPER late-game stuff if people decide they want to capture all 100 planets or something. You won't be seeing these mark levels in most games at all.<br />
<br />
* Removed the "exit wide" behavior AI ships used when exiting a wormhole. This was left over from when wormhole traversal was always going to be on the edge of the gravwell, with a special animation. As it is now, it was just annoying.<br />
** Thanks to Magnus and others for reporting.<br />
<br />
* Fixed a bug where AI ships would camp on a dead turret waiting for it to come back to life.<br />
** Thanks to Badger for reporting.<br />
<br />
* The time between when a turret dies and when it can be automatically rebuilt has been increased from 5 seconds to 60.<br />
** Thanks to Badger for suggesting.<br />
<br />
* Turrets and Tractors have been doubled in strength, from 5x an equivalent fleet ship to 10x.<br />
** I have a dial. It goes really high.<br />
<br />
* Warp gates are again not autotargeted if you're not capturing the planet, to allow you to more conveniently shape where waves come in.<br />
<br />
* Several metric tons of under-the-hood performance improvements both to CPU and RAM-traffic (not really the overall RAM, since the sim itself is normally less than 100MB, but the amount that gets allocated and then garbage-collected).<br />
** This may or may not get us where we need to be, but it's a step in the right direction.<br />
<br />
* When hovering over a planet in the galaxy view, also show the Enemy Strength on that planet. This will probably be removed once the Galaxy Map UI rework is done, but it's very handy right now<br />
<br />
* There are now lines of techs for increasing Metal, Power, and Fuel production.<br />
** The resource-converter buildings previously used for a similar purpose have been removed from the build menu, since reversible resource conversion leads to either cheesing-the-system (inflating fuel cap, building more ships, scrapping converter; or the same on the power side) or punishment mechanics to prevent the cheese.<br />
** Thanks to Badger and others for suggesting.<br />
<br />
* Metal costs have been increased by roughly 1/3rd across the board.<br />
** Thanks to Badger for suggesting.<br />
<br />
== Version 0.718 A Wild GUI Appears ==<br />
(Released April 2nd, 2018)<br />
<br />
* The GUI in general is now vastly more responsive, and only run from the main thread.<br />
** There are certain sections that can be majorly messed up by the activity of background threads, but we're going to be taking a general try/catch approach with those. My joking note in the code, though accurate, is "sometimes bad things happen to good threads." These instances that cause nullrefs or index out of range exceptions are not frequent enough to be a performance hog, but trying to sync a lot of the gui logic between threads was leading to a sense of subtle lag even though it might be running at 200fps. There were certain kinds of calculations that we previously couldn't do, either.<br />
** Generally speaking, there are now methods that are called Volatile that used to be called FromAnyThread. In those, the assumption should be that any sim-side piece of data might disappear or change at any moment. It's up to each individual control as to how to handle that on a case-by-case basis.<br />
<br />
* Fixed an amusing bug where if you were not spending any metal, it was assuming something was wrong and therefore it wouldn't show your net metal income (which is just your metal income). Now it gives it 0.8 seconds of being unpaused before going "okay, I guess you're just thrifty, here's what you're earning."<br />
<br />
* If a ship is upgraded while in a control group, the upgraded version of that ship now is still in that control group<br />
** Thanks to Pluto011 for reporting. I guess Pluto really is still a planet after all<br />
<br />
* The B and T hotkeys now work for switching to the build and tech tabs again.<br />
** There are also hotkeys for the Ops, Ships, and Objectives tabs of the sidebar, which are all default-unbound right now.<br />
<br />
* Fixed a bug where any item in the science screen that didn't have a weapon would fail to show a tooltip.<br />
<br />
* The white ring around the planet area mysteriously stopped showing in the recent release, and we've decided to just remove it in general. It was unsightly, and thanks to the asteroid field is not even needed. The asteroids can be a bit on the subtle side, but you're not really going out there near the edge anyway, so it doesn't need to be blaring in your face at far zooms.<br />
<br />
* The planet standing orders have been hidden for now, since they weren't working anyway. They're to be reimplemented a different way.<br />
<br />
* The quick defenses and policies sections of the build sidebar now collapse properly.<br />
** Also fixed the issue with the constructors not being able to be minimized and maximized, and made progress on the issue with the constructor pause button and such, though that isn't resolved yet.<br />
<br />
* Fixed an on-startup warning that PowerDist couldn't be found in the arcenui bundle.<br />
<br />
* Fixed a bug where Space Docks, Starship Constructors, and Advanced Starship Constructors were not ever available for construction in the prior version because they were not flagged as builders in the new rollup for that.<br />
** This, incidentally, made it literally impossible to build starships.<br />
<br />
* The sidebar now shows the percent progress of each item being queue-built where it would otherwise show the remaining cap for that item. This really helps you see what's going on, and how much longer it's going to be, etc. Before, even with the new GUI, things felt extremely blind.<br />
<br />
* Fixed a frustrating longstanding issue from the tooltips where they would lag behind on their sizing and text updates, with their background updates even further behind. This was particularly noticeable with the new sidebar tooltips, but not actually new with them. It's fixed for all the kinds of tooltips, now.<br />
<br />
* Fixed a bug with forcefields showing up in strange places.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Autosave defaults to 10 minutes now, instead of 1 minute.<br />
** Thanks to chemical_art for pointing this out<br />
<br />
* Fixed a bug where the unit tooltips still showed squad health instead of the health of an individual visual-thing.<br />
** Thanks to chemical_art for reporting.<br />
<br />
* A third Ark design, the second commissioned by kickstarter backers, is now in place: The Orchid.<br />
** More info will be available on it soon, but it's basically an absolutely massive flower that humans built a spaceship inside of. A lot of cool backstory lore has been batted around for this, but we'll have that actually in place probably later this week.<br />
** And as a reminder, you can't actually see these in-game yet, though you can select them in the profile select screen. Coming soon on that, apologies!<br />
** Here's a video where you can see it, though: https://youtu.be/6Jzh7yD9J0I<br />
<br />
* Fixed a couple of nullref exceptions that would happen when you lost the game, previously.<br />
<br />
* Most of the shot visuals are now in place, although without trails of any sort at the moment.<br />
** They also now do some auto-scaling based on how far away from the camera they are, so that you can still see them when way zoomed out, but they don't appear ginormous when you're zoomed way in.<br />
** All of the projectile-style shots are accounted for. Various ones that are beam-weapon style or other specialty effects are not addressed at all just yet.<br />
** The sound effects for all of these shots are also now in use, which makes battles sound quite different.<br />
** More to come with these bits; right now, fast-moving shots are almost impossible to see, for instance.<br />
<br />
* All AI planets immediately next to a player starting planet now get roughly 1/4 the defenses they would normally get, and all AI planets one hop further out get roughly 3/4 the defenses they would normally get.<br />
** The idea is to switch back to AIWC's philosophy of "you should be able to steamroll your immediate neighbors", because the AI hasn't fortified against you and isn't taking you seriously... yet.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Fuel costs have increased again across the board, since once the player was off the ground at all they'd run out of ship-cap long before they ran out of fuel.<br />
** Thanks to Magnus for inspiring this change.<br />
<br />
* Starships now cost massively more metal and fuel than fleet ships (and way more metal than turrets), but are now balanced at a baseline about 3x as high as they were (and fleet ships still are).<br />
** This is to the extent that you can't field your starting triangle ships AND even a single starship on your starting fuel. Since the neighboring AI planets are such pushovers now it won't really matter, but when you get enough fuel to support a starship it's a significant deal.<br />
** The idea being to further distinguish fleet ships from starships:<br />
*** Fleet ships build quickly, cheaply, and wherever you have a flagship, and are relatively easy on the fuel.<br />
*** Starships are very expensive, and if you lose one it's a big deal because you can't replace it in the field (and it's going to cost a lot of metal). But you also get much more strength per unit of Science (but still not as much as Turrets).<br />
** Thanks to chemical_art for inspiring these changes.<br />
<br />
* Planetary Controllers now have a very basic level of Tachyon output, so a defending planet will never be completely unable to decloak enemy cloaked ships (it would just take a really long time against a big swarm).<br />
<br />
* The Regenerator Golem's health "cost" for regenerating a unit has been increased to 3x of what it was (it was and is proportional to the strength of the regenerated unit).<br />
** Thanks to Magnus for inspiring this change.<br />
<br />
* The number of power distribution nodes on each planet has been halved, to make them less distracting and more individually significant.<br />
** Thanks to etheric for suggesting.<br />
<br />
* Fixed an issue where reclaiming a planet you'd lost would cost more AIP.<br />
** Thanks to BadgerBadger for reporting.<br />
<br />
* Greatly improved the performance of having many tractor emitters on one planet, especially when there's not many potential targets for those targets.<br />
** Thanks to BadgerBadger for the test-case save.<br />
<br />
* Add some infrastructure code for getting Ships Killed/Ships Lost stats, and to eventually improve the timing of "Your ships are under attack" voice effects<br />
<br />
== Version 0.717 Public Beta Branch ==<br />
(Released March 29th, 2018)<br />
<br />
* The main menu no longer has a ship at all, and instead has asteroids flying past pretty fast.<br />
** It also has two versions of earth: a red and black burned out version representing the humans, and a blue and cyan circuit-board-covered one representing the AI. The human earth orbits strangely, while the AI earth orbits much more calmly in place.<br />
<br />
* The new space skyboxes were messed up in general, but are now fixed.<br />
<br />
* The King icon was previously showing as pretty blurry because of all the thin lines. It's now a star with a circle instead of a Chess-style king icon.<br />
** Additionally, all of the ship icons for the sidebar in particular will show up with more clarity at both larger and smaller scales based on your screen size.<br />
<br />
* Flagship is now a new SpecialEntityType.<br />
<br />
* Instead of the KingUnits rollup, which was being incorrectly used (actually nowhere), there are now rollups for KingUnitsOnly, KingsAndFlagships, and Builders.<br />
** KingsAndFlagships is actually what is needed for... well, nothing right now, but something soon, surely.<br />
** Builders includes controllers as well.<br />
<br />
* A new icon for the power distribution nodes is now in place.<br />
<br />
* Added a bit of a soft bevel to the interior of the ship gimbal icons. Not sure if we'll keep exactly that styling, but it does help make ships in a mass more distinct from one another. We'll see how that evolves.<br />
<br />
=== GUI Overhaul, Part 1: The Glorious Sidebar ===<br />
<br />
* The top bar has been completely reimagined, as has the lower-left bar... and the right-hand sidebar... and the build and science menus... who are we kidding, this a whole new UI, and we're not even done yet.<br />
** Massive thanks to Eric T. Edwards really can't begin to cover this.<br />
<br />
* There are now two types of at-mouse tooltips, one wide and one narrow.<br />
** They both now size themselves a bit more accurately in terms of their background panel width compared to their contents.<br />
<br />
* All of the hacking stuff now has proper names and descriptions, so you can actually tell what things do if you aren't versed in play of the first game.<br />
** It also directly shows you the hacking cost of items in the hacking menu, and reds it out if you can't hack for some reason, as well as telling you WHY you can't hack the thing.<br />
<br />
* If the mouse is over the sidebar or a button, you can now use the mouse scrollwheel to control them and it won't affect the camera zoom.<br />
<br />
* Fixed a bug where if a ui element had a mouseover flag set on it, and then it was hidden or its window was hidden, it would still have the mouseover flag set the next time it was brought back around.<br />
<br />
* When upgrading a mark 1+ unit to a higher-level one, it now shows you the improvements in cap, attack power, and health. Suddenly you can make decisions!<br />
** Thanks to Badger for suggesting this, and so many other things. We've kind of stopped thanking him much, since he's now a relatively core part of the dev team, albeit in a volunteer capacity.<br />
<br />
* Infrastructure category construction can now only happen on planets controlled by (any) player.<br />
** This helps to inherently clear up some confusion that otherwise could happen, and it's also yet another reason to hold territory versus (for instance) leaving it unclaimed but building constructors there. You can build the constructors, lose the planet, but not rebuild them until you re-take the planet.<br />
<br />
* The "Build Patterns" are now a new "Quick Defense" section in the build tab of the sidebar, which have a really nice name and description setup.<br />
<br />
* The queue-based constructors are all now shown at once for a planet in the construction sidebar, and you can toggle things for each of them right from one interface.<br />
** The queues are no longer shown, but instead you just have "is on" or not, with a toggle.<br />
** There is also a global pause for the entire queue, but otherwise it's assumed to loop, and just does one unit at a time.<br />
** This simplification of the build screen is a big deal in that you can quickly see what you can build and what type of resource (power/fuel) it takes to run it. Managing groups of constructors is child's play, now, too.<br />
<br />
* When seeing the cap for a ship in the popup next to the sidebar, it now notes if that's a per-planet cap or a galaxy-wide one.<br />
<br />
== Version 0.716 Activating Mk4 Grinding Machine ==<br />
(Released March 28th, 2018)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
* Fix a bug with the Nanocaust where it could desync in multiplayer<br />
* The Nanocaust will now reinforce a planet that is under attack <br />
<br />
* Revised the unit tooltips to show HP and DPS in terms of individual ships (visual things on the screen) instead of squads (groups that you actually control).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Defense Response-Time Rebalancing ===<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** But you do get more time to attack between waves, and generally have a longer warning time to get your fleet back if you need to.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* All ships movement speed increased by roughly 20%, to see if that helps avoid the game feeling sluggish and makes it easier for the player to attack between waves.<br />
** Note that we don't want to make ships much faster for tactical reasons, otherwise the range of ships becomes a lot less interesting (i.e. if a short-range ship can close with a long-range ship so fast that the latter doesn't really have much advantage).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turrets and Tractor Arrays base strength multiplier from 3 => 5.<br />
** For several turret types the increase went primarily to HP instead of DPS, by way of changing Structure-defense turrets to Armor or Jammer, and by increasing their durability class (which spends DPS to buy HP).<br />
** So in general you'll be less reliant on bringing your mobile fleet back to defend against a wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turret and Tractor array power costs have been redone so that all the short-range ones have low power costs (like the needler turrets already had), medium-range ones have moderate power costs, and long-range and sniper-range ones have higher power costs.<br />
** This is to account for the difficulty of defending multiple individual wormholes, and generally the inability of a turret to do anything outside its range.<br />
** On the flip side, if you can concentrate the enemy into one place, you can pack an inordinately high amount of firepower into that small space, especially considering how much higher-dps short-range weapons already were.<br />
** Overall, this is yet another change to make it easier for you to manage waves without pulling your fleet back.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30715AI War 2:Final Pre-Beta Checks2018-04-07T16:32:45Z<p>Keith.lamothe: /* Version 0.719 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.720 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
== Version 0.719 Do Not Feed The Turrets ==<br />
(Released April 7th, 2018)<br />
<br />
* Added a glowing blue atmosphere effect to the AI planet on the main menu. This wasn't exactly on the top of our todo list, but it was a good palate cleanser as we geared up for some other things today.<br />
<br />
* Fixed a bug where the auto-upgrading of a ship could produce multiple copies of the upgraded unit, and circumvent the ship cap and fuel cap.<br />
** Thanks to Magnus for reporting.<br />
<br />
* Implemented double-speed Sqrt functions based on the math noted here: http://blog.wouldbetheologian.com/2011/11/fast-approximate-sqrt-method-in-c.html<br />
** Also used this to make double-speed (or even a bit faster) magnitude functions for Vector3s.<br />
** Unrelated, added a probably-more-efficient Abs function that the CLR can inline.<br />
<br />
* Shots now consist of the initial "body" of themselves, and then a linear trail that zips out behind them depending on how fast they are moving. For missiles and similar, the effect is particularly neat.<br />
** Unlike the things we were doing in the past, however, with TrailRenderers of unity, this is fully GPU-instancing-compatible, and is also a lot less intense on both the CPU and the GPU, and creates no garbage in RAM for the collector to clean up.<br />
** This approach is also something we'll be making use of, somewhat in reverse, to handle "lines between things" of the type that we have for repair, tractoring, beam weapons, etc. This will let us do much fancier "laser beam spikes" and similar that are entirely volumetric rather than billboarded, and which are more performant as well as looking notably better.<br />
** Currently the following shot types have been updated with their final-for-now visuals: FusionBomb, FusionRocket, ExtremeLongRangeRailgun, EnergyWave, ArmorPiercingShell, GuidedMissile, PlasmaTorpedo, PlasmaBolt, EngineDisruptingShell, Lightning and LightningGuardian were already done, Flak (except the explosion at the end bit needs updating), ExtremelyLongRangeIon, MassDriver, ImplosionCannon, ImplosionBolt, MajorZombifyingRockets, MicroAOERockets, ZombifyingShells, and PlasmaTorpedoShotgun.<br />
** The following beam-style weapons are presently invisible or not showing properly at least, not sure: Laser, HeavyBeam.<br />
** The following explosive-style weapons need updated visuals: Flak, MineExplosion, ArmorPiercingMelee<br />
** The following full-screen weapons need visuals: Attrition, NuclearExplosion, EMPExplosion.<br />
<br />
* Direct Waves are now the only type of waves enabled by default. This matches the default behaviour of AIWC.<br />
<br />
* Some nerfs to the overall strength available to the Warden Fleet.<br />
** Thanks to Magnus for feedback<br />
<br />
* Until the Ark is actually pickable via the profile screen, make The Orchid a selectable Ark type through the current interface in the Game Lobby<br />
<br />
* We're now using Simple Mesh Combine as part of our pipeline in a few areas, combining a variety of meshes with different materials into a single mesh with multiple submeshes. This is done in order to improve culling performance and gameobject handling, and to let us use the ArcenVisualSolomeshShip class instead of ArcenVisualShip, with the former being more efficient.<br />
** We've updated the following ships thusly: Special Forces Ninja Hideout (called the Warden something-or-other on the front-end now), Ark One, Ark Rorqual Hegira, Ark The Orchid, and Small Temporary Rock.<br />
<br />
* Made a number of adjustments to how the "prototypes" for various objects are created and used. We were accidentally double-initializing most of them, which made loading the game slower than it needed to be, as well as creating an extra 800ish objects in the scene behind the scenes. That's now fixed up, and makes garbage collections slightly faster at the same time.<br />
<br />
* The metal section of the resource bar now uses the proper color to indicate metal, rather than just being white.<br />
<br />
* On the construction tab, there is now a little metal icon in the upper left on every icon, and on the science tab there is now a little science icon in the upper left on every icon.<br />
** Thanks to TheVampire100 for suggesting, so that tabs are easier to tell apart.<br />
<br />
* Slight tweaks to shot targeting code to reduce memory usage.<br />
<br />
* Smooth out the shot speed a bit, so shots don't seem to accelerate/decelerate as much mid flight<br />
** Thanks to Chris for the bug report<br />
<br />
* The fourth Ark design, the third commissioned by kickstarter backers, is now in place: Gyrn, The Voidhome<br />
** You can check out a video of it here: https://youtu.be/X0NvDc7mDKc<br />
<br />
* The logic for how the icons and whatnot on the ships tab of the sidebar position themselves has been completely re-coded from scratch.<br />
** It no longer has the same lag with things in the wrong positions, it no longer blinks out of existence periodically, it no longer has to refresh itself 5 times a second, and ship icons never mysteriously go missing or switch positions with one another.<br />
** Thanks to Magnus, Mckloshiv, and etheric42 for reporting.<br />
<br />
* The right-hand sidebar is now top-aligned, but 40px down, rather than being bottom-aligned and 20px up. This feels more natural, and still leaves room for the upcoming wave warnings across the top.<br />
** This also fixes the bug where at certain aspect ratios, the top of the sidebar could stick up off the screen. The bottom of the sidebar still can, at certain screen resolutions, but... well, just don't use those aspect ratios. It's very strange windowed-mode-only resolutions that case that, so the average player would never ever see that.<br />
** Thanks to Badger and Eric for suggesting the parts of this.<br />
<br />
* When the GUI is hidden, holding shift no longer draws the lines for any ships you have selected.<br />
<br />
* Fixed a nullref exception that could happen when saving the game, particularly in the test chamber.<br />
<br />
* When in the test chamber, tabbing out to the galaxy map and back randomizes the planet and the starfield background.<br />
** It's also now randomized in the test chamber in general, rather than always being the same thing.<br />
<br />
* Fixed a number of bugs with the background skyboxes not showing the correct thing in various circumstances. It was most noticeable on the galaxy map, but was also happening in the planet view.<br />
<br />
* The Ops tab of the sidebar now also uses the more efficient and correct method of sizing and positioning its elements.<br />
** Additionally, instead of the confusing "No Ark" note when you need to select your Ark, it instead says "Select Ark."<br />
<br />
* The Science tab has also now been updated in this manner, to perform better and show more correctly more of the time (ideally all of the time).<br />
<br />
* All of the turret icons have been updated to include letter codes within them, which make them vastly more recognizable when they are small.<br />
<br />
* Updated the construction sidebar so that it is also now updated to the new style of logic that is both more correct and more efficient.<br />
** As part of this, the rally, control group, and pause buttons are actually now responsive to mouseover, although they don't yet allow clicking.<br />
<br />
* The Prototype Flagship you start with is no longer eligible to be seeded on the map<br />
** Thanks to ZeusAlmighty for pointing this out<br />
<br />
* Force AI Waves to press home their attack; on higher difficulties sometimes a wave would flee a well defended planet before any actual fighting, and a slight nerf to overall AI strength at higher difficulties<br />
** Thanks to Magnus for those suggestions<br />
<br />
* The AI will now unlock new fleetship types more slowly<br />
<br />
* The Encapsulated map type now lets you choose between a Small, Medium and Large outer circle<br />
<br />
* Human Resistance Fighters now have a cap to how strong they can get. The cap will go up every hour.<br />
<br />
* Under the hood, threat numbers fluctuate wildly for some reason (likely multithreading race conditions).<br />
**We've added two new classes for tracking data over time: MaxFloatValueOverTimeList and MaxIntValueOverTimeList to deal with that.<br />
** The latter is used in order to keep track of the max value that was seen in fifth-second intervals, and thus expire high values only after a full second has passed.<br />
** Since the data can go upwards instantly, it's nice and responsive, and the little sub-second dips to lower values due to multithreaded calculations are not ever showing up anymore.<br />
<br />
* Completely redid the visual font for the ship mark levels in the gimbals. It's a lot more attractive.<br />
** Also the numerals are WAY smaller compared to the actual icon of the ship on the gimbal again, more like the first game.<br />
<br />
* Made the gimbals in general a lot smaller, again more like the first game.<br />
** This will be getting some more reworking soon, anyway, as we change how gimbals are drawn a bit.<br />
<br />
* Reworked the old "flair" spots on the ship gimbals so that we can now show status things like FRD mode and whatnot on there, instead.<br />
** This in turn fixes some other issues that we were having with efficiency and proper scale in this area.<br />
** It also fixes the issue of you not being able to see these sorts of statuses on markless ships.<br />
** These actually show ABOVE the main icon now, leading to somewhat better visibility for these special statuses.<br />
<br />
* Added in new Mark VI and Mark VII data entries and mark level icons.<br />
** We're not actually doing anything with these just yet, and later on we'll only be using these as variants for SUPER late-game stuff if people decide they want to capture all 100 planets or something. You won't be seeing these mark levels in most games at all.<br />
<br />
* Removed the "exit wide" behavior AI ships used when exiting a wormhole. This was left over from when wormhole traversal was always going to be on the edge of the gravwell, with a special animation. As it is now, it was just annoying.<br />
** Thanks to Magnus and others for reporting.<br />
<br />
* Fixed a bug where AI ships would camp on a dead turret waiting for it to come back to life.<br />
** Thanks to Badger for reporting.<br />
<br />
* The time between when a turret dies and when it can be automatically rebuilt has been increased from 5 seconds to 60.<br />
** Thanks to Badger for suggesting.<br />
<br />
* Turrets and Tractors have been doubled in strength, from 5x an equivalent fleet ship to 10x.<br />
** I have a dial. It goes really high.<br />
<br />
* Warp gates are again not autotargeted if you're not capturing the planet, to allow you to more conveniently shape where waves come in.<br />
<br />
* Several metric tons of under-the-hood performance improvements both to CPU and RAM-traffic (not really the overall RAM, since the sim itself is normally less than 100MB, but the amount that gets allocated and then garbage-collected).<br />
** This may or may not get us where we need to be, but it's a step in the right direction.<br />
<br />
* When hovering over a planet in the galaxy view, also show the Enemy Strength on that planet. This will probably be removed once the Galaxy Map UI rework is done, but it's very handy right now<br />
<br />
* There are now lines of techs for increasing Metal, Power, and Fuel production.<br />
** The resource-converter buildings previously used for a similar purpose have been removed from the build menu, since reversible resource conversion leads to either cheesing-the-system (inflating fuel cap, building more ships, scrapping converter; or the same on the power side) or punishment mechanics to prevent the cheese.<br />
** Thanks to Badger and others for suggesting.<br />
<br />
* Metal costs have been increased by roughly 1/3rd across the board.<br />
** Thanks to Badger for suggesting.<br />
<br />
== Version 0.718 A Wild GUI Appears ==<br />
(Released April 2nd, 2018)<br />
<br />
* The GUI in general is now vastly more responsive, and only run from the main thread.<br />
** There are certain sections that can be majorly messed up by the activity of background threads, but we're going to be taking a general try/catch approach with those. My joking note in the code, though accurate, is "sometimes bad things happen to good threads." These instances that cause nullrefs or index out of range exceptions are not frequent enough to be a performance hog, but trying to sync a lot of the gui logic between threads was leading to a sense of subtle lag even though it might be running at 200fps. There were certain kinds of calculations that we previously couldn't do, either.<br />
** Generally speaking, there are now methods that are called Volatile that used to be called FromAnyThread. In those, the assumption should be that any sim-side piece of data might disappear or change at any moment. It's up to each individual control as to how to handle that on a case-by-case basis.<br />
<br />
* Fixed an amusing bug where if you were not spending any metal, it was assuming something was wrong and therefore it wouldn't show your net metal income (which is just your metal income). Now it gives it 0.8 seconds of being unpaused before going "okay, I guess you're just thrifty, here's what you're earning."<br />
<br />
* If a ship is upgraded while in a control group, the upgraded version of that ship now is still in that control group<br />
** Thanks to Pluto011 for reporting. I guess Pluto really is still a planet after all<br />
<br />
* The B and T hotkeys now work for switching to the build and tech tabs again.<br />
** There are also hotkeys for the Ops, Ships, and Objectives tabs of the sidebar, which are all default-unbound right now.<br />
<br />
* Fixed a bug where any item in the science screen that didn't have a weapon would fail to show a tooltip.<br />
<br />
* The white ring around the planet area mysteriously stopped showing in the recent release, and we've decided to just remove it in general. It was unsightly, and thanks to the asteroid field is not even needed. The asteroids can be a bit on the subtle side, but you're not really going out there near the edge anyway, so it doesn't need to be blaring in your face at far zooms.<br />
<br />
* The planet standing orders have been hidden for now, since they weren't working anyway. They're to be reimplemented a different way.<br />
<br />
* The quick defenses and policies sections of the build sidebar now collapse properly.<br />
** Also fixed the issue with the constructors not being able to be minimized and maximized, and made progress on the issue with the constructor pause button and such, though that isn't resolved yet.<br />
<br />
* Fixed an on-startup warning that PowerDist couldn't be found in the arcenui bundle.<br />
<br />
* Fixed a bug where Space Docks, Starship Constructors, and Advanced Starship Constructors were not ever available for construction in the prior version because they were not flagged as builders in the new rollup for that.<br />
** This, incidentally, made it literally impossible to build starships.<br />
<br />
* The sidebar now shows the percent progress of each item being queue-built where it would otherwise show the remaining cap for that item. This really helps you see what's going on, and how much longer it's going to be, etc. Before, even with the new GUI, things felt extremely blind.<br />
<br />
* Fixed a frustrating longstanding issue from the tooltips where they would lag behind on their sizing and text updates, with their background updates even further behind. This was particularly noticeable with the new sidebar tooltips, but not actually new with them. It's fixed for all the kinds of tooltips, now.<br />
<br />
* Fixed a bug with forcefields showing up in strange places.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Autosave defaults to 10 minutes now, instead of 1 minute.<br />
** Thanks to chemical_art for pointing this out<br />
<br />
* Fixed a bug where the unit tooltips still showed squad health instead of the health of an individual visual-thing.<br />
** Thanks to chemical_art for reporting.<br />
<br />
* A third Ark design, the second commissioned by kickstarter backers, is now in place: The Orchid.<br />
** More info will be available on it soon, but it's basically an absolutely massive flower that humans built a spaceship inside of. A lot of cool backstory lore has been batted around for this, but we'll have that actually in place probably later this week.<br />
** And as a reminder, you can't actually see these in-game yet, though you can select them in the profile select screen. Coming soon on that, apologies!<br />
** Here's a video where you can see it, though: https://youtu.be/6Jzh7yD9J0I<br />
<br />
* Fixed a couple of nullref exceptions that would happen when you lost the game, previously.<br />
<br />
* Most of the shot visuals are now in place, although without trails of any sort at the moment.<br />
** They also now do some auto-scaling based on how far away from the camera they are, so that you can still see them when way zoomed out, but they don't appear ginormous when you're zoomed way in.<br />
** All of the projectile-style shots are accounted for. Various ones that are beam-weapon style or other specialty effects are not addressed at all just yet.<br />
** The sound effects for all of these shots are also now in use, which makes battles sound quite different.<br />
** More to come with these bits; right now, fast-moving shots are almost impossible to see, for instance.<br />
<br />
* All AI planets immediately next to a player starting planet now get roughly 1/4 the defenses they would normally get, and all AI planets one hop further out get roughly 3/4 the defenses they would normally get.<br />
** The idea is to switch back to AIWC's philosophy of "you should be able to steamroll your immediate neighbors", because the AI hasn't fortified against you and isn't taking you seriously... yet.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Fuel costs have increased again across the board, since once the player was off the ground at all they'd run out of ship-cap long before they ran out of fuel.<br />
** Thanks to Magnus for inspiring this change.<br />
<br />
* Starships now cost massively more metal and fuel than fleet ships (and way more metal than turrets), but are now balanced at a baseline about 3x as high as they were (and fleet ships still are).<br />
** This is to the extent that you can't field your starting triangle ships AND even a single starship on your starting fuel. Since the neighboring AI planets are such pushovers now it won't really matter, but when you get enough fuel to support a starship it's a significant deal.<br />
** The idea being to further distinguish fleet ships from starships:<br />
*** Fleet ships build quickly, cheaply, and wherever you have a flagship, and are relatively easy on the fuel.<br />
*** Starships are very expensive, and if you lose one it's a big deal because you can't replace it in the field (and it's going to cost a lot of metal). But you also get much more strength per unit of Science (but still not as much as Turrets).<br />
** Thanks to chemical_art for inspiring these changes.<br />
<br />
* Planetary Controllers now have a very basic level of Tachyon output, so a defending planet will never be completely unable to decloak enemy cloaked ships (it would just take a really long time against a big swarm).<br />
<br />
* The Regenerator Golem's health "cost" for regenerating a unit has been increased to 3x of what it was (it was and is proportional to the strength of the regenerated unit).<br />
** Thanks to Magnus for inspiring this change.<br />
<br />
* The number of power distribution nodes on each planet has been halved, to make them less distracting and more individually significant.<br />
** Thanks to etheric for suggesting.<br />
<br />
* Fixed an issue where reclaiming a planet you'd lost would cost more AIP.<br />
** Thanks to BadgerBadger for reporting.<br />
<br />
* Greatly improved the performance of having many tractor emitters on one planet, especially when there's not many potential targets for those targets.<br />
** Thanks to BadgerBadger for the test-case save.<br />
<br />
* Add some infrastructure code for getting Ships Killed/Ships Lost stats, and to eventually improve the timing of "Your ships are under attack" voice effects<br />
<br />
== Version 0.717 Public Beta Branch ==<br />
(Released March 29th, 2018)<br />
<br />
* The main menu no longer has a ship at all, and instead has asteroids flying past pretty fast.<br />
** It also has two versions of earth: a red and black burned out version representing the humans, and a blue and cyan circuit-board-covered one representing the AI. The human earth orbits strangely, while the AI earth orbits much more calmly in place.<br />
<br />
* The new space skyboxes were messed up in general, but are now fixed.<br />
<br />
* The King icon was previously showing as pretty blurry because of all the thin lines. It's now a star with a circle instead of a Chess-style king icon.<br />
** Additionally, all of the ship icons for the sidebar in particular will show up with more clarity at both larger and smaller scales based on your screen size.<br />
<br />
* Flagship is now a new SpecialEntityType.<br />
<br />
* Instead of the KingUnits rollup, which was being incorrectly used (actually nowhere), there are now rollups for KingUnitsOnly, KingsAndFlagships, and Builders.<br />
** KingsAndFlagships is actually what is needed for... well, nothing right now, but something soon, surely.<br />
** Builders includes controllers as well.<br />
<br />
* A new icon for the power distribution nodes is now in place.<br />
<br />
* Added a bit of a soft bevel to the interior of the ship gimbal icons. Not sure if we'll keep exactly that styling, but it does help make ships in a mass more distinct from one another. We'll see how that evolves.<br />
<br />
=== GUI Overhaul, Part 1: The Glorious Sidebar ===<br />
<br />
* The top bar has been completely reimagined, as has the lower-left bar... and the right-hand sidebar... and the build and science menus... who are we kidding, this a whole new UI, and we're not even done yet.<br />
** Massive thanks to Eric T. Edwards really can't begin to cover this.<br />
<br />
* There are now two types of at-mouse tooltips, one wide and one narrow.<br />
** They both now size themselves a bit more accurately in terms of their background panel width compared to their contents.<br />
<br />
* All of the hacking stuff now has proper names and descriptions, so you can actually tell what things do if you aren't versed in play of the first game.<br />
** It also directly shows you the hacking cost of items in the hacking menu, and reds it out if you can't hack for some reason, as well as telling you WHY you can't hack the thing.<br />
<br />
* If the mouse is over the sidebar or a button, you can now use the mouse scrollwheel to control them and it won't affect the camera zoom.<br />
<br />
* Fixed a bug where if a ui element had a mouseover flag set on it, and then it was hidden or its window was hidden, it would still have the mouseover flag set the next time it was brought back around.<br />
<br />
* When upgrading a mark 1+ unit to a higher-level one, it now shows you the improvements in cap, attack power, and health. Suddenly you can make decisions!<br />
** Thanks to Badger for suggesting this, and so many other things. We've kind of stopped thanking him much, since he's now a relatively core part of the dev team, albeit in a volunteer capacity.<br />
<br />
* Infrastructure category construction can now only happen on planets controlled by (any) player.<br />
** This helps to inherently clear up some confusion that otherwise could happen, and it's also yet another reason to hold territory versus (for instance) leaving it unclaimed but building constructors there. You can build the constructors, lose the planet, but not rebuild them until you re-take the planet.<br />
<br />
* The "Build Patterns" are now a new "Quick Defense" section in the build tab of the sidebar, which have a really nice name and description setup.<br />
<br />
* The queue-based constructors are all now shown at once for a planet in the construction sidebar, and you can toggle things for each of them right from one interface.<br />
** The queues are no longer shown, but instead you just have "is on" or not, with a toggle.<br />
** There is also a global pause for the entire queue, but otherwise it's assumed to loop, and just does one unit at a time.<br />
** This simplification of the build screen is a big deal in that you can quickly see what you can build and what type of resource (power/fuel) it takes to run it. Managing groups of constructors is child's play, now, too.<br />
<br />
* When seeing the cap for a ship in the popup next to the sidebar, it now notes if that's a per-planet cap or a galaxy-wide one.<br />
<br />
== Version 0.716 Activating Mk4 Grinding Machine ==<br />
(Released March 28th, 2018)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
* Fix a bug with the Nanocaust where it could desync in multiplayer<br />
* The Nanocaust will now reinforce a planet that is under attack <br />
<br />
* Revised the unit tooltips to show HP and DPS in terms of individual ships (visual things on the screen) instead of squads (groups that you actually control).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Defense Response-Time Rebalancing ===<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** But you do get more time to attack between waves, and generally have a longer warning time to get your fleet back if you need to.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* All ships movement speed increased by roughly 20%, to see if that helps avoid the game feeling sluggish and makes it easier for the player to attack between waves.<br />
** Note that we don't want to make ships much faster for tactical reasons, otherwise the range of ships becomes a lot less interesting (i.e. if a short-range ship can close with a long-range ship so fast that the latter doesn't really have much advantage).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turrets and Tractor Arrays base strength multiplier from 3 => 5.<br />
** For several turret types the increase went primarily to HP instead of DPS, by way of changing Structure-defense turrets to Armor or Jammer, and by increasing their durability class (which spends DPS to buy HP).<br />
** So in general you'll be less reliant on bringing your mobile fleet back to defend against a wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turret and Tractor array power costs have been redone so that all the short-range ones have low power costs (like the needler turrets already had), medium-range ones have moderate power costs, and long-range and sniper-range ones have higher power costs.<br />
** This is to account for the difficulty of defending multiple individual wormholes, and generally the inability of a turret to do anything outside its range.<br />
** On the flip side, if you can concentrate the enemy into one place, you can pack an inordinately high amount of firepower into that small space, especially considering how much higher-dps short-range weapons already were.<br />
** Overall, this is yet another change to make it easier for you to manage waves without pulling your fleet back.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30714AI War 2:Final Pre-Beta Checks2018-04-07T16:07:27Z<p>Keith.lamothe: /* Version 0.719 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.719 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Added a glowing blue atmosphere effect to the AI planet on the main menu. This wasn't exactly on the top of our todo list, but it was a good palate cleanser as we geared up for some other things today.<br />
<br />
* Fixed a bug where the auto-upgrading of a ship could produce multiple copies of the upgraded unit, and circumvent the ship cap and fuel cap.<br />
** Thanks to Magnus for reporting.<br />
<br />
* Implemented double-speed Sqrt functions based on the math noted here: http://blog.wouldbetheologian.com/2011/11/fast-approximate-sqrt-method-in-c.html<br />
** Also used this to make double-speed (or even a bit faster) magnitude functions for Vector3s.<br />
** Unrelated, added a probably-more-efficient Abs function that the CLR can inline.<br />
<br />
* Shots now consist of the initial "body" of themselves, and then a linear trail that zips out behind them depending on how fast they are moving. For missiles and similar, the effect is particularly neat.<br />
** Unlike the things we were doing in the past, however, with TrailRenderers of unity, this is fully GPU-instancing-compatible, and is also a lot less intense on both the CPU and the GPU, and creates no garbage in RAM for the collector to clean up.<br />
** This approach is also something we'll be making use of, somewhat in reverse, to handle "lines between things" of the type that we have for repair, tractoring, beam weapons, etc. This will let us do much fancier "laser beam spikes" and similar that are entirely volumetric rather than billboarded, and which are more performant as well as looking notably better.<br />
** Currently the following shot types have been updated with their final-for-now visuals: FusionBomb, FusionRocket, ExtremeLongRangeRailgun, EnergyWave, ArmorPiercingShell, GuidedMissile, PlasmaTorpedo, PlasmaBolt, EngineDisruptingShell, Lightning and LightningGuardian were already done, Flak (except the explosion at the end bit needs updating), ExtremelyLongRangeIon, MassDriver, ImplosionCannon, ImplosionBolt, MajorZombifyingRockets, MicroAOERockets, ZombifyingShells, and PlasmaTorpedoShotgun.<br />
** The following beam-style weapons are presently invisible or not showing properly at least, not sure: Laser, HeavyBeam.<br />
** The following explosive-style weapons need updated visuals: Flak, MineExplosion, ArmorPiercingMelee<br />
** The following full-screen weapons need visuals: Attrition, NuclearExplosion, EMPExplosion.<br />
<br />
* Direct Waves are now the only type of waves enabled by default. This matches the default behaviour of AIWC.<br />
<br />
* Some nerfs to the overall strength available to the Warden Fleet.<br />
** Thanks to Magnus for feedback<br />
<br />
* Until the Ark is actually pickable via the profile screen, make The Orchid a selectable Ark type through the current interface in the Game Lobby<br />
<br />
* We're now using Simple Mesh Combine as part of our pipeline in a few areas, combining a variety of meshes with different materials into a single mesh with multiple submeshes. This is done in order to improve culling performance and gameobject handling, and to let us use the ArcenVisualSolomeshShip class instead of ArcenVisualShip, with the former being more efficient.<br />
** We've updated the following ships thusly: Special Forces Ninja Hideout (called the Warden something-or-other on the front-end now), Ark One, Ark Rorqual Hegira, Ark The Orchid, and Small Temporary Rock.<br />
<br />
* Made a number of adjustments to how the "prototypes" for various objects are created and used. We were accidentally double-initializing most of them, which made loading the game slower than it needed to be, as well as creating an extra 800ish objects in the scene behind the scenes. That's now fixed up, and makes garbage collections slightly faster at the same time.<br />
<br />
* The metal section of the resource bar now uses the proper color to indicate metal, rather than just being white.<br />
<br />
* On the construction tab, there is now a little metal icon in the upper left on every icon, and on the science tab there is now a little science icon in the upper left on every icon.<br />
** Thanks to TheVampire100 for suggesting, so that tabs are easier to tell apart.<br />
<br />
* Slight tweaks to shot targeting code to reduce memory usage.<br />
<br />
* Smooth out the shot speed a bit, so shots don't seem to accelerate/decelerate as much mid flight<br />
** Thanks to Chris for the bug report<br />
<br />
* The fourth Ark design, the third commissioned by kickstarter backers, is now in place: Gyrn, The Voidhome<br />
** You can check out a video of it here: https://youtu.be/X0NvDc7mDKc<br />
<br />
* The logic for how the icons and whatnot on the ships tab of the sidebar position themselves has been completely re-coded from scratch.<br />
** It no longer has the same lag with things in the wrong positions, it no longer blinks out of existence periodically, it no longer has to refresh itself 5 times a second, and ship icons never mysteriously go missing or switch positions with one another.<br />
** Thanks to Magnus, Mckloshiv, and etheric42 for reporting.<br />
<br />
* The right-hand sidebar is now top-aligned, but 40px down, rather than being bottom-aligned and 20px up. This feels more natural, and still leaves room for the upcoming wave warnings across the top.<br />
** This also fixes the bug where at certain aspect ratios, the top of the sidebar could stick up off the screen. The bottom of the sidebar still can, at certain screen resolutions, but... well, just don't use those aspect ratios. It's very strange windowed-mode-only resolutions that case that, so the average player would never ever see that.<br />
** Thanks to Badger and Eric for suggesting the parts of this.<br />
<br />
* When the GUI is hidden, holding shift no longer draws the lines for any ships you have selected.<br />
<br />
* Fixed a nullref exception that could happen when saving the game, particularly in the test chamber.<br />
<br />
* When in the test chamber, tabbing out to the galaxy map and back randomizes the planet and the starfield background.<br />
** It's also now randomized in the test chamber in general, rather than always being the same thing.<br />
<br />
* Fixed a number of bugs with the background skyboxes not showing the correct thing in various circumstances. It was most noticeable on the galaxy map, but was also happening in the planet view.<br />
<br />
* The Ops tab of the sidebar now also uses the more efficient and correct method of sizing and positioning its elements.<br />
** Additionally, instead of the confusing "No Ark" note when you need to select your Ark, it instead says "Select Ark."<br />
<br />
* The Science tab has also now been updated in this manner, to perform better and show more correctly more of the time (ideally all of the time).<br />
<br />
* All of the turret icons have been updated to include letter codes within them, which make them vastly more recognizable when they are small.<br />
<br />
* Updated the construction sidebar so that it is also now updated to the new style of logic that is both more correct and more efficient.<br />
** As part of this, the rally, control group, and pause buttons are actually now responsive to mouseover, although they don't yet allow clicking.<br />
<br />
* The Prototype Flagship you start with is no longer eligible to be seeded on the map<br />
** Thanks to ZeusAlmighty for pointing this out<br />
<br />
* Force AI Waves to press home their attack; on higher difficulties sometimes a wave would flee a well defended planet before any actual fighting, and a slight nerf to overall AI strength at higher difficulties<br />
** Thanks to Magnus for those suggestions<br />
<br />
* The AI will now unlock new fleetship types more slowly<br />
<br />
* The Encapsulated map type now lets you choose between a Small, Medium and Large outer circle<br />
<br />
* Human Resistance Fighters now have a cap to how strong they can get. The cap will go up every hour.<br />
<br />
* Under the hood, threat numbers fluctuate wildly for some reason (likely multithreading race conditions).<br />
**We've added two new classes for tracking data over time: MaxFloatValueOverTimeList and MaxIntValueOverTimeList to deal with that.<br />
** The latter is used in order to keep track of the max value that was seen in fifth-second intervals, and thus expire high values only after a full second has passed.<br />
** Since the data can go upwards instantly, it's nice and responsive, and the little sub-second dips to lower values due to multithreaded calculations are not ever showing up anymore.<br />
<br />
* Completely redid the visual font for the ship mark levels in the gimbals. It's a lot more attractive.<br />
** Also the numerals are WAY smaller compared to the actual icon of the ship on the gimbal again, more like the first game.<br />
<br />
* Made the gimbals in general a lot smaller, again more like the first game.<br />
** This will be getting some more reworking soon, anyway, as we change how gimbals are drawn a bit.<br />
<br />
* Reworked the old "flair" spots on the ship gimbals so that we can now show status things like FRD mode and whatnot on there, instead.<br />
** This in turn fixes some other issues that we were having with efficiency and proper scale in this area.<br />
** It also fixes the issue of you not being able to see these sorts of statuses on markless ships.<br />
** These actually show ABOVE the main icon now, leading to somewhat better visibility for these special statuses.<br />
<br />
* Added in new Mark VI and Mark VII data entries and mark level icons.<br />
** We're not actually doing anything with these just yet, and later on we'll only be using these as variants for SUPER late-game stuff if people decide they want to capture all 100 planets or something. You won't be seeing these mark levels in most games at all.<br />
<br />
* Removed the "exit wide" behavior AI ships used when exiting a wormhole. This was left over from when wormhole traversal was always going to be on the edge of the gravwell, with a special animation. As it is now, it was just annoying.<br />
** Thanks to Magnus and others for reporting.<br />
<br />
* Fixed a bug where AI ships would camp on a dead turret waiting for it to come back to life.<br />
** Thanks to Badger for reporting.<br />
<br />
* The time between when a turret dies and when it can be automatically rebuilt has been increased from 5 seconds to 60.<br />
** Thanks to Badger for suggesting.<br />
<br />
* Turrets and Tractors have been doubled in strength, from 5x an equivalent fleet ship to 10x.<br />
** I have a dial. It goes really high.<br />
<br />
* Warp gates are again not autotargeted if you're not capturing the planet, to allow you to more conveniently shape where waves come in.<br />
<br />
* Several metric tons of under-the-hood performance improvements both to CPU and RAM-traffic (not really the overall RAM, since the sim itself is normally less than 100MB, but the amount that gets allocated and then garbage-collected).<br />
** This may or may not get us where we need to be, but it's a step in the right direction.<br />
<br />
* When hovering over a planet in the galaxy view, also show the Enemy Strength on that planet. This will probably be removed once the Galaxy Map UI rework is done, but it's very handy right now<br />
<br />
* There are now lines of techs for increasing Metal, Power, and Fuel production.<br />
** The resource-converter buildings previously used for a similar purpose have been removed from the build menu, since reversible resource conversion leads to either cheesing-the-system (inflating fuel cap, building more ships, scrapping converter; or the same on the power side) or punishment mechanics to prevent the cheese.<br />
** Thanks to Badger and others for suggesting.<br />
<br />
* Metal costs have been increased by roughly 1/3rd across the board.<br />
** Thanks to Badger for suggesting.<br />
<br />
== Version 0.718 A Wild GUI Appears ==<br />
(Released April 2nd, 2018)<br />
<br />
* The GUI in general is now vastly more responsive, and only run from the main thread.<br />
** There are certain sections that can be majorly messed up by the activity of background threads, but we're going to be taking a general try/catch approach with those. My joking note in the code, though accurate, is "sometimes bad things happen to good threads." These instances that cause nullrefs or index out of range exceptions are not frequent enough to be a performance hog, but trying to sync a lot of the gui logic between threads was leading to a sense of subtle lag even though it might be running at 200fps. There were certain kinds of calculations that we previously couldn't do, either.<br />
** Generally speaking, there are now methods that are called Volatile that used to be called FromAnyThread. In those, the assumption should be that any sim-side piece of data might disappear or change at any moment. It's up to each individual control as to how to handle that on a case-by-case basis.<br />
<br />
* Fixed an amusing bug where if you were not spending any metal, it was assuming something was wrong and therefore it wouldn't show your net metal income (which is just your metal income). Now it gives it 0.8 seconds of being unpaused before going "okay, I guess you're just thrifty, here's what you're earning."<br />
<br />
* If a ship is upgraded while in a control group, the upgraded version of that ship now is still in that control group<br />
** Thanks to Pluto011 for reporting. I guess Pluto really is still a planet after all<br />
<br />
* The B and T hotkeys now work for switching to the build and tech tabs again.<br />
** There are also hotkeys for the Ops, Ships, and Objectives tabs of the sidebar, which are all default-unbound right now.<br />
<br />
* Fixed a bug where any item in the science screen that didn't have a weapon would fail to show a tooltip.<br />
<br />
* The white ring around the planet area mysteriously stopped showing in the recent release, and we've decided to just remove it in general. It was unsightly, and thanks to the asteroid field is not even needed. The asteroids can be a bit on the subtle side, but you're not really going out there near the edge anyway, so it doesn't need to be blaring in your face at far zooms.<br />
<br />
* The planet standing orders have been hidden for now, since they weren't working anyway. They're to be reimplemented a different way.<br />
<br />
* The quick defenses and policies sections of the build sidebar now collapse properly.<br />
** Also fixed the issue with the constructors not being able to be minimized and maximized, and made progress on the issue with the constructor pause button and such, though that isn't resolved yet.<br />
<br />
* Fixed an on-startup warning that PowerDist couldn't be found in the arcenui bundle.<br />
<br />
* Fixed a bug where Space Docks, Starship Constructors, and Advanced Starship Constructors were not ever available for construction in the prior version because they were not flagged as builders in the new rollup for that.<br />
** This, incidentally, made it literally impossible to build starships.<br />
<br />
* The sidebar now shows the percent progress of each item being queue-built where it would otherwise show the remaining cap for that item. This really helps you see what's going on, and how much longer it's going to be, etc. Before, even with the new GUI, things felt extremely blind.<br />
<br />
* Fixed a frustrating longstanding issue from the tooltips where they would lag behind on their sizing and text updates, with their background updates even further behind. This was particularly noticeable with the new sidebar tooltips, but not actually new with them. It's fixed for all the kinds of tooltips, now.<br />
<br />
* Fixed a bug with forcefields showing up in strange places.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Autosave defaults to 10 minutes now, instead of 1 minute.<br />
** Thanks to chemical_art for pointing this out<br />
<br />
* Fixed a bug where the unit tooltips still showed squad health instead of the health of an individual visual-thing.<br />
** Thanks to chemical_art for reporting.<br />
<br />
* A third Ark design, the second commissioned by kickstarter backers, is now in place: The Orchid.<br />
** More info will be available on it soon, but it's basically an absolutely massive flower that humans built a spaceship inside of. A lot of cool backstory lore has been batted around for this, but we'll have that actually in place probably later this week.<br />
** And as a reminder, you can't actually see these in-game yet, though you can select them in the profile select screen. Coming soon on that, apologies!<br />
** Here's a video where you can see it, though: https://youtu.be/6Jzh7yD9J0I<br />
<br />
* Fixed a couple of nullref exceptions that would happen when you lost the game, previously.<br />
<br />
* Most of the shot visuals are now in place, although without trails of any sort at the moment.<br />
** They also now do some auto-scaling based on how far away from the camera they are, so that you can still see them when way zoomed out, but they don't appear ginormous when you're zoomed way in.<br />
** All of the projectile-style shots are accounted for. Various ones that are beam-weapon style or other specialty effects are not addressed at all just yet.<br />
** The sound effects for all of these shots are also now in use, which makes battles sound quite different.<br />
** More to come with these bits; right now, fast-moving shots are almost impossible to see, for instance.<br />
<br />
* All AI planets immediately next to a player starting planet now get roughly 1/4 the defenses they would normally get, and all AI planets one hop further out get roughly 3/4 the defenses they would normally get.<br />
** The idea is to switch back to AIWC's philosophy of "you should be able to steamroll your immediate neighbors", because the AI hasn't fortified against you and isn't taking you seriously... yet.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Fuel costs have increased again across the board, since once the player was off the ground at all they'd run out of ship-cap long before they ran out of fuel.<br />
** Thanks to Magnus for inspiring this change.<br />
<br />
* Starships now cost massively more metal and fuel than fleet ships (and way more metal than turrets), but are now balanced at a baseline about 3x as high as they were (and fleet ships still are).<br />
** This is to the extent that you can't field your starting triangle ships AND even a single starship on your starting fuel. Since the neighboring AI planets are such pushovers now it won't really matter, but when you get enough fuel to support a starship it's a significant deal.<br />
** The idea being to further distinguish fleet ships from starships:<br />
*** Fleet ships build quickly, cheaply, and wherever you have a flagship, and are relatively easy on the fuel.<br />
*** Starships are very expensive, and if you lose one it's a big deal because you can't replace it in the field (and it's going to cost a lot of metal). But you also get much more strength per unit of Science (but still not as much as Turrets).<br />
** Thanks to chemical_art for inspiring these changes.<br />
<br />
* Planetary Controllers now have a very basic level of Tachyon output, so a defending planet will never be completely unable to decloak enemy cloaked ships (it would just take a really long time against a big swarm).<br />
<br />
* The Regenerator Golem's health "cost" for regenerating a unit has been increased to 3x of what it was (it was and is proportional to the strength of the regenerated unit).<br />
** Thanks to Magnus for inspiring this change.<br />
<br />
* The number of power distribution nodes on each planet has been halved, to make them less distracting and more individually significant.<br />
** Thanks to etheric for suggesting.<br />
<br />
* Fixed an issue where reclaiming a planet you'd lost would cost more AIP.<br />
** Thanks to BadgerBadger for reporting.<br />
<br />
* Greatly improved the performance of having many tractor emitters on one planet, especially when there's not many potential targets for those targets.<br />
** Thanks to BadgerBadger for the test-case save.<br />
<br />
* Add some infrastructure code for getting Ships Killed/Ships Lost stats, and to eventually improve the timing of "Your ships are under attack" voice effects<br />
<br />
== Version 0.717 Public Beta Branch ==<br />
(Released March 29th, 2018)<br />
<br />
* The main menu no longer has a ship at all, and instead has asteroids flying past pretty fast.<br />
** It also has two versions of earth: a red and black burned out version representing the humans, and a blue and cyan circuit-board-covered one representing the AI. The human earth orbits strangely, while the AI earth orbits much more calmly in place.<br />
<br />
* The new space skyboxes were messed up in general, but are now fixed.<br />
<br />
* The King icon was previously showing as pretty blurry because of all the thin lines. It's now a star with a circle instead of a Chess-style king icon.<br />
** Additionally, all of the ship icons for the sidebar in particular will show up with more clarity at both larger and smaller scales based on your screen size.<br />
<br />
* Flagship is now a new SpecialEntityType.<br />
<br />
* Instead of the KingUnits rollup, which was being incorrectly used (actually nowhere), there are now rollups for KingUnitsOnly, KingsAndFlagships, and Builders.<br />
** KingsAndFlagships is actually what is needed for... well, nothing right now, but something soon, surely.<br />
** Builders includes controllers as well.<br />
<br />
* A new icon for the power distribution nodes is now in place.<br />
<br />
* Added a bit of a soft bevel to the interior of the ship gimbal icons. Not sure if we'll keep exactly that styling, but it does help make ships in a mass more distinct from one another. We'll see how that evolves.<br />
<br />
=== GUI Overhaul, Part 1: The Glorious Sidebar ===<br />
<br />
* The top bar has been completely reimagined, as has the lower-left bar... and the right-hand sidebar... and the build and science menus... who are we kidding, this a whole new UI, and we're not even done yet.<br />
** Massive thanks to Eric T. Edwards really can't begin to cover this.<br />
<br />
* There are now two types of at-mouse tooltips, one wide and one narrow.<br />
** They both now size themselves a bit more accurately in terms of their background panel width compared to their contents.<br />
<br />
* All of the hacking stuff now has proper names and descriptions, so you can actually tell what things do if you aren't versed in play of the first game.<br />
** It also directly shows you the hacking cost of items in the hacking menu, and reds it out if you can't hack for some reason, as well as telling you WHY you can't hack the thing.<br />
<br />
* If the mouse is over the sidebar or a button, you can now use the mouse scrollwheel to control them and it won't affect the camera zoom.<br />
<br />
* Fixed a bug where if a ui element had a mouseover flag set on it, and then it was hidden or its window was hidden, it would still have the mouseover flag set the next time it was brought back around.<br />
<br />
* When upgrading a mark 1+ unit to a higher-level one, it now shows you the improvements in cap, attack power, and health. Suddenly you can make decisions!<br />
** Thanks to Badger for suggesting this, and so many other things. We've kind of stopped thanking him much, since he's now a relatively core part of the dev team, albeit in a volunteer capacity.<br />
<br />
* Infrastructure category construction can now only happen on planets controlled by (any) player.<br />
** This helps to inherently clear up some confusion that otherwise could happen, and it's also yet another reason to hold territory versus (for instance) leaving it unclaimed but building constructors there. You can build the constructors, lose the planet, but not rebuild them until you re-take the planet.<br />
<br />
* The "Build Patterns" are now a new "Quick Defense" section in the build tab of the sidebar, which have a really nice name and description setup.<br />
<br />
* The queue-based constructors are all now shown at once for a planet in the construction sidebar, and you can toggle things for each of them right from one interface.<br />
** The queues are no longer shown, but instead you just have "is on" or not, with a toggle.<br />
** There is also a global pause for the entire queue, but otherwise it's assumed to loop, and just does one unit at a time.<br />
** This simplification of the build screen is a big deal in that you can quickly see what you can build and what type of resource (power/fuel) it takes to run it. Managing groups of constructors is child's play, now, too.<br />
<br />
* When seeing the cap for a ship in the popup next to the sidebar, it now notes if that's a per-planet cap or a galaxy-wide one.<br />
<br />
== Version 0.716 Activating Mk4 Grinding Machine ==<br />
(Released March 28th, 2018)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
* Fix a bug with the Nanocaust where it could desync in multiplayer<br />
* The Nanocaust will now reinforce a planet that is under attack <br />
<br />
* Revised the unit tooltips to show HP and DPS in terms of individual ships (visual things on the screen) instead of squads (groups that you actually control).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Defense Response-Time Rebalancing ===<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** But you do get more time to attack between waves, and generally have a longer warning time to get your fleet back if you need to.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* All ships movement speed increased by roughly 20%, to see if that helps avoid the game feeling sluggish and makes it easier for the player to attack between waves.<br />
** Note that we don't want to make ships much faster for tactical reasons, otherwise the range of ships becomes a lot less interesting (i.e. if a short-range ship can close with a long-range ship so fast that the latter doesn't really have much advantage).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turrets and Tractor Arrays base strength multiplier from 3 => 5.<br />
** For several turret types the increase went primarily to HP instead of DPS, by way of changing Structure-defense turrets to Armor or Jammer, and by increasing their durability class (which spends DPS to buy HP).<br />
** So in general you'll be less reliant on bringing your mobile fleet back to defend against a wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turret and Tractor array power costs have been redone so that all the short-range ones have low power costs (like the needler turrets already had), medium-range ones have moderate power costs, and long-range and sniper-range ones have higher power costs.<br />
** This is to account for the difficulty of defending multiple individual wormholes, and generally the inability of a turret to do anything outside its range.<br />
** On the flip side, if you can concentrate the enemy into one place, you can pack an inordinately high amount of firepower into that small space, especially considering how much higher-dps short-range weapons already were.<br />
** Overall, this is yet another change to make it easier for you to manage waves without pulling your fleet back.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30712AI War 2:Final Pre-Beta Checks2018-04-07T02:03:12Z<p>Keith.lamothe: /* Version 0.719 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.719 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Added a glowing blue atmosphere effect to the AI planet on the main menu. This wasn't exactly on the top of our todo list, but it was a good palate cleanser as we geared up for some other things today.<br />
<br />
* Fixed a bug where the auto-upgrading of a ship could produce multiple copies of the upgraded unit, and circumvent the ship cap and fuel cap.<br />
** Thanks to Magnus for reporting.<br />
<br />
* Implemented double-speed Sqrt functions based on the math noted here: http://blog.wouldbetheologian.com/2011/11/fast-approximate-sqrt-method-in-c.html<br />
** Also used this to make double-speed (or even a bit faster) magnitude functions for Vector3s.<br />
** Unrelated, added a probably-more-efficient Abs function that the CLR can inline.<br />
<br />
* Shots now consist of the initial "body" of themselves, and then a linear trail that zips out behind them depending on how fast they are moving. For missiles and similar, the effect is particularly neat.<br />
** Unlike the things we were doing in the past, however, with TrailRenderers of unity, this is fully GPU-instancing-compatible, and is also a lot less intense on both the CPU and the GPU, and creates no garbage in RAM for the collector to clean up.<br />
** This approach is also something we'll be making use of, somewhat in reverse, to handle "lines between things" of the type that we have for repair, tractoring, beam weapons, etc. This will let us do much fancier "laser beam spikes" and similar that are entirely volumetric rather than billboarded, and which are more performant as well as looking notably better.<br />
** Currently the following shot types have been updated with their final-for-now visuals: FusionBomb, FusionRocket, ExtremeLongRangeRailgun, EnergyWave, ArmorPiercingShell, GuidedMissile, PlasmaTorpedo, PlasmaBolt, EngineDisruptingShell, Lightning and LightningGuardian were already done, Flak (except the explosion at the end bit needs updating), ExtremelyLongRangeIon, MassDriver, ImplosionCannon, ImplosionBolt, MajorZombifyingRockets, MicroAOERockets, ZombifyingShells, and PlasmaTorpedoShotgun.<br />
** The following beam-style weapons are presently invisible or not showing properly at least, not sure: Laser, HeavyBeam.<br />
** The following explosive-style weapons need updated visuals: Flak, MineExplosion, ArmorPiercingMelee<br />
** The following full-screen weapons need visuals: Attrition, NuclearExplosion, EMPExplosion.<br />
<br />
* Direct Waves are now the only type of waves enabled by default. This matches the default behaviour of AIWC.<br />
<br />
* Some nerfs to the overall strength available to the Warden Fleet.<br />
** Thanks to Magnus for feedback<br />
<br />
* Until the Ark is actually pickable via the profile screen, make The Orchid a selectable Ark type through the current interface in the Game Lobby<br />
<br />
* We're now using Simple Mesh Combine as part of our pipeline in a few areas, combining a variety of meshes with different materials into a single mesh with multiple submeshes. This is done in order to improve culling performance and gameobject handling, and to let us use the ArcenVisualSolomeshShip class instead of ArcenVisualShip, with the former being more efficient.<br />
** We've updated the following ships thusly: Special Forces Ninja Hideout (called the Warden something-or-other on the front-end now), Ark One, Ark Rorqual Hegira, Ark The Orchid, and Small Temporary Rock.<br />
<br />
* Made a number of adjustments to how the "prototypes" for various objects are created and used. We were accidentally double-initializing most of them, which made loading the game slower than it needed to be, as well as creating an extra 800ish objects in the scene behind the scenes. That's now fixed up, and makes garbage collections slightly faster at the same time.<br />
<br />
* The metal section of the resource bar now uses the proper color to indicate metal, rather than just being white.<br />
<br />
* On the construction tab, there is now a little metal icon in the upper left on every icon, and on the science tab there is now a little science icon in the upper left on every icon.<br />
** Thanks to TheVampire100 for suggesting, so that tabs are easier to tell apart.<br />
<br />
* Slight tweaks to shot targeting code to reduce memory usage.<br />
<br />
* Smooth out the shot speed a bit, so shots don't seem to accelerate/decelerate as much mid flight<br />
** Thanks to Chris for the bug report<br />
<br />
* The fourth Ark design, the third commissioned by kickstarter backers, is now in place: Gyrn, The Voidhome<br />
** You can check out a video of it here: https://youtu.be/X0NvDc7mDKc<br />
<br />
* The logic for how the icons and whatnot on the ships tab of the sidebar position themselves has been completely re-coded from scratch.<br />
** It no longer has the same lag with things in the wrong positions, it no longer blinks out of existence periodically, it no longer has to refresh itself 5 times a second, and ship icons never mysteriously go missing or switch positions with one another.<br />
** Thanks to Magnus, Mckloshiv, and etheric42 for reporting.<br />
<br />
* The right-hand sidebar is now top-aligned, but 40px down, rather than being bottom-aligned and 20px up. This feels more natural, and still leaves room for the upcoming wave warnings across the top.<br />
** This also fixes the bug where at certain aspect ratios, the top of the sidebar could stick up off the screen. The bottom of the sidebar still can, at certain screen resolutions, but... well, just don't use those aspect ratios. It's very strange windowed-mode-only resolutions that case that, so the average player would never ever see that.<br />
** Thanks to Badger and Eric for suggesting the parts of this.<br />
<br />
* When the GUI is hidden, holding shift no longer draws the lines for any ships you have selected.<br />
<br />
* Fixed a nullref exception that could happen when saving the game, particularly in the test chamber.<br />
<br />
* When in the test chamber, tabbing out to the galaxy map and back randomizes the planet and the starfield background.<br />
** It's also now randomized in the test chamber in general, rather than always being the same thing.<br />
<br />
* Fixed a number of bugs with the background skyboxes not showing the correct thing in various circumstances. It was most noticeable on the galaxy map, but was also happening in the planet view.<br />
<br />
* The Ops tab of the sidebar now also uses the more efficient and correct method of sizing and positioning its elements.<br />
** Additionally, instead of the confusing "No Ark" note when you need to select your Ark, it instead says "Select Ark."<br />
<br />
* The Science tab has also now been updated in this manner, to perform better and show more correctly more of the time (ideally all of the time).<br />
<br />
* All of the turret icons have been updated to include letter codes within them, which make them vastly more recognizable when they are small.<br />
<br />
* Updated the construction sidebar so that it is also now updated to the new style of logic that is both more correct and more efficient.<br />
** As part of this, the rally, control group, and pause buttons are actually now responsive to mouseover, although they don't yet allow clicking.<br />
<br />
* The Prototype Flagship you start with is no longer eligible to be seeded on the map<br />
** Thanks to ZeusAlmighty for pointing this out<br />
<br />
* Force AI Waves to press home their attack; on higher difficulties sometimes a wave would flee a well defended planet before any actual fighting, and a slight nerf to overall AI strength at higher difficulties<br />
** Thanks to Magnus for those suggestions<br />
<br />
* The AI will now unlock new fleetship types more slowly<br />
<br />
* The Encapsulated map type now lets you choose between a Small, Medium and Large outer circle<br />
<br />
* Human Resistance Fighters now have a cap to how strong they can get. The cap will go up every hour.<br />
<br />
* Under the hood, threat numbers fluctuate wildly for some reason (likely multithreading race conditions).<br />
**We've added two new classes for tracking data over time: MaxFloatValueOverTimeList and MaxIntValueOverTimeList to deal with that.<br />
** The latter is used in order to keep track of the max value that was seen in fifth-second intervals, and thus expire high values only after a full second has passed.<br />
** Since the data can go upwards instantly, it's nice and responsive, and the little sub-second dips to lower values due to multithreaded calculations are not ever showing up anymore.<br />
<br />
* Completely redid the visual font for the ship mark levels in the gimbals. It's a lot more attractive.<br />
** Also the numerals are WAY smaller compared to the actual icon of the ship on the gimbal again, more like the first game.<br />
<br />
* Made the gimbals in general a lot smaller, again more like the first game.<br />
** This will be getting some more reworking soon, anyway, as we change how gimbals are drawn a bit.<br />
<br />
* Reworked the old "flair" spots on the ship gimbals so that we can now show status things like FRD mode and whatnot on there, instead.<br />
** This in turn fixes some other issues that we were having with efficiency and proper scale in this area.<br />
** It also fixes the issue of you not being able to see these sorts of statuses on markless ships.<br />
** These actually show ABOVE the main icon now, leading to somewhat better visibility for these special statuses.<br />
<br />
* Added in new Mark VI and Mark VII data entries and mark level icons.<br />
** We're not actually doing anything with these just yet, and later on we'll only be using these as variants for SUPER late-game stuff if people decide they want to capture all 100 planets or something. You won't be seeing these mark levels in most games at all.<br />
<br />
* Removed the "exit wide" behavior AI ships used when exiting a wormhole. This was left over from when wormhole traversal was always going to be on the edge of the gravwell, with a special animation. As it is now, it was just annoying.<br />
** Thanks to Magnus and others for reporting.<br />
<br />
* Fixed a bug where AI ships would camp on a dead turret waiting for it to come back to life.<br />
** Thanks to Badger for reporting.<br />
<br />
* The time between when a turret dies and when it can be automatically rebuilt has been increased from 5 seconds to 60.<br />
** Thanks to Badger for suggesting.<br />
<br />
* Turrets and Tractors have been doubled in strength, from 5x an equivalent fleet ship to 10x.<br />
** I have a dial. It goes really high.<br />
<br />
* Warp gates are again not autotargeted if you're not capturing the planet, to allow you to more conveniently shape where waves come in.<br />
<br />
* Several metric tons of under-the-hood performance improvements both to CPU and RAM-traffic (not really the overall RAM, since the sim itself is normally less than 100MB, but the amount that gets allocated and then garbage-collected).<br />
** This may or may not get us where we need to be, but it's a step in the right direction.<br />
<br />
== Version 0.718 A Wild GUI Appears ==<br />
(Released April 2nd, 2018)<br />
<br />
* The GUI in general is now vastly more responsive, and only run from the main thread.<br />
** There are certain sections that can be majorly messed up by the activity of background threads, but we're going to be taking a general try/catch approach with those. My joking note in the code, though accurate, is "sometimes bad things happen to good threads." These instances that cause nullrefs or index out of range exceptions are not frequent enough to be a performance hog, but trying to sync a lot of the gui logic between threads was leading to a sense of subtle lag even though it might be running at 200fps. There were certain kinds of calculations that we previously couldn't do, either.<br />
** Generally speaking, there are now methods that are called Volatile that used to be called FromAnyThread. In those, the assumption should be that any sim-side piece of data might disappear or change at any moment. It's up to each individual control as to how to handle that on a case-by-case basis.<br />
<br />
* Fixed an amusing bug where if you were not spending any metal, it was assuming something was wrong and therefore it wouldn't show your net metal income (which is just your metal income). Now it gives it 0.8 seconds of being unpaused before going "okay, I guess you're just thrifty, here's what you're earning."<br />
<br />
* If a ship is upgraded while in a control group, the upgraded version of that ship now is still in that control group<br />
** Thanks to Pluto011 for reporting. I guess Pluto really is still a planet after all<br />
<br />
* The B and T hotkeys now work for switching to the build and tech tabs again.<br />
** There are also hotkeys for the Ops, Ships, and Objectives tabs of the sidebar, which are all default-unbound right now.<br />
<br />
* Fixed a bug where any item in the science screen that didn't have a weapon would fail to show a tooltip.<br />
<br />
* The white ring around the planet area mysteriously stopped showing in the recent release, and we've decided to just remove it in general. It was unsightly, and thanks to the asteroid field is not even needed. The asteroids can be a bit on the subtle side, but you're not really going out there near the edge anyway, so it doesn't need to be blaring in your face at far zooms.<br />
<br />
* The planet standing orders have been hidden for now, since they weren't working anyway. They're to be reimplemented a different way.<br />
<br />
* The quick defenses and policies sections of the build sidebar now collapse properly.<br />
** Also fixed the issue with the constructors not being able to be minimized and maximized, and made progress on the issue with the constructor pause button and such, though that isn't resolved yet.<br />
<br />
* Fixed an on-startup warning that PowerDist couldn't be found in the arcenui bundle.<br />
<br />
* Fixed a bug where Space Docks, Starship Constructors, and Advanced Starship Constructors were not ever available for construction in the prior version because they were not flagged as builders in the new rollup for that.<br />
** This, incidentally, made it literally impossible to build starships.<br />
<br />
* The sidebar now shows the percent progress of each item being queue-built where it would otherwise show the remaining cap for that item. This really helps you see what's going on, and how much longer it's going to be, etc. Before, even with the new GUI, things felt extremely blind.<br />
<br />
* Fixed a frustrating longstanding issue from the tooltips where they would lag behind on their sizing and text updates, with their background updates even further behind. This was particularly noticeable with the new sidebar tooltips, but not actually new with them. It's fixed for all the kinds of tooltips, now.<br />
<br />
* Fixed a bug with forcefields showing up in strange places.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Autosave defaults to 10 minutes now, instead of 1 minute.<br />
** Thanks to chemical_art for pointing this out<br />
<br />
* Fixed a bug where the unit tooltips still showed squad health instead of the health of an individual visual-thing.<br />
** Thanks to chemical_art for reporting.<br />
<br />
* A third Ark design, the second commissioned by kickstarter backers, is now in place: The Orchid.<br />
** More info will be available on it soon, but it's basically an absolutely massive flower that humans built a spaceship inside of. A lot of cool backstory lore has been batted around for this, but we'll have that actually in place probably later this week.<br />
** And as a reminder, you can't actually see these in-game yet, though you can select them in the profile select screen. Coming soon on that, apologies!<br />
** Here's a video where you can see it, though: https://youtu.be/6Jzh7yD9J0I<br />
<br />
* Fixed a couple of nullref exceptions that would happen when you lost the game, previously.<br />
<br />
* Most of the shot visuals are now in place, although without trails of any sort at the moment.<br />
** They also now do some auto-scaling based on how far away from the camera they are, so that you can still see them when way zoomed out, but they don't appear ginormous when you're zoomed way in.<br />
** All of the projectile-style shots are accounted for. Various ones that are beam-weapon style or other specialty effects are not addressed at all just yet.<br />
** The sound effects for all of these shots are also now in use, which makes battles sound quite different.<br />
** More to come with these bits; right now, fast-moving shots are almost impossible to see, for instance.<br />
<br />
* All AI planets immediately next to a player starting planet now get roughly 1/4 the defenses they would normally get, and all AI planets one hop further out get roughly 3/4 the defenses they would normally get.<br />
** The idea is to switch back to AIWC's philosophy of "you should be able to steamroll your immediate neighbors", because the AI hasn't fortified against you and isn't taking you seriously... yet.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Fuel costs have increased again across the board, since once the player was off the ground at all they'd run out of ship-cap long before they ran out of fuel.<br />
** Thanks to Magnus for inspiring this change.<br />
<br />
* Starships now cost massively more metal and fuel than fleet ships (and way more metal than turrets), but are now balanced at a baseline about 3x as high as they were (and fleet ships still are).<br />
** This is to the extent that you can't field your starting triangle ships AND even a single starship on your starting fuel. Since the neighboring AI planets are such pushovers now it won't really matter, but when you get enough fuel to support a starship it's a significant deal.<br />
** The idea being to further distinguish fleet ships from starships:<br />
*** Fleet ships build quickly, cheaply, and wherever you have a flagship, and are relatively easy on the fuel.<br />
*** Starships are very expensive, and if you lose one it's a big deal because you can't replace it in the field (and it's going to cost a lot of metal). But you also get much more strength per unit of Science (but still not as much as Turrets).<br />
** Thanks to chemical_art for inspiring these changes.<br />
<br />
* Planetary Controllers now have a very basic level of Tachyon output, so a defending planet will never be completely unable to decloak enemy cloaked ships (it would just take a really long time against a big swarm).<br />
<br />
* The Regenerator Golem's health "cost" for regenerating a unit has been increased to 3x of what it was (it was and is proportional to the strength of the regenerated unit).<br />
** Thanks to Magnus for inspiring this change.<br />
<br />
* The number of power distribution nodes on each planet has been halved, to make them less distracting and more individually significant.<br />
** Thanks to etheric for suggesting.<br />
<br />
* Fixed an issue where reclaiming a planet you'd lost would cost more AIP.<br />
** Thanks to BadgerBadger for reporting.<br />
<br />
* Greatly improved the performance of having many tractor emitters on one planet, especially when there's not many potential targets for those targets.<br />
** Thanks to BadgerBadger for the test-case save.<br />
<br />
* Add some infrastructure code for getting Ships Killed/Ships Lost stats, and to eventually improve the timing of "Your ships are under attack" voice effects<br />
<br />
== Version 0.717 Public Beta Branch ==<br />
(Released March 29th, 2018)<br />
<br />
* The main menu no longer has a ship at all, and instead has asteroids flying past pretty fast.<br />
** It also has two versions of earth: a red and black burned out version representing the humans, and a blue and cyan circuit-board-covered one representing the AI. The human earth orbits strangely, while the AI earth orbits much more calmly in place.<br />
<br />
* The new space skyboxes were messed up in general, but are now fixed.<br />
<br />
* The King icon was previously showing as pretty blurry because of all the thin lines. It's now a star with a circle instead of a Chess-style king icon.<br />
** Additionally, all of the ship icons for the sidebar in particular will show up with more clarity at both larger and smaller scales based on your screen size.<br />
<br />
* Flagship is now a new SpecialEntityType.<br />
<br />
* Instead of the KingUnits rollup, which was being incorrectly used (actually nowhere), there are now rollups for KingUnitsOnly, KingsAndFlagships, and Builders.<br />
** KingsAndFlagships is actually what is needed for... well, nothing right now, but something soon, surely.<br />
** Builders includes controllers as well.<br />
<br />
* A new icon for the power distribution nodes is now in place.<br />
<br />
* Added a bit of a soft bevel to the interior of the ship gimbal icons. Not sure if we'll keep exactly that styling, but it does help make ships in a mass more distinct from one another. We'll see how that evolves.<br />
<br />
=== GUI Overhaul, Part 1: The Glorious Sidebar ===<br />
<br />
* The top bar has been completely reimagined, as has the lower-left bar... and the right-hand sidebar... and the build and science menus... who are we kidding, this a whole new UI, and we're not even done yet.<br />
** Massive thanks to Eric T. Edwards really can't begin to cover this.<br />
<br />
* There are now two types of at-mouse tooltips, one wide and one narrow.<br />
** They both now size themselves a bit more accurately in terms of their background panel width compared to their contents.<br />
<br />
* All of the hacking stuff now has proper names and descriptions, so you can actually tell what things do if you aren't versed in play of the first game.<br />
** It also directly shows you the hacking cost of items in the hacking menu, and reds it out if you can't hack for some reason, as well as telling you WHY you can't hack the thing.<br />
<br />
* If the mouse is over the sidebar or a button, you can now use the mouse scrollwheel to control them and it won't affect the camera zoom.<br />
<br />
* Fixed a bug where if a ui element had a mouseover flag set on it, and then it was hidden or its window was hidden, it would still have the mouseover flag set the next time it was brought back around.<br />
<br />
* When upgrading a mark 1+ unit to a higher-level one, it now shows you the improvements in cap, attack power, and health. Suddenly you can make decisions!<br />
** Thanks to Badger for suggesting this, and so many other things. We've kind of stopped thanking him much, since he's now a relatively core part of the dev team, albeit in a volunteer capacity.<br />
<br />
* Infrastructure category construction can now only happen on planets controlled by (any) player.<br />
** This helps to inherently clear up some confusion that otherwise could happen, and it's also yet another reason to hold territory versus (for instance) leaving it unclaimed but building constructors there. You can build the constructors, lose the planet, but not rebuild them until you re-take the planet.<br />
<br />
* The "Build Patterns" are now a new "Quick Defense" section in the build tab of the sidebar, which have a really nice name and description setup.<br />
<br />
* The queue-based constructors are all now shown at once for a planet in the construction sidebar, and you can toggle things for each of them right from one interface.<br />
** The queues are no longer shown, but instead you just have "is on" or not, with a toggle.<br />
** There is also a global pause for the entire queue, but otherwise it's assumed to loop, and just does one unit at a time.<br />
** This simplification of the build screen is a big deal in that you can quickly see what you can build and what type of resource (power/fuel) it takes to run it. Managing groups of constructors is child's play, now, too.<br />
<br />
* When seeing the cap for a ship in the popup next to the sidebar, it now notes if that's a per-planet cap or a galaxy-wide one.<br />
<br />
== Version 0.716 Activating Mk4 Grinding Machine ==<br />
(Released March 28th, 2018)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
* Fix a bug with the Nanocaust where it could desync in multiplayer<br />
* The Nanocaust will now reinforce a planet that is under attack <br />
<br />
* Revised the unit tooltips to show HP and DPS in terms of individual ships (visual things on the screen) instead of squads (groups that you actually control).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Defense Response-Time Rebalancing ===<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** But you do get more time to attack between waves, and generally have a longer warning time to get your fleet back if you need to.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* All ships movement speed increased by roughly 20%, to see if that helps avoid the game feeling sluggish and makes it easier for the player to attack between waves.<br />
** Note that we don't want to make ships much faster for tactical reasons, otherwise the range of ships becomes a lot less interesting (i.e. if a short-range ship can close with a long-range ship so fast that the latter doesn't really have much advantage).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turrets and Tractor Arrays base strength multiplier from 3 => 5.<br />
** For several turret types the increase went primarily to HP instead of DPS, by way of changing Structure-defense turrets to Armor or Jammer, and by increasing their durability class (which spends DPS to buy HP).<br />
** So in general you'll be less reliant on bringing your mobile fleet back to defend against a wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turret and Tractor array power costs have been redone so that all the short-range ones have low power costs (like the needler turrets already had), medium-range ones have moderate power costs, and long-range and sniper-range ones have higher power costs.<br />
** This is to account for the difficulty of defending multiple individual wormholes, and generally the inability of a turret to do anything outside its range.<br />
** On the flip side, if you can concentrate the enemy into one place, you can pack an inordinately high amount of firepower into that small space, especially considering how much higher-dps short-range weapons already were.<br />
** Overall, this is yet another change to make it easier for you to manage waves without pulling your fleet back.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30681AI War 2:Final Pre-Beta Checks2018-04-03T18:12:29Z<p>Keith.lamothe: /* Version 0.719 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Most ship shot types are not on their fully final graphics.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.719 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Added a glowing blue atmosphere effect to the AI planet on the main menu. This wasn't exactly on the top of our todo list, but it was a good palate cleanser as we geared up for some other things today.<br />
<br />
* Fixed a bug where the auto-upgrading of a ship could produce multiple copies of the upgraded unit, and circumvent the ship cap and fuel cap.<br />
** Thanks to Magnus for reporting.<br />
<br />
== Version 0.718 A Wild GUI Appears ==<br />
(Released April 2nd, 2018)<br />
<br />
* The GUI in general is now vastly more responsive, and only run from the main thread.<br />
** There are certain sections that can be majorly messed up by the activity of background threads, but we're going to be taking a general try/catch approach with those. My joking note in the code, though accurate, is "sometimes bad things happen to good threads." These instances that cause nullrefs or index out of range exceptions are not frequent enough to be a performance hog, but trying to sync a lot of the gui logic between threads was leading to a sense of subtle lag even though it might be running at 200fps. There were certain kinds of calculations that we previously couldn't do, either.<br />
** Generally speaking, there are now methods that are called Volatile that used to be called FromAnyThread. In those, the assumption should be that any sim-side piece of data might disappear or change at any moment. It's up to each individual control as to how to handle that on a case-by-case basis.<br />
<br />
* Fixed an amusing bug where if you were not spending any metal, it was assuming something was wrong and therefore it wouldn't show your net metal income (which is just your metal income). Now it gives it 0.8 seconds of being unpaused before going "okay, I guess you're just thrifty, here's what you're earning."<br />
<br />
* If a ship is upgraded while in a control group, the upgraded version of that ship now is still in that control group<br />
** Thanks to Pluto011 for reporting. I guess Pluto really is still a planet after all<br />
<br />
* The B and T hotkeys now work for switching to the build and tech tabs again.<br />
** There are also hotkeys for the Ops, Ships, and Objectives tabs of the sidebar, which are all default-unbound right now.<br />
<br />
* Fixed a bug where any item in the science screen that didn't have a weapon would fail to show a tooltip.<br />
<br />
* The white ring around the planet area mysteriously stopped showing in the recent release, and we've decided to just remove it in general. It was unsightly, and thanks to the asteroid field is not even needed. The asteroids can be a bit on the subtle side, but you're not really going out there near the edge anyway, so it doesn't need to be blaring in your face at far zooms.<br />
<br />
* The planet standing orders have been hidden for now, since they weren't working anyway. They're to be reimplemented a different way.<br />
<br />
* The quick defenses and policies sections of the build sidebar now collapse properly.<br />
** Also fixed the issue with the constructors not being able to be minimized and maximized, and made progress on the issue with the constructor pause button and such, though that isn't resolved yet.<br />
<br />
* Fixed an on-startup warning that PowerDist couldn't be found in the arcenui bundle.<br />
<br />
* Fixed a bug where Space Docks, Starship Constructors, and Advanced Starship Constructors were not ever available for construction in the prior version because they were not flagged as builders in the new rollup for that.<br />
** This, incidentally, made it literally impossible to build starships.<br />
<br />
* The sidebar now shows the percent progress of each item being queue-built where it would otherwise show the remaining cap for that item. This really helps you see what's going on, and how much longer it's going to be, etc. Before, even with the new GUI, things felt extremely blind.<br />
<br />
* Fixed a frustrating longstanding issue from the tooltips where they would lag behind on their sizing and text updates, with their background updates even further behind. This was particularly noticeable with the new sidebar tooltips, but not actually new with them. It's fixed for all the kinds of tooltips, now.<br />
<br />
* Fixed a bug with forcefields showing up in strange places.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Autosave defaults to 10 minutes now, instead of 1 minute.<br />
** Thanks to chemical_art for pointing this out<br />
<br />
* Fixed a bug where the unit tooltips still showed squad health instead of the health of an individual visual-thing.<br />
** Thanks to chemical_art for reporting.<br />
<br />
* A third Ark design, the second commissioned by kickstarter backers, is now in place: The Orchid.<br />
** More info will be available on it soon, but it's basically an absolutely massive flower that humans built a spaceship inside of. A lot of cool backstory lore has been batted around for this, but we'll have that actually in place probably later this week.<br />
** And as a reminder, you can't actually see these in-game yet, though you can select them in the profile select screen. Coming soon on that, apologies!<br />
** Here's a video where you can see it, though: https://youtu.be/6Jzh7yD9J0I<br />
<br />
* Fixed a couple of nullref exceptions that would happen when you lost the game, previously.<br />
<br />
* Most of the shot visuals are now in place, although without trails of any sort at the moment.<br />
** They also now do some auto-scaling based on how far away from the camera they are, so that you can still see them when way zoomed out, but they don't appear ginormous when you're zoomed way in.<br />
** All of the projectile-style shots are accounted for. Various ones that are beam-weapon style or other specialty effects are not addressed at all just yet.<br />
** The sound effects for all of these shots are also now in use, which makes battles sound quite different.<br />
** More to come with these bits; right now, fast-moving shots are almost impossible to see, for instance.<br />
<br />
* All AI planets immediately next to a player starting planet now get roughly 1/4 the defenses they would normally get, and all AI planets one hop further out get roughly 3/4 the defenses they would normally get.<br />
** The idea is to switch back to AIWC's philosophy of "you should be able to steamroll your immediate neighbors", because the AI hasn't fortified against you and isn't taking you seriously... yet.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Fuel costs have increased again across the board, since once the player was off the ground at all they'd run out of ship-cap long before they ran out of fuel.<br />
** Thanks to Magnus for inspiring this change.<br />
<br />
* Starships now cost massively more metal and fuel than fleet ships (and way more metal than turrets), but are now balanced at a baseline about 3x as high as they were (and fleet ships still are).<br />
** This is to the extent that you can't field your starting triangle ships AND even a single starship on your starting fuel. Since the neighboring AI planets are such pushovers now it won't really matter, but when you get enough fuel to support a starship it's a significant deal.<br />
** The idea being to further distinguish fleet ships from starships:<br />
*** Fleet ships build quickly, cheaply, and wherever you have a flagship, and are relatively easy on the fuel.<br />
*** Starships are very expensive, and if you lose one it's a big deal because you can't replace it in the field (and it's going to cost a lot of metal). But you also get much more strength per unit of Science (but still not as much as Turrets).<br />
** Thanks to chemical_art for inspiring these changes.<br />
<br />
* Planetary Controllers now have a very basic level of Tachyon output, so a defending planet will never be completely unable to decloak enemy cloaked ships (it would just take a really long time against a big swarm).<br />
<br />
* The Regenerator Golem's health "cost" for regenerating a unit has been increased to 3x of what it was (it was and is proportional to the strength of the regenerated unit).<br />
** Thanks to Magnus for inspiring this change.<br />
<br />
* The number of power distribution nodes on each planet has been halved, to make them less distracting and more individually significant.<br />
** Thanks to etheric for suggesting.<br />
<br />
* Fixed an issue where reclaiming a planet you'd lost would cost more AIP.<br />
** Thanks to BadgerBadger for reporting.<br />
<br />
* Greatly improved the performance of having many tractor emitters on one planet, especially when there's not many potential targets for those targets.<br />
** Thanks to BadgerBadger for the test-case save.<br />
<br />
* Add some infrastructure code for getting Ships Killed/Ships Lost stats, and to eventually improve the timing of "Your ships are under attack" voice effects<br />
<br />
== Version 0.717 Public Beta Branch ==<br />
(Released March 29th, 2018)<br />
<br />
* The main menu no longer has a ship at all, and instead has asteroids flying past pretty fast.<br />
** It also has two versions of earth: a red and black burned out version representing the humans, and a blue and cyan circuit-board-covered one representing the AI. The human earth orbits strangely, while the AI earth orbits much more calmly in place.<br />
<br />
* The new space skyboxes were messed up in general, but are now fixed.<br />
<br />
* The King icon was previously showing as pretty blurry because of all the thin lines. It's now a star with a circle instead of a Chess-style king icon.<br />
** Additionally, all of the ship icons for the sidebar in particular will show up with more clarity at both larger and smaller scales based on your screen size.<br />
<br />
* Flagship is now a new SpecialEntityType.<br />
<br />
* Instead of the KingUnits rollup, which was being incorrectly used (actually nowhere), there are now rollups for KingUnitsOnly, KingsAndFlagships, and Builders.<br />
** KingsAndFlagships is actually what is needed for... well, nothing right now, but something soon, surely.<br />
** Builders includes controllers as well.<br />
<br />
* A new icon for the power distribution nodes is now in place.<br />
<br />
* Added a bit of a soft bevel to the interior of the ship gimbal icons. Not sure if we'll keep exactly that styling, but it does help make ships in a mass more distinct from one another. We'll see how that evolves.<br />
<br />
=== GUI Overhaul, Part 1: The Glorious Sidebar ===<br />
<br />
* The top bar has been completely reimagined, as has the lower-left bar... and the right-hand sidebar... and the build and science menus... who are we kidding, this a whole new UI, and we're not even done yet.<br />
** Massive thanks to Eric T. Edwards really can't begin to cover this.<br />
<br />
* There are now two types of at-mouse tooltips, one wide and one narrow.<br />
** They both now size themselves a bit more accurately in terms of their background panel width compared to their contents.<br />
<br />
* All of the hacking stuff now has proper names and descriptions, so you can actually tell what things do if you aren't versed in play of the first game.<br />
** It also directly shows you the hacking cost of items in the hacking menu, and reds it out if you can't hack for some reason, as well as telling you WHY you can't hack the thing.<br />
<br />
* If the mouse is over the sidebar or a button, you can now use the mouse scrollwheel to control them and it won't affect the camera zoom.<br />
<br />
* Fixed a bug where if a ui element had a mouseover flag set on it, and then it was hidden or its window was hidden, it would still have the mouseover flag set the next time it was brought back around.<br />
<br />
* When upgrading a mark 1+ unit to a higher-level one, it now shows you the improvements in cap, attack power, and health. Suddenly you can make decisions!<br />
** Thanks to Badger for suggesting this, and so many other things. We've kind of stopped thanking him much, since he's now a relatively core part of the dev team, albeit in a volunteer capacity.<br />
<br />
* Infrastructure category construction can now only happen on planets controlled by (any) player.<br />
** This helps to inherently clear up some confusion that otherwise could happen, and it's also yet another reason to hold territory versus (for instance) leaving it unclaimed but building constructors there. You can build the constructors, lose the planet, but not rebuild them until you re-take the planet.<br />
<br />
* The "Build Patterns" are now a new "Quick Defense" section in the build tab of the sidebar, which have a really nice name and description setup.<br />
<br />
* The queue-based constructors are all now shown at once for a planet in the construction sidebar, and you can toggle things for each of them right from one interface.<br />
** The queues are no longer shown, but instead you just have "is on" or not, with a toggle.<br />
** There is also a global pause for the entire queue, but otherwise it's assumed to loop, and just does one unit at a time.<br />
** This simplification of the build screen is a big deal in that you can quickly see what you can build and what type of resource (power/fuel) it takes to run it. Managing groups of constructors is child's play, now, too.<br />
<br />
* When seeing the cap for a ship in the popup next to the sidebar, it now notes if that's a per-planet cap or a galaxy-wide one.<br />
<br />
== Version 0.716 Activating Mk4 Grinding Machine ==<br />
(Released March 28th, 2018)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
* Fix a bug with the Nanocaust where it could desync in multiplayer<br />
* The Nanocaust will now reinforce a planet that is under attack <br />
<br />
* Revised the unit tooltips to show HP and DPS in terms of individual ships (visual things on the screen) instead of squads (groups that you actually control).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Defense Response-Time Rebalancing ===<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** But you do get more time to attack between waves, and generally have a longer warning time to get your fleet back if you need to.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* All ships movement speed increased by roughly 20%, to see if that helps avoid the game feeling sluggish and makes it easier for the player to attack between waves.<br />
** Note that we don't want to make ships much faster for tactical reasons, otherwise the range of ships becomes a lot less interesting (i.e. if a short-range ship can close with a long-range ship so fast that the latter doesn't really have much advantage).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turrets and Tractor Arrays base strength multiplier from 3 => 5.<br />
** For several turret types the increase went primarily to HP instead of DPS, by way of changing Structure-defense turrets to Armor or Jammer, and by increasing their durability class (which spends DPS to buy HP).<br />
** So in general you'll be less reliant on bringing your mobile fleet back to defend against a wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turret and Tractor array power costs have been redone so that all the short-range ones have low power costs (like the needler turrets already had), medium-range ones have moderate power costs, and long-range and sniper-range ones have higher power costs.<br />
** This is to account for the difficulty of defending multiple individual wormholes, and generally the inability of a turret to do anything outside its range.<br />
** On the flip side, if you can concentrate the enemy into one place, you can pack an inordinately high amount of firepower into that small space, especially considering how much higher-dps short-range weapons already were.<br />
** Overall, this is yet another change to make it easier for you to manage waves without pulling your fleet back.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30677AI War 2:Final Pre-Beta Checks2018-04-03T03:46:39Z<p>Keith.lamothe: /* Version 0.718 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.719 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
== Version 0.718 A Wild GUI Appears ==<br />
(Released April 2nd, 2018)<br />
<br />
* The GUI in general is now vastly more responsive, and only run from the main thread.<br />
** There are certain sections that can be majorly messed up by the activity of background threads, but we're going to be taking a general try/catch approach with those. My joking note in the code, though accurate, is "sometimes bad things happen to good threads." These instances that cause nullrefs or index out of range exceptions are not frequent enough to be a performance hog, but trying to sync a lot of the gui logic between threads was leading to a sense of subtle lag even though it might be running at 200fps. There were certain kinds of calculations that we previously couldn't do, either.<br />
** Generally speaking, there are now methods that are called Volatile that used to be called FromAnyThread. In those, the assumption should be that any sim-side piece of data might disappear or change at any moment. It's up to each individual control as to how to handle that on a case-by-case basis.<br />
<br />
* Fixed an amusing bug where if you were not spending any metal, it was assuming something was wrong and therefore it wouldn't show your net metal income (which is just your metal income). Now it gives it 0.8 seconds of being unpaused before going "okay, I guess you're just thrifty, here's what you're earning."<br />
<br />
* If a ship is upgraded while in a control group, the upgraded version of that ship now is still in that control group<br />
** Thanks to Pluto011 for reporting. I guess Pluto really is still a planet after all<br />
<br />
* The B and T hotkeys now work for switching to the build and tech tabs again.<br />
** There are also hotkeys for the Ops, Ships, and Objectives tabs of the sidebar, which are all default-unbound right now.<br />
<br />
* Fixed a bug where any item in the science screen that didn't have a weapon would fail to show a tooltip.<br />
<br />
* The white ring around the planet area mysteriously stopped showing in the recent release, and we've decided to just remove it in general. It was unsightly, and thanks to the asteroid field is not even needed. The asteroids can be a bit on the subtle side, but you're not really going out there near the edge anyway, so it doesn't need to be blaring in your face at far zooms.<br />
<br />
* The planet standing orders have been hidden for now, since they weren't working anyway. They're to be reimplemented a different way.<br />
<br />
* The quick defenses and policies sections of the build sidebar now collapse properly.<br />
** Also fixed the issue with the constructors not being able to be minimized and maximized, and made progress on the issue with the constructor pause button and such, though that isn't resolved yet.<br />
<br />
* Fixed an on-startup warning that PowerDist couldn't be found in the arcenui bundle.<br />
<br />
* Fixed a bug where Space Docks, Starship Constructors, and Advanced Starship Constructors were not ever available for construction in the prior version because they were not flagged as builders in the new rollup for that.<br />
** This, incidentally, made it literally impossible to build starships.<br />
<br />
* The sidebar now shows the percent progress of each item being queue-built where it would otherwise show the remaining cap for that item. This really helps you see what's going on, and how much longer it's going to be, etc. Before, even with the new GUI, things felt extremely blind.<br />
<br />
* Fixed a frustrating longstanding issue from the tooltips where they would lag behind on their sizing and text updates, with their background updates even further behind. This was particularly noticeable with the new sidebar tooltips, but not actually new with them. It's fixed for all the kinds of tooltips, now.<br />
<br />
* Fixed a bug with forcefields showing up in strange places.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Autosave defaults to 10 minutes now, instead of 1 minute.<br />
** Thanks to chemical_art for pointing this out<br />
<br />
* Fixed a bug where the unit tooltips still showed squad health instead of the health of an individual visual-thing.<br />
** Thanks to chemical_art for reporting.<br />
<br />
* A third Ark design, the second commissioned by kickstarter backers, is now in place: The Orchid.<br />
** More info will be available on it soon, but it's basically an absolutely massive flower that humans built a spaceship inside of. A lot of cool backstory lore has been batted around for this, but we'll have that actually in place probably later this week.<br />
** And as a reminder, you can't actually see these in-game yet, though you can select them in the profile select screen. Coming soon on that, apologies!<br />
** Here's a video where you can see it, though: https://youtu.be/6Jzh7yD9J0I<br />
<br />
* Fixed a couple of nullref exceptions that would happen when you lost the game, previously.<br />
<br />
* Most of the shot visuals are now in place, although without trails of any sort at the moment.<br />
** They also now do some auto-scaling based on how far away from the camera they are, so that you can still see them when way zoomed out, but they don't appear ginormous when you're zoomed way in.<br />
** All of the projectile-style shots are accounted for. Various ones that are beam-weapon style or other specialty effects are not addressed at all just yet.<br />
** The sound effects for all of these shots are also now in use, which makes battles sound quite different.<br />
** More to come with these bits; right now, fast-moving shots are almost impossible to see, for instance.<br />
<br />
* All AI planets immediately next to a player starting planet now get roughly 1/4 the defenses they would normally get, and all AI planets one hop further out get roughly 3/4 the defenses they would normally get.<br />
** The idea is to switch back to AIWC's philosophy of "you should be able to steamroll your immediate neighbors", because the AI hasn't fortified against you and isn't taking you seriously... yet.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Fuel costs have increased again across the board, since once the player was off the ground at all they'd run out of ship-cap long before they ran out of fuel.<br />
** Thanks to Magnus for inspiring this change.<br />
<br />
* Starships now cost massively more metal and fuel than fleet ships (and way more metal than turrets), but are now balanced at a baseline about 3x as high as they were (and fleet ships still are).<br />
** This is to the extent that you can't field your starting triangle ships AND even a single starship on your starting fuel. Since the neighboring AI planets are such pushovers now it won't really matter, but when you get enough fuel to support a starship it's a significant deal.<br />
** The idea being to further distinguish fleet ships from starships:<br />
*** Fleet ships build quickly, cheaply, and wherever you have a flagship, and are relatively easy on the fuel.<br />
*** Starships are very expensive, and if you lose one it's a big deal because you can't replace it in the field (and it's going to cost a lot of metal). But you also get much more strength per unit of Science (but still not as much as Turrets).<br />
** Thanks to chemical_art for inspiring these changes.<br />
<br />
* Planetary Controllers now have a very basic level of Tachyon output, so a defending planet will never be completely unable to decloak enemy cloaked ships (it would just take a really long time against a big swarm).<br />
<br />
* The Regenerator Golem's health "cost" for regenerating a unit has been increased to 3x of what it was (it was and is proportional to the strength of the regenerated unit).<br />
** Thanks to Magnus for inspiring this change.<br />
<br />
* The number of power distribution nodes on each planet has been halved, to make them less distracting and more individually significant.<br />
** Thanks to etheric for suggesting.<br />
<br />
* Fixed an issue where reclaiming a planet you'd lost would cost more AIP.<br />
** Thanks to BadgerBadger for reporting.<br />
<br />
* Greatly improved the performance of having many tractor emitters on one planet, especially when there's not many potential targets for those targets.<br />
** Thanks to BadgerBadger for the test-case save.<br />
<br />
== Version 0.717 Public Beta Branch ==<br />
(Released March 29th, 2018)<br />
<br />
* The main menu no longer has a ship at all, and instead has asteroids flying past pretty fast.<br />
** It also has two versions of earth: a red and black burned out version representing the humans, and a blue and cyan circuit-board-covered one representing the AI. The human earth orbits strangely, while the AI earth orbits much more calmly in place.<br />
<br />
* The new space skyboxes were messed up in general, but are now fixed.<br />
<br />
* The King icon was previously showing as pretty blurry because of all the thin lines. It's now a star with a circle instead of a Chess-style king icon.<br />
** Additionally, all of the ship icons for the sidebar in particular will show up with more clarity at both larger and smaller scales based on your screen size.<br />
<br />
* Flagship is now a new SpecialEntityType.<br />
<br />
* Instead of the KingUnits rollup, which was being incorrectly used (actually nowhere), there are now rollups for KingUnitsOnly, KingsAndFlagships, and Builders.<br />
** KingsAndFlagships is actually what is needed for... well, nothing right now, but something soon, surely.<br />
** Builders includes controllers as well.<br />
<br />
* A new icon for the power distribution nodes is now in place.<br />
<br />
* Added a bit of a soft bevel to the interior of the ship gimbal icons. Not sure if we'll keep exactly that styling, but it does help make ships in a mass more distinct from one another. We'll see how that evolves.<br />
<br />
=== GUI Overhaul, Part 1: The Glorious Sidebar ===<br />
<br />
* The top bar has been completely reimagined, as has the lower-left bar... and the right-hand sidebar... and the build and science menus... who are we kidding, this a whole new UI, and we're not even done yet.<br />
** Massive thanks to Eric T. Edwards really can't begin to cover this.<br />
<br />
* There are now two types of at-mouse tooltips, one wide and one narrow.<br />
** They both now size themselves a bit more accurately in terms of their background panel width compared to their contents.<br />
<br />
* All of the hacking stuff now has proper names and descriptions, so you can actually tell what things do if you aren't versed in play of the first game.<br />
** It also directly shows you the hacking cost of items in the hacking menu, and reds it out if you can't hack for some reason, as well as telling you WHY you can't hack the thing.<br />
<br />
* If the mouse is over the sidebar or a button, you can now use the mouse scrollwheel to control them and it won't affect the camera zoom.<br />
<br />
* Fixed a bug where if a ui element had a mouseover flag set on it, and then it was hidden or its window was hidden, it would still have the mouseover flag set the next time it was brought back around.<br />
<br />
* When upgrading a mark 1+ unit to a higher-level one, it now shows you the improvements in cap, attack power, and health. Suddenly you can make decisions!<br />
** Thanks to Badger for suggesting this, and so many other things. We've kind of stopped thanking him much, since he's now a relatively core part of the dev team, albeit in a volunteer capacity.<br />
<br />
* Infrastructure category construction can now only happen on planets controlled by (any) player.<br />
** This helps to inherently clear up some confusion that otherwise could happen, and it's also yet another reason to hold territory versus (for instance) leaving it unclaimed but building constructors there. You can build the constructors, lose the planet, but not rebuild them until you re-take the planet.<br />
<br />
* The "Build Patterns" are now a new "Quick Defense" section in the build tab of the sidebar, which have a really nice name and description setup.<br />
<br />
* The queue-based constructors are all now shown at once for a planet in the construction sidebar, and you can toggle things for each of them right from one interface.<br />
** The queues are no longer shown, but instead you just have "is on" or not, with a toggle.<br />
** There is also a global pause for the entire queue, but otherwise it's assumed to loop, and just does one unit at a time.<br />
** This simplification of the build screen is a big deal in that you can quickly see what you can build and what type of resource (power/fuel) it takes to run it. Managing groups of constructors is child's play, now, too.<br />
<br />
* When seeing the cap for a ship in the popup next to the sidebar, it now notes if that's a per-planet cap or a galaxy-wide one.<br />
<br />
== Version 0.716 Activating Mk4 Grinding Machine ==<br />
(Released March 28th, 2018)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
* Fix a bug with the Nanocaust where it could desync in multiplayer<br />
* The Nanocaust will now reinforce a planet that is under attack <br />
<br />
* Revised the unit tooltips to show HP and DPS in terms of individual ships (visual things on the screen) instead of squads (groups that you actually control).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Defense Response-Time Rebalancing ===<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** But you do get more time to attack between waves, and generally have a longer warning time to get your fleet back if you need to.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* All ships movement speed increased by roughly 20%, to see if that helps avoid the game feeling sluggish and makes it easier for the player to attack between waves.<br />
** Note that we don't want to make ships much faster for tactical reasons, otherwise the range of ships becomes a lot less interesting (i.e. if a short-range ship can close with a long-range ship so fast that the latter doesn't really have much advantage).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turrets and Tractor Arrays base strength multiplier from 3 => 5.<br />
** For several turret types the increase went primarily to HP instead of DPS, by way of changing Structure-defense turrets to Armor or Jammer, and by increasing their durability class (which spends DPS to buy HP).<br />
** So in general you'll be less reliant on bringing your mobile fleet back to defend against a wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turret and Tractor array power costs have been redone so that all the short-range ones have low power costs (like the needler turrets already had), medium-range ones have moderate power costs, and long-range and sniper-range ones have higher power costs.<br />
** This is to account for the difficulty of defending multiple individual wormholes, and generally the inability of a turret to do anything outside its range.<br />
** On the flip side, if you can concentrate the enemy into one place, you can pack an inordinately high amount of firepower into that small space, especially considering how much higher-dps short-range weapons already were.<br />
** Overall, this is yet another change to make it easier for you to manage waves without pulling your fleet back.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30676AI War 2:Final Pre-Beta Checks2018-04-03T03:45:05Z<p>Keith.lamothe: /* Version 0.718 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.718 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* The GUI in general is now vastly more responsive, and only run from the main thread.<br />
** There are certain sections that can be majorly messed up by the activity of background threads, but we're going to be taking a general try/catch approach with those. My joking note in the code, though accurate, is "sometimes bad things happen to good threads." These instances that cause nullrefs or index out of range exceptions are not frequent enough to be a performance hog, but trying to sync a lot of the gui logic between threads was leading to a sense of subtle lag even though it might be running at 200fps. There were certain kinds of calculations that we previously couldn't do, either.<br />
** Generally speaking, there are now methods that are called Volatile that used to be called FromAnyThread. In those, the assumption should be that any sim-side piece of data might disappear or change at any moment. It's up to each individual control as to how to handle that on a case-by-case basis.<br />
<br />
* Fixed an amusing bug where if you were not spending any metal, it was assuming something was wrong and therefore it wouldn't show your net metal income (which is just your metal income). Now it gives it 0.8 seconds of being unpaused before going "okay, I guess you're just thrifty, here's what you're earning."<br />
<br />
* If a ship is upgraded while in a control group, the upgraded version of that ship now is still in that control group<br />
** Thanks to Pluto011 for reporting. I guess Pluto really is still a planet after all<br />
<br />
* The B and T hotkeys now work for switching to the build and tech tabs again.<br />
** There are also hotkeys for the Ops, Ships, and Objectives tabs of the sidebar, which are all default-unbound right now.<br />
<br />
* Fixed a bug where any item in the science screen that didn't have a weapon would fail to show a tooltip.<br />
<br />
* The white ring around the planet area mysteriously stopped showing in the recent release, and we've decided to just remove it in general. It was unsightly, and thanks to the asteroid field is not even needed. The asteroids can be a bit on the subtle side, but you're not really going out there near the edge anyway, so it doesn't need to be blaring in your face at far zooms.<br />
<br />
* The planet standing orders have been hidden for now, since they weren't working anyway. They're to be reimplemented a different way.<br />
<br />
* The quick defenses and policies sections of the build sidebar now collapse properly.<br />
** Also fixed the issue with the constructors not being able to be minimized and maximized, and made progress on the issue with the constructor pause button and such, though that isn't resolved yet.<br />
<br />
* Fixed an on-startup warning that PowerDist couldn't be found in the arcenui bundle.<br />
<br />
* Fixed a bug where Space Docks, Starship Constructors, and Advanced Starship Constructors were not ever available for construction in the prior version because they were not flagged as builders in the new rollup for that.<br />
** This, incidentally, made it literally impossible to build starships.<br />
<br />
* The sidebar now shows the percent progress of each item being queue-built where it would otherwise show the remaining cap for that item. This really helps you see what's going on, and how much longer it's going to be, etc. Before, even with the new GUI, things felt extremely blind.<br />
<br />
* Fixed a frustrating longstanding issue from the tooltips where they would lag behind on their sizing and text updates, with their background updates even further behind. This was particularly noticeable with the new sidebar tooltips, but not actually new with them. It's fixed for all the kinds of tooltips, now.<br />
<br />
* Fixed a bug with forcefields showing up in strange places.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Autosave defaults to 10 minutes now, instead of 1 minute.<br />
** Thanks to chemical_art for pointing this out<br />
<br />
* Fixed a bug where the unit tooltips still showed squad health instead of the health of an individual visual-thing.<br />
** Thanks to chemical_art for reporting.<br />
<br />
* A third Ark design, the second commissioned by kickstarter backers, is now in place: The Orchid.<br />
** More info will be available on it soon, but it's basically an absolutely massive flower that humans built a spaceship inside of. A lot of cool backstory lore has been batted around for this, but we'll have that actually in place probably later this week.<br />
** And as a reminder, you can't actually see these in-game yet, though you can select them in the profile select screen. Coming soon on that, apologies!<br />
** Here's a video where you can see it, though: https://youtu.be/6Jzh7yD9J0I<br />
<br />
* Fixed a couple of nullref exceptions that would happen when you lost the game, previously.<br />
<br />
* Most of the shot visuals are now in place, although without trails of any sort at the moment.<br />
** They also now do some auto-scaling based on how far away from the camera they are, so that you can still see them when way zoomed out, but they don't appear ginormous when you're zoomed way in.<br />
** All of the projectile-style shots are accounted for. Various ones that are beam-weapon style or other specialty effects are not addressed at all just yet.<br />
** The sound effects for all of these shots are also now in use, which makes battles sound quite different.<br />
** More to come with these bits; right now, fast-moving shots are almost impossible to see, for instance.<br />
<br />
* All AI planets immediately next to a player starting planet now get roughly 1/4 the defenses they would normally get, and all AI planets one hop further out get roughly 3/4 the defenses they would normally get.<br />
** The idea is to switch back to AIWC's philosophy of "you should be able to steamroll your immediate neighbors", because the AI hasn't fortified against you and isn't taking you seriously... yet.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Fuel costs have increased again across the board, since once the player was off the ground at all they'd run out of ship-cap long before they ran out of fuel.<br />
** Thanks to Magnus for inspiring this change.<br />
<br />
* Starships now cost massively more metal and fuel than fleet ships (and way more metal than turrets), but are now balanced at a baseline about 3x as high as they were (and fleet ships still are).<br />
** This is to the extent that you can't field your starting triangle ships AND even a single starship on your starting fuel. Since the neighboring AI planets are such pushovers now it won't really matter, but when you get enough fuel to support a starship it's a significant deal.<br />
** The idea being to further distinguish fleet ships from starships:<br />
*** Fleet ships build quickly, cheaply, and wherever you have a flagship, and are relatively easy on the fuel.<br />
*** Starships are very expensive, and if you lose one it's a big deal because you can't replace it in the field (and it's going to cost a lot of metal). But you also get much more strength per unit of Science (but still not as much as Turrets).<br />
** Thanks to chemical_art for inspiring these changes.<br />
<br />
* Planetary Controllers now have a very basic level of Tachyon output, so a defending planet will never be completely unable to decloak enemy cloaked ships (it would just take a really long time against a big swarm).<br />
<br />
* The Regenerator Golem's health "cost" for regenerating a unit has been increased to 3x of what it was (it was and is proportional to the strength of the regenerated unit).<br />
** Thanks to Magnus for inspiring this change.<br />
<br />
* The number of power distribution nodes on each planet has been halved, to make them less distracting and more individually significant.<br />
** Thanks to etheric for suggesting.<br />
<br />
* Fixed an issue where reclaiming a planet you'd lost would cost more AIP.<br />
** Thanks to BadgerBadger for reporting.<br />
<br />
* Greatly improved the performance of having many tractor emitters on one planet, especially when there's not many potential targets for those targets.<br />
** Thanks to BadgerBadger for the test-case save.<br />
<br />
== Version 0.717 Public Beta Branch ==<br />
(Released March 29th, 2018)<br />
<br />
* The main menu no longer has a ship at all, and instead has asteroids flying past pretty fast.<br />
** It also has two versions of earth: a red and black burned out version representing the humans, and a blue and cyan circuit-board-covered one representing the AI. The human earth orbits strangely, while the AI earth orbits much more calmly in place.<br />
<br />
* The new space skyboxes were messed up in general, but are now fixed.<br />
<br />
* The King icon was previously showing as pretty blurry because of all the thin lines. It's now a star with a circle instead of a Chess-style king icon.<br />
** Additionally, all of the ship icons for the sidebar in particular will show up with more clarity at both larger and smaller scales based on your screen size.<br />
<br />
* Flagship is now a new SpecialEntityType.<br />
<br />
* Instead of the KingUnits rollup, which was being incorrectly used (actually nowhere), there are now rollups for KingUnitsOnly, KingsAndFlagships, and Builders.<br />
** KingsAndFlagships is actually what is needed for... well, nothing right now, but something soon, surely.<br />
** Builders includes controllers as well.<br />
<br />
* A new icon for the power distribution nodes is now in place.<br />
<br />
* Added a bit of a soft bevel to the interior of the ship gimbal icons. Not sure if we'll keep exactly that styling, but it does help make ships in a mass more distinct from one another. We'll see how that evolves.<br />
<br />
=== GUI Overhaul, Part 1: The Glorious Sidebar ===<br />
<br />
* The top bar has been completely reimagined, as has the lower-left bar... and the right-hand sidebar... and the build and science menus... who are we kidding, this a whole new UI, and we're not even done yet.<br />
** Massive thanks to Eric T. Edwards really can't begin to cover this.<br />
<br />
* There are now two types of at-mouse tooltips, one wide and one narrow.<br />
** They both now size themselves a bit more accurately in terms of their background panel width compared to their contents.<br />
<br />
* All of the hacking stuff now has proper names and descriptions, so you can actually tell what things do if you aren't versed in play of the first game.<br />
** It also directly shows you the hacking cost of items in the hacking menu, and reds it out if you can't hack for some reason, as well as telling you WHY you can't hack the thing.<br />
<br />
* If the mouse is over the sidebar or a button, you can now use the mouse scrollwheel to control them and it won't affect the camera zoom.<br />
<br />
* Fixed a bug where if a ui element had a mouseover flag set on it, and then it was hidden or its window was hidden, it would still have the mouseover flag set the next time it was brought back around.<br />
<br />
* When upgrading a mark 1+ unit to a higher-level one, it now shows you the improvements in cap, attack power, and health. Suddenly you can make decisions!<br />
** Thanks to Badger for suggesting this, and so many other things. We've kind of stopped thanking him much, since he's now a relatively core part of the dev team, albeit in a volunteer capacity.<br />
<br />
* Infrastructure category construction can now only happen on planets controlled by (any) player.<br />
** This helps to inherently clear up some confusion that otherwise could happen, and it's also yet another reason to hold territory versus (for instance) leaving it unclaimed but building constructors there. You can build the constructors, lose the planet, but not rebuild them until you re-take the planet.<br />
<br />
* The "Build Patterns" are now a new "Quick Defense" section in the build tab of the sidebar, which have a really nice name and description setup.<br />
<br />
* The queue-based constructors are all now shown at once for a planet in the construction sidebar, and you can toggle things for each of them right from one interface.<br />
** The queues are no longer shown, but instead you just have "is on" or not, with a toggle.<br />
** There is also a global pause for the entire queue, but otherwise it's assumed to loop, and just does one unit at a time.<br />
** This simplification of the build screen is a big deal in that you can quickly see what you can build and what type of resource (power/fuel) it takes to run it. Managing groups of constructors is child's play, now, too.<br />
<br />
* When seeing the cap for a ship in the popup next to the sidebar, it now notes if that's a per-planet cap or a galaxy-wide one.<br />
<br />
== Version 0.716 Activating Mk4 Grinding Machine ==<br />
(Released March 28th, 2018)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
* Fix a bug with the Nanocaust where it could desync in multiplayer<br />
* The Nanocaust will now reinforce a planet that is under attack <br />
<br />
* Revised the unit tooltips to show HP and DPS in terms of individual ships (visual things on the screen) instead of squads (groups that you actually control).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Defense Response-Time Rebalancing ===<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** But you do get more time to attack between waves, and generally have a longer warning time to get your fleet back if you need to.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* All ships movement speed increased by roughly 20%, to see if that helps avoid the game feeling sluggish and makes it easier for the player to attack between waves.<br />
** Note that we don't want to make ships much faster for tactical reasons, otherwise the range of ships becomes a lot less interesting (i.e. if a short-range ship can close with a long-range ship so fast that the latter doesn't really have much advantage).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turrets and Tractor Arrays base strength multiplier from 3 => 5.<br />
** For several turret types the increase went primarily to HP instead of DPS, by way of changing Structure-defense turrets to Armor or Jammer, and by increasing their durability class (which spends DPS to buy HP).<br />
** So in general you'll be less reliant on bringing your mobile fleet back to defend against a wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turret and Tractor array power costs have been redone so that all the short-range ones have low power costs (like the needler turrets already had), medium-range ones have moderate power costs, and long-range and sniper-range ones have higher power costs.<br />
** This is to account for the difficulty of defending multiple individual wormholes, and generally the inability of a turret to do anything outside its range.<br />
** On the flip side, if you can concentrate the enemy into one place, you can pack an inordinately high amount of firepower into that small space, especially considering how much higher-dps short-range weapons already were.<br />
** Overall, this is yet another change to make it easier for you to manage waves without pulling your fleet back.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30668AI War 2:Final Pre-Beta Checks2018-03-31T17:54:18Z<p>Keith.lamothe: /* Version 0.718 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.718 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* The GUI in general is now vastly more responsive, and only run from the main thread.<br />
** There are certain sections that can be majorly messed up by the activity of background threads, but we're going to be taking a general try/catch approach with those. My joking note in the code, though accurate, is "sometimes bad things happen to good threads." These instances that cause nullrefs or index out of range exceptions are not frequent enough to be a performance hog, but trying to sync a lot of the gui logic between threads was leading to a sense of subtle lag even though it might be running at 200fps. There were certain kinds of calculations that we previously couldn't do, either.<br />
** Generally speaking, there are now methods that are called Volatile that used to be called FromAnyThread. In those, the assumption should be that any sim-side piece of data might disappear or change at any moment. It's up to each individual control as to how to handle that on a case-by-case basis.<br />
<br />
* Fixed an amusing bug where if you were not spending any metal, it was assuming something was wrong and therefore it wouldn't show your net metal income (which is just your metal income). Now it gives it 0.8 seconds of being unpaused before going "okay, I guess you're just thrifty, here's what you're earning."<br />
<br />
* If a ship is upgraded while in a control group, the upgraded version of that ship now is still in that control group<br />
** Thanks to Pluto011 for reporting. I guess Pluto really is still a planet after all<br />
<br />
* The B and T hotkeys now work for switching to the build and tech tabs again.<br />
** There are also hotkeys for the Ops, Ships, and Objectives tabs of the sidebar, which are all default-unbound right now.<br />
<br />
* Fixed a bug where any item in the science screen that didn't have a weapon would fail to show a tooltip.<br />
<br />
* The white ring around the planet area mysteriously stopped showing in the recent release, and we've decided to just remove it in general. It was unsightly, and thanks to the asteroid field is not even needed. The asteroids can be a bit on the subtle side, but you're not really going out there near the edge anyway, so it doesn't need to be blaring in your face at far zooms.<br />
<br />
* The planet standing orders have been hidden for now, since they weren't working anyway. They're to be reimplemented a different way.<br />
<br />
* The quick defenses and policies sections of the build sidebar now collapse properly.<br />
** Also fixed the issue with the constructors not being able to be minimized and maximized, and made progress on the issue with the constructor pause button and such, though that isn't resolved yet.<br />
<br />
* Fixed an on-startup warning that PowerDist couldn't be found in the arcenui bundle.<br />
<br />
* Fixed a bug where Space Docks, Starship Constructors, and Advanced Starship Constructors were not ever available for construction in the prior version because they were not flagged as builders in the new rollup for that.<br />
** This, incidentally, made it literally impossible to build starships.<br />
<br />
* The sidebar now shows the percent progress of each item being queue-built where it would otherwise show the remaining cap for that item. This really helps you see what's going on, and how much longer it's going to be, etc. Before, even with the new GUI, things felt extremely blind.<br />
<br />
* Fixed a frustrating longstanding issue from the tooltips where they would lag behind on their sizing and text updates, with their background updates even further behind. This was particularly noticeable with the new sidebar tooltips, but not actually new with them. It's fixed for all the kinds of tooltips, now.<br />
<br />
* Fixed a bug with forcefields showing up in strange places.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Autosave defaults to 10 minutes now, instead of 1 minute.<br />
** Thanks to chemical_art for pointing this out<br />
<br />
* Fixed a bug where the unit tooltips still showed squad health instead of the health of an individual visual-thing.<br />
** Thanks to chemical_art for reporting.<br />
<br />
== Version 0.717 Public Beta Branch ==<br />
(Released March 29th, 2018)<br />
<br />
* The main menu no longer has a ship at all, and instead has asteroids flying past pretty fast.<br />
** It also has two versions of earth: a red and black burned out version representing the humans, and a blue and cyan circuit-board-covered one representing the AI. The human earth orbits strangely, while the AI earth orbits much more calmly in place.<br />
<br />
* The new space skyboxes were messed up in general, but are now fixed.<br />
<br />
* The King icon was previously showing as pretty blurry because of all the thin lines. It's now a star with a circle instead of a Chess-style king icon.<br />
** Additionally, all of the ship icons for the sidebar in particular will show up with more clarity at both larger and smaller scales based on your screen size.<br />
<br />
* Flagship is now a new SpecialEntityType.<br />
<br />
* Instead of the KingUnits rollup, which was being incorrectly used (actually nowhere), there are now rollups for KingUnitsOnly, KingsAndFlagships, and Builders.<br />
** KingsAndFlagships is actually what is needed for... well, nothing right now, but something soon, surely.<br />
** Builders includes controllers as well.<br />
<br />
* A new icon for the power distribution nodes is now in place.<br />
<br />
* Added a bit of a soft bevel to the interior of the ship gimbal icons. Not sure if we'll keep exactly that styling, but it does help make ships in a mass more distinct from one another. We'll see how that evolves.<br />
<br />
=== GUI Overhaul, Part 1: The Glorious Sidebar ===<br />
<br />
* The top bar has been completely reimagined, as has the lower-left bar... and the right-hand sidebar... and the build and science menus... who are we kidding, this a whole new UI, and we're not even done yet.<br />
** Massive thanks to Eric T. Edwards really can't begin to cover this.<br />
<br />
* There are now two types of at-mouse tooltips, one wide and one narrow.<br />
** They both now size themselves a bit more accurately in terms of their background panel width compared to their contents.<br />
<br />
* All of the hacking stuff now has proper names and descriptions, so you can actually tell what things do if you aren't versed in play of the first game.<br />
** It also directly shows you the hacking cost of items in the hacking menu, and reds it out if you can't hack for some reason, as well as telling you WHY you can't hack the thing.<br />
<br />
* If the mouse is over the sidebar or a button, you can now use the mouse scrollwheel to control them and it won't affect the camera zoom.<br />
<br />
* Fixed a bug where if a ui element had a mouseover flag set on it, and then it was hidden or its window was hidden, it would still have the mouseover flag set the next time it was brought back around.<br />
<br />
* When upgrading a mark 1+ unit to a higher-level one, it now shows you the improvements in cap, attack power, and health. Suddenly you can make decisions!<br />
** Thanks to Badger for suggesting this, and so many other things. We've kind of stopped thanking him much, since he's now a relatively core part of the dev team, albeit in a volunteer capacity.<br />
<br />
* Infrastructure category construction can now only happen on planets controlled by (any) player.<br />
** This helps to inherently clear up some confusion that otherwise could happen, and it's also yet another reason to hold territory versus (for instance) leaving it unclaimed but building constructors there. You can build the constructors, lose the planet, but not rebuild them until you re-take the planet.<br />
<br />
* The "Build Patterns" are now a new "Quick Defense" section in the build tab of the sidebar, which have a really nice name and description setup.<br />
<br />
* The queue-based constructors are all now shown at once for a planet in the construction sidebar, and you can toggle things for each of them right from one interface.<br />
** The queues are no longer shown, but instead you just have "is on" or not, with a toggle.<br />
** There is also a global pause for the entire queue, but otherwise it's assumed to loop, and just does one unit at a time.<br />
** This simplification of the build screen is a big deal in that you can quickly see what you can build and what type of resource (power/fuel) it takes to run it. Managing groups of constructors is child's play, now, too.<br />
<br />
* When seeing the cap for a ship in the popup next to the sidebar, it now notes if that's a per-planet cap or a galaxy-wide one.<br />
<br />
== Version 0.716 Activating Mk4 Grinding Machine ==<br />
(Released March 28th, 2018)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
* Fix a bug with the Nanocaust where it could desync in multiplayer<br />
* The Nanocaust will now reinforce a planet that is under attack <br />
<br />
* Revised the unit tooltips to show HP and DPS in terms of individual ships (visual things on the screen) instead of squads (groups that you actually control).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Defense Response-Time Rebalancing ===<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** But you do get more time to attack between waves, and generally have a longer warning time to get your fleet back if you need to.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* All ships movement speed increased by roughly 20%, to see if that helps avoid the game feeling sluggish and makes it easier for the player to attack between waves.<br />
** Note that we don't want to make ships much faster for tactical reasons, otherwise the range of ships becomes a lot less interesting (i.e. if a short-range ship can close with a long-range ship so fast that the latter doesn't really have much advantage).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turrets and Tractor Arrays base strength multiplier from 3 => 5.<br />
** For several turret types the increase went primarily to HP instead of DPS, by way of changing Structure-defense turrets to Armor or Jammer, and by increasing their durability class (which spends DPS to buy HP).<br />
** So in general you'll be less reliant on bringing your mobile fleet back to defend against a wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turret and Tractor array power costs have been redone so that all the short-range ones have low power costs (like the needler turrets already had), medium-range ones have moderate power costs, and long-range and sniper-range ones have higher power costs.<br />
** This is to account for the difficulty of defending multiple individual wormholes, and generally the inability of a turret to do anything outside its range.<br />
** On the flip side, if you can concentrate the enemy into one place, you can pack an inordinately high amount of firepower into that small space, especially considering how much higher-dps short-range weapons already were.<br />
** Overall, this is yet another change to make it easier for you to manage waves without pulling your fleet back.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30667AI War 2:Final Pre-Beta Checks2018-03-31T17:53:55Z<p>Keith.lamothe: /* Version 0.718 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.718 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* The GUI in general is now vastly more responsive, and only run from the main thread.<br />
** There are certain sections that can be majorly messed up by the activity of background threads, but we're going to be taking a general try/catch approach with those. My joking note in the code, though accurate, is "sometimes bad things happen to good threads." These instances that cause nullrefs or index out of range exceptions are not frequent enough to be a performance hog, but trying to sync a lot of the gui logic between threads was leading to a sense of subtle lag even though it might be running at 200fps. There were certain kinds of calculations that we previously couldn't do, either.<br />
** Generally speaking, there are now methods that are called Volatile that used to be called FromAnyThread. In those, the assumption should be that any sim-side piece of data might disappear or change at any moment. It's up to each individual control as to how to handle that on a case-by-case basis.<br />
<br />
* Fixed an amusing bug where if you were not spending any metal, it was assuming something was wrong and therefore it wouldn't show your net metal income (which is just your metal income). Now it gives it 0.8 seconds of being unpaused before going "okay, I guess you're just thrifty, here's what you're earning."<br />
<br />
* If a ship is upgraded while in a control group, the upgraded version of that ship now is still in that control group<br />
** Thanks to Pluto011 for reporting. I guess Pluto really is still a planet after all<br />
<br />
* The B and T hotkeys now work for switching to the build and tech tabs again.<br />
** There are also hotkeys for the Ops, Ships, and Objectives tabs of the sidebar, which are all default-unbound right now.<br />
<br />
* Fixed a bug where any item in the science screen that didn't have a weapon would fail to show a tooltip.<br />
<br />
* The white ring around the planet area mysteriously stopped showing in the recent release, and we've decided to just remove it in general. It was unsightly, and thanks to the asteroid field is not even needed. The asteroids can be a bit on the subtle side, but you're not really going out there near the edge anyway, so it doesn't need to be blaring in your face at far zooms.<br />
<br />
* The planet standing orders have been hidden for now, since they weren't working anyway. They're to be reimplemented a different way.<br />
<br />
* The quick defenses and policies sections of the build sidebar now collapse properly.<br />
** Also fixed the issue with the constructors not being able to be minimized and maximized, and made progress on the issue with the constructor pause button and such, though that isn't resolved yet.<br />
<br />
* Fixed an on-startup warning that PowerDist couldn't be found in the arcenui bundle.<br />
<br />
* Fixed a bug where Space Docks, Starship Constructors, and Advanced Starship Constructors were not ever available for construction in the prior version because they were not flagged as builders in the new rollup for that.<br />
** This, incidentally, made it literally impossible to build starships.<br />
<br />
* The sidebar now shows the percent progress of each item being queue-built where it would otherwise show the remaining cap for that item. This really helps you see what's going on, and how much longer it's going to be, etc. Before, even with the new GUI, things felt extremely blind.<br />
<br />
* Fixed a frustrating longstanding issue from the tooltips where they would lag behind on their sizing and text updates, with their background updates even further behind. This was particularly noticeable with the new sidebar tooltips, but not actually new with them. It's fixed for all the kinds of tooltips, now.<br />
<br />
* Fixed a bug with forcefields showing up in strange places.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Autosave defaults to 10 minutes now, instead of 1 minute.<br />
** Thanks to chemical_art for pointing this out<br />
<br />
- fixed up a ton of consistency issues in the unit/build-internal/build-placement/science tooltips<br />
<br />
* Fixed a bug where the unit tooltips still showed squad health instead of the health of an individual visual-thing.<br />
** Thanks to chemical_art for reporting.<br />
<br />
== Version 0.717 Public Beta Branch ==<br />
(Released March 29th, 2018)<br />
<br />
* The main menu no longer has a ship at all, and instead has asteroids flying past pretty fast.<br />
** It also has two versions of earth: a red and black burned out version representing the humans, and a blue and cyan circuit-board-covered one representing the AI. The human earth orbits strangely, while the AI earth orbits much more calmly in place.<br />
<br />
* The new space skyboxes were messed up in general, but are now fixed.<br />
<br />
* The King icon was previously showing as pretty blurry because of all the thin lines. It's now a star with a circle instead of a Chess-style king icon.<br />
** Additionally, all of the ship icons for the sidebar in particular will show up with more clarity at both larger and smaller scales based on your screen size.<br />
<br />
* Flagship is now a new SpecialEntityType.<br />
<br />
* Instead of the KingUnits rollup, which was being incorrectly used (actually nowhere), there are now rollups for KingUnitsOnly, KingsAndFlagships, and Builders.<br />
** KingsAndFlagships is actually what is needed for... well, nothing right now, but something soon, surely.<br />
** Builders includes controllers as well.<br />
<br />
* A new icon for the power distribution nodes is now in place.<br />
<br />
* Added a bit of a soft bevel to the interior of the ship gimbal icons. Not sure if we'll keep exactly that styling, but it does help make ships in a mass more distinct from one another. We'll see how that evolves.<br />
<br />
=== GUI Overhaul, Part 1: The Glorious Sidebar ===<br />
<br />
* The top bar has been completely reimagined, as has the lower-left bar... and the right-hand sidebar... and the build and science menus... who are we kidding, this a whole new UI, and we're not even done yet.<br />
** Massive thanks to Eric T. Edwards really can't begin to cover this.<br />
<br />
* There are now two types of at-mouse tooltips, one wide and one narrow.<br />
** They both now size themselves a bit more accurately in terms of their background panel width compared to their contents.<br />
<br />
* All of the hacking stuff now has proper names and descriptions, so you can actually tell what things do if you aren't versed in play of the first game.<br />
** It also directly shows you the hacking cost of items in the hacking menu, and reds it out if you can't hack for some reason, as well as telling you WHY you can't hack the thing.<br />
<br />
* If the mouse is over the sidebar or a button, you can now use the mouse scrollwheel to control them and it won't affect the camera zoom.<br />
<br />
* Fixed a bug where if a ui element had a mouseover flag set on it, and then it was hidden or its window was hidden, it would still have the mouseover flag set the next time it was brought back around.<br />
<br />
* When upgrading a mark 1+ unit to a higher-level one, it now shows you the improvements in cap, attack power, and health. Suddenly you can make decisions!<br />
** Thanks to Badger for suggesting this, and so many other things. We've kind of stopped thanking him much, since he's now a relatively core part of the dev team, albeit in a volunteer capacity.<br />
<br />
* Infrastructure category construction can now only happen on planets controlled by (any) player.<br />
** This helps to inherently clear up some confusion that otherwise could happen, and it's also yet another reason to hold territory versus (for instance) leaving it unclaimed but building constructors there. You can build the constructors, lose the planet, but not rebuild them until you re-take the planet.<br />
<br />
* The "Build Patterns" are now a new "Quick Defense" section in the build tab of the sidebar, which have a really nice name and description setup.<br />
<br />
* The queue-based constructors are all now shown at once for a planet in the construction sidebar, and you can toggle things for each of them right from one interface.<br />
** The queues are no longer shown, but instead you just have "is on" or not, with a toggle.<br />
** There is also a global pause for the entire queue, but otherwise it's assumed to loop, and just does one unit at a time.<br />
** This simplification of the build screen is a big deal in that you can quickly see what you can build and what type of resource (power/fuel) it takes to run it. Managing groups of constructors is child's play, now, too.<br />
<br />
* When seeing the cap for a ship in the popup next to the sidebar, it now notes if that's a per-planet cap or a galaxy-wide one.<br />
<br />
== Version 0.716 Activating Mk4 Grinding Machine ==<br />
(Released March 28th, 2018)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
* Fix a bug with the Nanocaust where it could desync in multiplayer<br />
* The Nanocaust will now reinforce a planet that is under attack <br />
<br />
* Revised the unit tooltips to show HP and DPS in terms of individual ships (visual things on the screen) instead of squads (groups that you actually control).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Defense Response-Time Rebalancing ===<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** But you do get more time to attack between waves, and generally have a longer warning time to get your fleet back if you need to.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* All ships movement speed increased by roughly 20%, to see if that helps avoid the game feeling sluggish and makes it easier for the player to attack between waves.<br />
** Note that we don't want to make ships much faster for tactical reasons, otherwise the range of ships becomes a lot less interesting (i.e. if a short-range ship can close with a long-range ship so fast that the latter doesn't really have much advantage).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turrets and Tractor Arrays base strength multiplier from 3 => 5.<br />
** For several turret types the increase went primarily to HP instead of DPS, by way of changing Structure-defense turrets to Armor or Jammer, and by increasing their durability class (which spends DPS to buy HP).<br />
** So in general you'll be less reliant on bringing your mobile fleet back to defend against a wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turret and Tractor array power costs have been redone so that all the short-range ones have low power costs (like the needler turrets already had), medium-range ones have moderate power costs, and long-range and sniper-range ones have higher power costs.<br />
** This is to account for the difficulty of defending multiple individual wormholes, and generally the inability of a turret to do anything outside its range.<br />
** On the flip side, if you can concentrate the enemy into one place, you can pack an inordinately high amount of firepower into that small space, especially considering how much higher-dps short-range weapons already were.<br />
** Overall, this is yet another change to make it easier for you to manage waves without pulling your fleet back.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30652AI War 2:Final Pre-Beta Checks2018-03-29T00:16:18Z<p>Keith.lamothe: /* Version 0.716 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.717 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
== Version 0.716 Activating Mk4 Grinding Machine ==<br />
(Released March 28th, 2018)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
* Fix a bug with the Nanocaust where it could desync in multiplayer<br />
* The Nanocaust will now reinforce a planet that is under attack <br />
<br />
* Revised the unit tooltips to show HP and DPS in terms of individual ships (visual things on the screen) instead of squads (groups that you actually control).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Defense Response-Time Rebalancing ===<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** But you do get more time to attack between waves, and generally have a longer warning time to get your fleet back if you need to.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* All ships movement speed increased by roughly 20%, to see if that helps avoid the game feeling sluggish and makes it easier for the player to attack between waves.<br />
** Note that we don't want to make ships much faster for tactical reasons, otherwise the range of ships becomes a lot less interesting (i.e. if a short-range ship can close with a long-range ship so fast that the latter doesn't really have much advantage).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turrets and Tractor Arrays base strength multiplier from 3 => 5.<br />
** For several turret types the increase went primarily to HP instead of DPS, by way of changing Structure-defense turrets to Armor or Jammer, and by increasing their durability class (which spends DPS to buy HP).<br />
** So in general you'll be less reliant on bringing your mobile fleet back to defend against a wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turret and Tractor array power costs have been redone so that all the short-range ones have low power costs (like the needler turrets already had), medium-range ones have moderate power costs, and long-range and sniper-range ones have higher power costs.<br />
** This is to account for the difficulty of defending multiple individual wormholes, and generally the inability of a turret to do anything outside its range.<br />
** On the flip side, if you can concentrate the enemy into one place, you can pack an inordinately high amount of firepower into that small space, especially considering how much higher-dps short-range weapons already were.<br />
** Overall, this is yet another change to make it easier for you to manage waves without pulling your fleet back.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30651AI War 2:Final Pre-Beta Checks2018-03-28T23:21:58Z<p>Keith.lamothe: /* Version 0.716 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.716 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
* Fix a bug with the Nanocaust where it could desync in multiplayer<br />
* The Nanocaust will now reinforce a planet that is under attack <br />
<br />
* Revised the unit tooltips to show HP and DPS in terms of individual ships (visual things on the screen) instead of squads (groups that you actually control).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Defense Response-Time Rebalancing ===<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** But you do get more time to attack between waves, and generally have a longer warning time to get your fleet back if you need to.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* All ships movement speed increased by roughly 20%, to see if that helps avoid the game feeling sluggish and makes it easier for the player to attack between waves.<br />
** Note that we don't want to make ships much faster for tactical reasons, otherwise the range of ships becomes a lot less interesting (i.e. if a short-range ship can close with a long-range ship so fast that the latter doesn't really have much advantage).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turrets and Tractor Arrays base strength multiplier from 3 => 5.<br />
** For several turret types the increase went primarily to HP instead of DPS, by way of changing Structure-defense turrets to Armor or Jammer, and by increasing their durability class (which spends DPS to buy HP).<br />
** So in general you'll be less reliant on bringing your mobile fleet back to defend against a wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turret and Tractor array power costs have been redone so that all the short-range ones have low power costs (like the needler turrets already had), medium-range ones have moderate power costs, and long-range and sniper-range ones have higher power costs.<br />
** This is to account for the difficulty of defending multiple individual wormholes, and generally the inability of a turret to do anything outside its range.<br />
** On the flip side, if you can concentrate the enemy into one place, you can pack an inordinately high amount of firepower into that small space, especially considering how much higher-dps short-range weapons already were.<br />
** Overall, this is yet another change to make it easier for you to manage waves without pulling your fleet back.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30650AI War 2:Final Pre-Beta Checks2018-03-28T22:47:14Z<p>Keith.lamothe: /* Defense Response-Time Rebalancing */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.716 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
* Fix a bug with the Nanocaust where it could desync in multiplayer<br />
* The Nanocaust will now reinforce a planet that is under attack <br />
<br />
=== Defense Response-Time Rebalancing ===<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** But you do get more time to attack between waves, and generally have a longer warning time to get your fleet back if you need to.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* All ships movement speed increased by roughly 20%, to see if that helps avoid the game feeling sluggish and makes it easier for the player to attack between waves.<br />
** Note that we don't want to make ships much faster for tactical reasons, otherwise the range of ships becomes a lot less interesting (i.e. if a short-range ship can close with a long-range ship so fast that the latter doesn't really have much advantage).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turrets and Tractor Arrays base strength multiplier from 3 => 5.<br />
** For several turret types the increase went primarily to HP instead of DPS, by way of changing Structure-defense turrets to Armor or Jammer, and by increasing their durability class (which spends DPS to buy HP).<br />
** So in general you'll be less reliant on bringing your mobile fleet back to defend against a wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turret and Tractor array power costs have been redone so that all the short-range ones have low power costs (like the needler turrets already had), medium-range ones have moderate power costs, and long-range and sniper-range ones have higher power costs.<br />
** This is to account for the difficulty of defending multiple individual wormholes, and generally the inability of a turret to do anything outside its range.<br />
** On the flip side, if you can concentrate the enemy into one place, you can pack an inordinately high amount of firepower into that small space, especially considering how much higher-dps short-range weapons already were.<br />
** Overall, this is yet another change to make it easier for you to manage waves without pulling your fleet back.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30649AI War 2:Final Pre-Beta Checks2018-03-28T22:37:57Z<p>Keith.lamothe: /* Defense Response-Time Rebalancing */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.716 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
* Fix a bug with the Nanocaust where it could desync in multiplayer<br />
* The Nanocaust will now reinforce a planet that is under attack <br />
<br />
=== Defense Response-Time Rebalancing ===<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** But you do get more time to attack between waves, and generally have a longer warning time to get your fleet back if you need to.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* All ships movement speed increased by roughly 20%, to see if that helps avoid the game feeling sluggish and makes it easier for the player to attack between waves.<br />
** Note that we don't want to make ships much faster for tactical reasons, otherwise the range of ships becomes a lot less interesting (i.e. if a short-range ship can close with a long-range ship so fast that the latter doesn't really have much advantage).<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turrets and Tractor Arrays base strength multiplier from 3 => 5.<br />
** For several turret types the increase went primarily to HP instead of DPS, by way of changing Structure-defense turrets to Armor or Jammer, and by increasing their durability class (which spends DPS to buy HP).<br />
** So in general you'll be less reliant on bringing your mobile fleet back to defend against a wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30648AI War 2:Final Pre-Beta Checks2018-03-28T22:35:21Z<p>Keith.lamothe: /* Defense Response Time Rebalancing */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.716 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
* Fix a bug with the Nanocaust where it could desync in multiplayer<br />
* The Nanocaust will now reinforce a planet that is under attack <br />
<br />
=== Defense Response-Time Rebalancing ===<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** But you do get more time to attack between waves, and generally have a longer warning time to get your fleet back if you need to.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* All ships movement speed increased by roughly 20%, to see if that helps avoid the game feeling sluggish and makes it easier for the player to attack between waves.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* Turrets and Tractor Arrays base strength multiplier from 3 => 5.<br />
** For several turret types the increase went primarily to HP instead of DPS, by way of changing Structure-defense turrets to Armor or Jammer, and by increasing their durability class (which spends DPS to buy HP).<br />
** So in general you'll be less reliant on bringing your mobile fleet back to defend against a wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30646AI War 2:Final Pre-Beta Checks2018-03-28T21:28:11Z<p>Keith.lamothe: /* Version 0.716 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.716 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
=== Defense Response Time Rebalancing ===<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
* All ships movement speed increased by roughly 20%, to see if that helps avoid the game feeling sluggish and makes it easier for the player to respond to waves.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30645AI War 2:Final Pre-Beta Checks2018-03-28T21:24:30Z<p>Keith.lamothe: /* Version 0.716 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.716 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
** Thanks to RabidSanity for the suggestion.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
* Waves still come roughly every 5 minutes at the beginning of the game, but that interval increases with AIP until it hits 10 minutes at 100 AIP.<br />
** Note that it's still accumulating strength at the normal rate, so the longer the interval the bigger the wave.<br />
** Thanks to chemical_art for inspiring this change.<br />
<br />
=== Planet Terrain Overhaul ===<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
=== Making The Galaxy Safe For Minor Factions That Make The Galaxy Unsafe ===<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30644AI War 2:Final Pre-Beta Checks2018-03-28T17:29:17Z<p>Keith.lamothe: /* Version 0.716 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.716 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
<br />
* The different flagships now actually use the word "Flagship" in their displayed names, and the starting one is now called "Prototype Flagship" rather than the word Scout, since it's not really a scout primarily.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30643AI War 2:Final Pre-Beta Checks2018-03-28T17:18:25Z<p>Keith.lamothe: /* Version 0.716 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.716 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
* The "Evasion" defense type has been renamed "Jammers".<br />
<br />
* A new "Deflectors" defense type has been added for a small set of units including the Ark and planetary Controllers.<br />
** Currently nothing has a bonus against this.<br />
** In a future version we may switch some existing units to new anti-deflector weapons, and expand the number of deflector units.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30642AI War 2:Final Pre-Beta Checks2018-03-28T16:46:14Z<p>Keith.lamothe: /* Version 0.716 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.716 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
** Note: the Resource galaxy-display-mode is now basically broken as it will just display the controller's icon for all the different resources. A new GUI is coming soon, and there's no mechanism in the current one for showing arbitrary icons in that slot, so it's just being left as-is for now.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30641AI War 2:Final Pre-Beta Checks2018-03-28T15:41:30Z<p>Keith.lamothe: /* Version 0.716 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.716 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
* Killing an AI warp gate or controller no longer causes AIP.<br />
** Instead, the first time you claim the controller on that planet, you get the planet's worth of AIP.<br />
** Warp gates are now auto-targeted. This may change back if we come up with some other suitably devious revenge for destroying these.<br />
** The upshot is that now minor factions (i.e. Nanocaust) can take territory without raising your AIP or needing some strange counter-reduction.<br />
<br />
* Now when a non-human unit (AI or minor-faction) goes "threat", it can specify which faction it's going threat "against". The logic for "pick a planet for this unoccupied threat ship to go to" will then target that faction instead of the default "any human-player".<br />
** So if the Dyson spawns some stuff and you're nowhere in sight, those guardians will go threat against the AI or some other non-human faction the Dyson doesn't like (e.g. Nanocaust).<br />
** Similarly, if the Dyson's units bust some heads on an AI planet in such a way as to release AI threat, that AI threat will go threat against the Dyson, or something else, but not you unless you're also causing trouble on that planet.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30640AI War 2:Final Pre-Beta Checks2018-03-28T14:59:36Z<p>Keith.lamothe: /* Version 0.716 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.716 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller), though it has to wait ~10 minutes after the thing was last damaged (to give the player time to make incremental progress).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
* The AI now tracks how much hacking you have done and will provide stronger responses the more hacking points you have spent. All the balance numbers are in the XML so it should be easy to play with.<br />
<br />
* Fix a bug where the nanocaust wasn't correctly figuring out it could capture a planet.<br />
** Thanks to ZeusAlmighty for reporting.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30637AI War 2:Final Pre-Beta Checks2018-03-27T18:57:40Z<p>Keith.lamothe: /* Version 0.716 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.716 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Design Template Servers are now placed at random on the map as the AI unlocks new tech, instead of being placed right next to the player all the time<br />
<br />
* When your selection is split across multiple planets, generate seperate paths and move commands for each chunk of ships. Previously move commands for split selections would sometimes fail (or sometimes partially work) in a most frustrating fashion, since they relied on generating a path from an arbitrarily chosen single element of the selection.<br />
** ZeusAlmighty reported an instance of this bug which was helpful<br />
<br />
* When scrapping units, don't play the "Taking Damage" audio queue<br />
<br />
* Fix a bug where hacking an Experimental Lab would grant you all Mark IV types instead of the one type from that Lab<br />
** Thanks to Justice for reporting<br />
<br />
* Add an Autosave feature to the game. By default every 10 minutes the game will generate a new save called "Autosave", overwriting the previous such save.<br />
** New settings-menu settings are how often the autosave should be taken, and whether to overwrite old autosaves (note if you don't overwrite your autosaves then things can get really cluttered).<br />
<br />
* Gathering of Metal, Fuel, and Science is now all carried out by the planetary Controller.<br />
** Those resource spots have been removed.<br />
** Science gathering now happens much faster, so you don't have to wait as long after taking a planet.<br />
*** Science is now also gathered for all human players simultaneously.<br />
<br />
* Now, instead of those various resource spots (whose destruction was generally a temporary setback ranging from minor to negligible), each planet now seeds with several "Power Distribution Nodes".<br />
** These nodes don't produce power; they're needed for the efficient operation of your power-based defenses.<br />
** If you don't control all the nodes on a planet, the rate of fire of your power-based defenses (e.g. turrets) is reduced in proportion, to a minimum of 20% of normal.<br />
** Claiming/Repairing these takes the normal amount of time for a resource spot, but does not actually cost metal.<br />
** The AI will claim/reclaim nodes on their own planets, and if you kill these it will reduce the efficiency of the local AI turrets.<br />
<br />
* Claiming a hacking resource spot no longer costs metal (just the normal amount of time).<br />
** Hacking is now gathered for all human players simultaneously.<br />
** And when the hacking spot is exhausted, it despawns.<br />
<br />
* The AI can now repair things with the appropriate units (normally this is just the planet controller).<br />
** At no point in testing did the AI start the game by claiming all the flagships and golems. And they certainly didn't join the hunter fleet a few minutes later.<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30624AI War 2:Final Pre-Beta Checks2018-03-21T21:32:11Z<p>Keith.lamothe: /* Version 0.715 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.716 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
== Version 0.715 Hotfix ==<br />
(Released March 21st, 2018)<br />
<br />
* Hunter Waves (aka waves that will join the hunter fleet instead of attacking you immediately) are disabled by default. When enabled, they will only become available to an AI once that AI has passed a certain progress threshold. The threshold is defined in the XML and is based on the difficulty for that AI<br />
<br />
* All of the new space skyboxes from the prior version of the game were simply too blurry at 1024px. We thought we could get away with that still looking good enough, but instead we've had to increase those to 2048px.<br />
** This causes a 4x increase in disk space usage by the cubemaps in question, and a 3x increase in RAM and VRAM usage (thanks to shifting to DXT1 instead of DXT5, dropping the alpha channel). The general increase is from 5MB per DXT5 smaller texture to 16MB per larger DXT1 texture.<br />
** The results are vastly more crisp, and in general raise the feeling of quality enormously when we're talking about the entire picture of a given scene.<br />
** As part of this, two of the lesser-quality images were removed and instead replaced with whitish cloudy variants of other cubemaps. So that saves 32MB, and also looks better; the white milky backgrounds are pretty darn striking, and having three of those instead of one is definitely a plus.<br />
<br />
* Fixed a crash if your Ark got shot or you lost a planet.<br />
** The AI was being REALLY thorough, apparently.<br />
** More seriously, it was a bug in how we were delaying the voice report of this activity. Coroutines are not thread-safe, and we were mistakenly using them from a non-main thread.<br />
*** ZeusAlmighty and BadgerBadger reported<br />
<br />
* There is a new "Hide Gimbals Mode" debug function with Ctrl+F11 that makes it just show the ships and shots without the gimbals above them.<br />
<br />
* When you have disabled the GUI by using Ctrl+F12, it no longer shows the on-battlefield cursor under your mouse cursor, nor does it show selection circles for squads you mouse over.<br />
** Gimbals continue to work as usual with hovers over them reacting as normal, so long as you don't also disable the gimbals using those new controls.<br />
<br />
* Fixed the snapping problem with the cursor at far zooms. It turns out it was a precision problem caused by the near clip plane of the cameras being set to a value less than 1.<br />
** Useful info: https://forum.unity.com/threads/solved-increasingly-inaccurate-results-of-screenpointtoray-as-transform-size-increase-choppy.459818/<br />
** Thanks to Bummeri for reporting.<br />
<br />
=== 64bit Only, Here We Come ===<br />
<br />
* The game is now 64bit only. Basically 98% of steam users have 64bit OSes, and probably any machine that isn't 64bit won't be able to run this game very well anyhow. There are undoubtedly some exceptions, and we hope this doesn't negatively impact anyone who backed the project, but this is the most forward-looking way for us to ensure that our system requirements for the game don't change as the years go by and we add more expansions and so forth.<br />
** It's reasonable for later expansions to add further RAM requirements in order to run them over just the base game, and that might be the case, and is easy enough to convey. But we can't increase RAM requirements past a very anemic value without going full 64bit. OSX already was only supporting 64bit, and the last release of a major OS that was targeting 32bit was in 2014, four years ago, with windows 8.1. Windows 10 does still retain 32bit support for legacy upgrade purposes, but we're not aware of any machines actually being manufactured and sold with that as the OEM value.<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30613AI War 2:Final Pre-Beta Checks2018-03-21T00:20:50Z<p>Keith.lamothe: /* Version 0.714 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.715 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
== Version 0.714 Shields Down ==<br />
(Released March 20th, 2018)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30612AI War 2:Final Pre-Beta Checks2018-03-20T22:07:08Z<p>Keith.lamothe: /* Version 0.714 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.714 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
* Fixed a bug where the fighter's "shared cap" was shared with various non-ship entities. So it depended on how many shots you had in the air, etc.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30611AI War 2:Final Pre-Beta Checks2018-03-20T21:22:08Z<p>Keith.lamothe: /* Rebalancing In A World Without Shields */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.714 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* Fixed our build scripts for pushing the steam libraries properly to the steam depots.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437 here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/ here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30609AI War 2:Final Pre-Beta Checks2018-03-20T20:55:05Z<p>Keith.lamothe: /* Rebalancing In A World Without Shields */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.714 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion [https://www.kickstarter.com/projects/arcengames/ai-war-ii-0/posts/2138437|here] and [https://forums.arcengames.com/ai-war-ii/poll-would-you-be-okay-with-us-removing-shieldsforcefields/|here]).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30608AI War 2:Final Pre-Beta Checks2018-03-20T20:50:03Z<p>Keith.lamothe: /* Version 0.714 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.714 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each of those things instead of clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion here and here).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothehttps://wiki.arcengames.com/index.php?title=AI_War_2:Final_Pre-Beta_Checks&diff=30607AI War 2:Final Pre-Beta Checks2018-03-20T20:49:17Z<p>Keith.lamothe: /* Version 0.714 */</p>
<hr />
<div><br />
== Known Issues ==<br />
* The interface, lobby included, is currently temporary, and undergoing a complete overhaul.<br />
<br />
* Various ships are implemented but don't have real graphics, so they just show a little "rock" instead where the ship graphic would be. You can still see the ship icon and whatnot just fine.<br />
<br />
* Most ship shot types use the same graphics right now.<br />
<br />
* Only some of the sound effects are in.<br />
<br />
* The bulk of the new soundtrack won't be in place until April 20th, but over 4 and a half hours of music is in place from a mix of a few new things and a ton of Classic tracks.<br />
<br />
* Various bugs on mantis:Â https://bugtracker.arcengames.com/view_all_bug_page.php<br />
<br />
* Balance needs a lot of attention, with your help.<br />
<br />
* The tutorial is currently missing, as we need to redo it.<br />
<br />
* Multiplayer may have some issues at the moment, although we need more testers on that.<br />
<br />
== Version 0.714 ==<br />
(Not yet released -- we're still working on it!)<br />
<br />
* Fix bug where certain Clusters maps would hard lock the game<br />
<br />
* Quiet some logging for the Density Map<br />
<br />
* Updated Ship Visuals<br />
** Increased the size of the AI Overlord<br />
<br />
* Fixed a bug in the prior build of the game where if your Profiles folder didn't exist in the PlayerData subfolder, it would crash on start.<br />
<br />
* Plasma turrets can now be researched again.<br />
<br />
* A new cubemap-based shader for doing rotational skyboxes with hsv shifts has been created, to match our 6-sided image one.<br />
<br />
* 36 new cubemaps have been generated for use as background skyboxes, and overall 60 different materials were created out of them with various color variants. A lot of these are really quite stunning, and were all generated using the tools from the open source tool at https://github.com/wwwtyro/space-3d.<br />
** All of this is set up in the "modding and gui" project that is public in the game folder, so if you create anything cool that you'd like to share with us, please do!y<br />
** This increases the total number of skyboxes by about a third over what it was before, and has a lot of very welcome variety. There are now three distinctly different methods of creating space skyboxes that are all in use, depending on which planets you are viewing.<br />
<br />
* Design Template Servers now explode after being hacked, a la AIWC<br />
<br />
* Fixed a bug where the Carrier, Stealth, and Sniper starships started with a cap of 2 instead of 1.<br />
<br />
* Fixed a bug where the "unlock Mark 1 of (blank) Starship" tech button would sometimes display the icon for the Flagship of that line instead.<br />
<br />
* Fighters are now slightly faster than normal, and Missile Corvettes are now slightly slower.<br />
** Giving them a move order all together will still generally get them all from point A to point B in similar time, but if you try to kite as a blob your Missile Corvettes will tend to get overrun (and quickly die).<br />
<br />
* Under the hood, the game now calls what were once "ships" by the name "subsquads" now, since that's more accurate. There are now "subsquads per squad" instead of "ships per squad," since those are the units in which pieces of the squad die. All of the balance is done around this.<br />
** Purely for cosmetic/informational purposes, there is now a "ships per subsquad" piece of data, which tells us how many visual ships are in a subsquad, which then lets us figure out how many ships there are in a squad, and how many ships there are in the overall cap, etc.<br />
<br />
* Fixed an issue with the default sizing of the game where anyone with a 720p monitor or smaller (less than 768px height) would be unable to see the bottom of the screen when in windowed mode.<br />
<br />
* The base hit-point scale has been changed from 100 to 500, because various changes have made it necessary to have smaller and smaller damage values for individual shots, and the coarseness of the 100-scale was causing rounding issues and even 0-damage shots in some cases.<br />
** Making it always at least 1 is easy, but the rounding starts to impact balance.<br />
<br />
* Sensor arrays have been removed from the game; their role will be handled in some way (probably by adding them back in; the overall concept seems sound), but their status as a multi-mark line still using the old cap rules combined with not really being used makes it easier to just hide them for now.<br />
<br />
* Now in a couple places where the game was showing only squad count, it now shows the count of the actual ship models represented (so instead of 20 squads of fighters, it's 400 fighters).<br />
<br />
* Incorporated a new version of the OSX steam library.<br />
<br />
* The [ and ] keys now cycle through the different types of unit you have on the current planet.<br />
** So for example, in your first assault on an AI planet ] will probably select all your Fighters the first time you press it, all your Bombers the second time, and all your Missile Corvettes the third time. [ Goes in reverse order.<br />
** The upshot is that it's a lot easier to quickly select each those things than clicking their sidebar icons, so you can position each group independently and (hopefully) keep them away from their natural predators.<br />
<br />
=== More Squads For You, And Wimpier Neighbors ===<br />
<br />
* Fleet ship and Turret caps have been doubled.<br />
** Rates of fire have been halved (except for the really-slow-firing stuff, to avoid obscene alpha-strike), to keep the number of shots similar.<br />
<br />
* Fixed a bug where the defensive strength cap AI planets didn't really factor in the mark level of the planet (except for guardians, which were more-or-less factored correctly).<br />
** Along with this, rebalanced the defensive progression across mark levels, and made Mark 1s (generally all your starting neighbors are Mark 1s) much weaker.<br />
<br />
* Basically, the early game in particular is supposed to be a lot faster, like in Classic, and this should bring us a goodly way in that direction along with all the other changes below.<br />
<br />
=== Flagships From The Very Start In A Weak-Ark World ===<br />
<br />
* You now start with a "Prototype Flagship" that has all the support functions of Flagships, but relatively minor weapons so it doesn't clear planets all by itself.<br />
** It also has a strong tachyon emitter.<br />
** Your 1st control group is now centered around this, rather than the Ark, since using the Ark in your initial fights is no longer a good idea.<br />
** Generally speaking attacking a planet with only fleet ships is going to be quite a slog; this makes it way easier and helps those early battles be better training for later battles, since you generally will operate offensively with at least one Flagship to keep your fleet ships reinforced.<br />
<br />
* It's worth noting that flagships are basically like queens in Chess, whereas your Ark is very much like the King. In the past, your Ark was some strange hybrid of king/queen, but that was problematic on a lot of levels, including the issue of training players to send their king out to the front lines (that was always a bad idea after the early game, but it's hard to convey that once you train someone to do something).<br />
<br />
=== Rebalancing In A World Without Shields ===<br />
<br />
* Shields have been removed (see discussion here and here).<br />
<br />
* The radius of the planet area has been increased again, by 30%.<br />
** With shields removed, much of your ability to defend a soft target comes from pure distance, so here's some more of that.<br />
<br />
* "Sniper"-range weapons can no longer shoot across the entire gravity well; instead they have a range roughly 50% longer than "Long" range (used by missile corvettes, etc).<br />
** Again, with the removal of shield you need distance to defend soft targets; Snipers previously short-circuited any amount of distance within a planet.<br />
** This also makes it much easier to actually use Missile Corvettes without them evaporating as soon as you move to an enemy planet with snipers. That said, you still won't be able to approach snipers with missile corvettes due to the range distance: you'll need to send something in ahead to kill the snipers.<br />
<br />
* Tractors have been buffed by roughly 50%, so they're more useful at stopping the enemy before they get into range of your squishy, delicious irreplaceables (though there are a lot fewer things in AIW2 that can't simply be reclaimed if you lose them).<br />
** You now also start with Mark 1 tractors unlocked.<br />
<br />
* The initial seeding of your needler turrets now only seeds half your cap, so you have some to put elsewhere if you want.<br />
** It now also seeds half your starting tractors in a similar fashion.<br />
<br />
* Fuel costs have been increased significantly (since fuel caps were rarely being hit) and power costs have been decreased somewhat (to make defense somewhat easier post-shields).<br />
<br />
=== Overhaul of Tachyon Arrays, Tractor Arrays, and Gravity Generators ===<br />
<br />
* All three now have mark-lines, and upgrading them works similarly to upgrading turrets (your cap expands, and the old ones get automatically upgraded to the new mark level).<br />
** But they still have per-planet caps (1 for Tachyon and Gravity; 20 for Tractors).<br />
<br />
* The power cost per unit does not go up with Mark level, so the efficiency of how much effect you get per unit of Power goes up.<br />
** And since the cap expands with each mark level, that also increases your max power-throughput for that type of defense.<br />
<br />
* The AI no longer picks tractors and gravity generators in the same general category as turrets. Instead it has a separate budget for that, and only picks 1 of the following per planet:<br />
** Tractor Arrays<br />
** Tachyon Arrays (previously it never built these, it relied only on each planet controller's innate tachyon)<br />
** Gravity Generators<br />
** Nothing (25% chance)<br />
*** Note: It's somewhat more likely to pick Tachyon than Tractor, and both of those are much more likely than Gravity.<br />
<br />
=== Oh So Much Voice Work ===<br />
<br />
* The "Master Combatant" voice barks are now in place. Voiced by Elio Ingala.<br />
<br />
* The "Flagship Captain" voice barks are now in place. Voiced by Eric Hollaway.<br />
<br />
* The "Melee" voice barks are now in place. Voiced by Grace Bjarrnson.<br />
<br />
* The "MLRS" voice barks are now in place. Voiced by Thomas Sauermann.<br />
<br />
* The "Raider" voice barks are now in place. Voiced by Tara Ann.<br />
<br />
* The "Sniper" voice barks are now in place. Voiced by Chris Tester.<br />
<br />
* The "Starship" voice barks are now in place. Voiced by Nick Howden-Steenstra.<br />
<br />
* The "Missile Corvette" voice barks are now in place. Voiced by Carlos Cerrato.<br />
<br />
* The "Saboteur" voice barks are now in place. Voiced by Richard Hall of Higher Impact Productions.<br />
<br />
* The "Councillor Cheryl Harris" voice barks are now in place. Voiced by Kristen Hagopian.<br />
<br />
* The "Councillor Thomas Walker" voice barks are now in place. Voiced by Jokeboyy.<br />
<br />
* The "Councillor Elijah Freeman" voice barks are now in place. Voiced by Brandon Bell.<br />
<br />
* The "Councillor Lee Sen" voice barks are now in place. Voiced by Ron Yap.<br />
<br />
* The "Councillor Niklas Wagner" voice barks are now in place. Voiced by Timo Steinleitner.<br />
<br />
* The "Councillor Lucie Leroux" voice barks are now in place. Voiced by Mathilde Peraud.<br />
<br />
* The "Councillor Jack Bishop" voice barks are now in place. Voiced by Steve Steels.<br />
<br />
* Fixed a bug where the AOE voice prompts were not actually playing in the prior version.<br />
<br />
* The Ark now actually USES the chief adviser voices.<br />
<br />
* Certain classes of voice, such as the Ark, now count with more weight for purposes of choosing which voice to play if you have a group of unlike-voiced ships selected.<br />
<br />
* If a voice group runs completely out of prompts to say based on the default times between when voices can speak, it now resets the internal list and starts over. This is really mainly only relevant for some of the things that the Ark Chief of Staff will be saying.<br />
<br />
* The Ark Chief of Staff, voiced by Alicia Harris, now has a bulk of her lines in place:<br />
** Ark Taking Hull Damage<br />
** CPA Detected<br />
** Fuel Low<br />
** Hacking Done (Success)<br />
** Hacking Failed<br />
** Hacking Starting<br />
** Large Enemy Group In Allied Territory<br />
** Lost Planet<br />
** Power Low<br />
** Science Exhausted At Planet<br />
** Under Attack On Border World<br />
** Under Attack In Enemy Territory<br />
** Under Attack In Neutral Territory<br />
** Wave Arrival<br />
<br />
* All in all, we now have 1672 voiced lines in the game.<br />
** Huge thanks to Craig Davies for helping to cut all this up, because that was quite a huge job.<br />
** This number doesn't even include any of the AI taunts yet, and there will be more Ark Chief of Staff lines required, as well a new Science Officer role yet to be cast, and intro and ending monologues as well as trailer voiceovers.<br />
** This is, in short, far and away the largest voice work project we've ever undertaken.<br />
<br />
* The "alert" style voice commands now still duck the audio of the routine voice barks, but not so harshly anymore that the others completely disappear from audio. We may have to tune that more in the future.<br />
<br />
* The routine voice barks no longer play more frequently than every 3 seconds, regardless of source. Previously it was limiting based on whether it was an attack or move order by the same ship voice group, and it still does that, but now it also has an override for global pacing.<br />
<br />
== Version 0.712 ==<br />
(Released March 15th, 2018)<br />
<br />
* Updated Ship Visuals<br />
** Laser Guardian new visuals, prefab and LODs.<br />
** Shield Starship new visuals, prefab and LODs.<br />
<br />
* Turrets now have their voice cues in place, voiced by Tosin Akintuyosi.<br />
<br />
* There are now 381 distinct team colors, organized by shade, with duplicates in later shade groupings removed.<br />
** These are all of the major named colors used on the web, and if you can't find the color you want in this list... well, you're probably going to have trouble telling the difference between one of these colors and the one you had in mind, to be honest.<br />
** At the moment, in the lobby it's just giving you these in a big nasty dropdown, but at least the organization is good. However, this is on the slate for major changes coming up soon, and this was a needed first step.<br />
** All but four of the original colors from recent builds of the game are still available, even though they were not in the wikipedia list of colors by shade (https://en.wikipedia.org/wiki/List_of_colors_by_shade).<br />
<br />
* The sort_order tag in xml can now take floating-point numbers, so that if you need to insert something between 200 and 201, you can add 200.2 or whatever instead of having to renumber everything from 201 onwards.<br />
<br />
* Fix a null reference with Human Resistance Fighters<br />
<br />
* Fix an issue where the Nanocaust would quiesce after being hacked. They will now actually do things again. Previously existing saves with hacked nanocaust hives will get a bunch of warning messages, then proceed normally.<br />
** Thanks to zeusalmighty for the bug report<br />
<br />
* When a squad is upgrading, it no longer explodes; it instead uses a new animation and no longer plays the Exploding sound effect<br />
<br />
* The "AI Master Controller" is now called the "AI Overlord" instead, because the terminology was pretty confusing before.<br />
** The visuals of this have also been completely redone to be in the proper style of the game, and incredibly menacing, thanks to Blue.<br />
** The "character portrait" for the AI is now also based on this.<br />
<br />
* The entire underlying style of the profile data has been redone, and there is also now a profile creation and editing screen, as well.<br />
** Really this is just pretty much entirely new, and thanks to Eric, our volunteer GUI designer, so listing the differences would pretty much just list everything.<br />
** The screen lets you choose your default Ark, as well as your chief adviser for the Ark, however, as well as your name and your default colors.<br />
** All of it works except you can only have one profile at the moment. Also, setting data doesn't actually DO anything, yet.<br />
** When viewing a councilor to consider for your chief adviser, there are buttons that you can click in order to hear what their voice sounds like when giving either move or attack barks.<br />
** You also can get some lengthy backstory on the characters and vessels, since that's fun for flavor, but it has no impact on anything.<br />
** If you don't have a profile defined, then it will ask you to create one as the first thing you do on launching the game, now.<br />
** A wide variety of under-the-hood extensions have been made to the GUI system in order to fully support all the parts of this new screen and how it was constructed. Those techniques will be really useful for us when we start getting into other complex screens, like the true Game Setup design screen, for instance.<br />
** Also, changed the extension of the profiles from .profile to .aiwprof, because we had tons of older profile things that were not valid, and those needed to not be cluttering up everyone's views. For a while there it was creating insane numbers of profiles.<br />
<br />
* Our very fancy new team color picker is now in place and used on the profile screen, although that does not yet have any bearing on the game itself or the lobby. One step at a time!<br />
** You'll notice that you now not only get to choose a team color, but also a trim color!<br />
<br />
* The Dire Widow Guardian now uses the proper visuals.<br />
* The Sensor Array now uses the proper visuals.<br />
<br />
* The little temporary rocks for ships now look a little nicer and are in a slightly different place.<br />
<br />
* Fixed a bug where it was possible to zombify a king unit (AI Master Controller). This was hilarious, but not a good idea for the game-engine.<br />
** Thanks to elcommendante for reporting.<br />
<br />
* Now when the game is loading your profile file or settings file, and it's looking up an xml-entry referenced by that file, and it can't find it, it will use the default for that type of xml-entry. It will still generate warning (which may or may not be visible depending on the situation) but not a full-screen error.<br />
** Unless there is no default defined either, of course; in that case it will still fail in an ugly fashion because something's pretty borked.<br />
** Thanks to Valeroth, Austneal, and others for inspiring this change.<br />
<br />
* Factions that are allied to the Player or to the AI will correctly update their allegiances over the course of the game. Any faction friendly to the player, for example, will now share the same set of allied factions as the humans. So your zombies should no longer attack the Dyson Sphere ships when you've freed it.<br />
** Thanks to elcommendante for the bug report<br />
<br />
* Golems are only seeded near a player on AI difficulties 1 and 2. On higher difficulty games a Fabricator is seeded instead. (Golems are too strong in the early game)<br />
<br />
* The "Mobile Military" hotkey (default to 'M') no longer selects the Ark<br />
<br />
* Fixed a bug where adding a squad to a control group when it was already in another would lead to it being in both. This was possible in AIWC but wouldn't work cleanly in AIW2 because of the various policies that can be set at a control-group level, as it would become ambiguous which policy the unit should follow.<br />
<br />
* Implement a SplitSelection function Similar to AIWC. By default it is bound to L.<br />
** Using this function will split your current selection in half. It will always round up. So if you had 10 bombers, 3 fighters and a Hive Golem, and you split your selection then you will have 5 bombers, 2 fighters and a hive golem in your selection afterwards<br />
<br />
* Fixed a bug where the initial "sensor scrambler shell" and the initial three capturables on the edge of that shell were placed without regard for any human homeworlds beyond the first player.<br />
<br />
* Added support for a faction to override the target sorter used by its units. The first examples of this are:<br />
** On Difficulties 3 and 4, the AI will no longer prefer shooting at things that it will kill fastest; so it tends to not get bonus damage versus defenses it is good against, etc.<br />
** On Difficulties 1 and 2, the AI will actually prefer shooting at things that it will take a long time to kill.<br />
<br />
* Nerfed the AI response to hacking.<br />
<br />
* Fixed an exception that would occur if you tried to save GameSettings from any thread other than the main one.<br />
<br />
* Fixed a bug where the experimental-lab variant ship types were not actually available to build.<br />
** Thanks to zeusalmighty for reporting.<br />
<br />
* Fixed a bug where quitting the game never fully transitioned the game back into the "not running" state.<br />
<br />
* Fixed a bug where the current game-speed (in terms of "frame size" and "frame frequency") were part of the engine' state instead of the world's state; this led to those persisting if you quit a game and started another one, and would have caused desyncs for someone joining during a game that wasn't at normal game speed (because they wouldn't have received the current game-speed as part of the world's state).<br />
<br />
* Units regenerated by the regen golem now copy their current orders (including FRD) and control group from the entity that just died.<br />
<br />
* The tutorial button now says "Coming (back) soon! The old tutorial was actually teaching you to play in a way actually contrary to how you're supposed to play now."<br />
<br />
* Turrets can be built on AI planets again if you have a mobile source of power (like a flagship)<br />
<br />
* Hunter Waves, aka waves that would immediately join the Hunter Fleet, are disabled by default<br />
<br />
* Fixed a bug where the "do this any time the unit dies" logic was not firing, only "do this the first time the unit dies" logic.<br />
<br />
== Version 0.711 Re-Mark-able ==<br />
(Released March 12th, 2018)<br />
<br />
*Updated Ship Visuals<br />
** Teuthida Guardian Drone updated formation.<br />
** Shredder Guardian Drone updated formation.<br />
** Implosion Guardian Drone updated formation.<br />
** Adjusted Warhead Suppressor icon height.<br />
** Devourer Golem new visuals, prefab and LODs.<br />
** Black Widow Golem new visuals, prefab and LODs.<br />
** Dire Hunter Guardian new visuals, prefab and LODs.<br />
** Gravity Guardian new visuals, prefab and LODs.<br />
** Missile Guardian new visuals, prefab and LODs.<br />
** Sniper Guardian new visuals, prefab and LODs.<br />
** Asteroid Mine and derelict version new visuals integrated.<br />
** Fuel Refinery and derelict version new visuals, prefab and LODs<br />
** Usurper new visuals, prefab and LODs<br />
** Alarm Post new visuals, prefab and LODs.<br />
** Attrition Emitter new visuals, prefab and LODs.<br />
** Black Hole Machine new visuals, prefab and LODs.<br />
** Magnifier new visuals, prefab and LODs.<br />
** Planetary Cloaker new visuals, prefab and LODs.<br />
** Raid Engine new visuals, prefab and LODs.<br />
** Vampire Guardian new visuals, prefab and LODs.<br />
** Reactor and derelict version new visuals, prefab and LODs.<br />
<br />
* Minor Factions<br />
** Zenith Trader<br />
*** Now emits suitable messages when it is on one of your planets<br />
*** Is capable of respawning if eaten by the Devourer<br />
** Devourer<br />
*** Gives a message when on a human planet<br />
<br />
* A newer version of the Facepunch Steamworks wrapper is now implemented into the game.<br />
<br />
* Steam achievement integration is now complete, although it is untested since we don't have any achievement yet.<br />
** When it's time to test those, we have two very simple methods on FrontEndBaseLink.Instance.<br />
*** bool LogSteamAchievementAsComplete( string AchievementIdentifier ).<br />
**** The bool return tells you if the achievement setting was a success or not.<br />
*** bool GetStatusOfSteamAchievement( string AchievementIdentifier, out DateTime UnlockTime, out float GlobalUnlockedPercentage )<br />
**** The bool return tells you if the achievement has been previously marked as achived on Steam. The UnlockTime tells you when. And, fun and interestingly, the GlobalUnlockedPercentage shows you what percentage of players have unlocked that achievement. Not sure if we'll use that last one, but it's neat to have.<br />
<br />
* The attack and move voice prompts for when Alan Edwards is your Chief Adviser on the Ark are now in place.<br />
** This is needed for us to test certain parts of the UI; the other Chief Advisers will be voiceless for a few more weeks.<br />
** His voice doesn't actually show up in the game, yet, though, either. Next build!<br />
** Voice by David Allan, who should be quite familiar to anyone watching much of the BBC in the last few decades.<br />
<br />
* Bombers now have their voice cues in place, voiced by Brendan Reilly.<br />
<br />
* AOE ships now have their voice cues in place, voiced by Megumi Kabe.<br />
<br />
* Slightly tweaked the "Simple" map type to make its layout non-homogenous<br />
<br />
=== GUI Work ===<br />
<br />
* Fixed a longstanding bug where most buttons were not making the appropriate click sounds for a successful click, or buzz sounds for a failed one.<br />
<br />
* Added a new way to have entire custom GUIs designed in unity's WYSIWYG editor and then embedded into our normal GUI system via the existing xml and wired up via the existing external-dll logic.<br />
** The other way of creating GUIs is still there and just as viable and will not be going away, but for those with the unity editor this is a much faster and more accurate way to implement GUI designs.<br />
<br />
* Got the new Exo 2 font in place, which was the most popular font chosen by our polls of players. Also added in a font called Lato, which will be used for long-form narrative-style descriptions, since that's a good complement to Exo 2, as suggested by Google actually.<br />
<br />
* In the game when xml is taking input for floating point numbers, or lists of floating point numbers, it now supports the + and - operators for VERY simple arithmetic.<br />
** This can make for some easier-to-read-and-update xml definitions for things like window element offsets.<br />
** Thanks to Badger for implementing this!<br />
<br />
* On the main menu, it now shows what Steam user you are logged in as, and logs you into Steam even if you don't launch the game directly from the Steam client.<br />
** You can, of course, still run this without Steam!<br />
<br />
* On the main menu, there are now external links to the wiki, the forum, and our mailing list, along with a tooltip explanation of what the deal is with the mailing list.<br />
<br />
* The at-mouse tooltips now use a much darker and more opaque background for easier reading, and uses the Lato font instead of Regalia or Michroma, which again aids readability quite a bit.<br />
** Also fixed a bug in the at-mouse tooltips that made the wrapping freak out if there was rich-text markup included in the text to show.<br />
<br />
* There is now a freeform release_date_text field on our Gameversions table, which lets us specify the date of each release, which in turn now shows on the main menu to give you an idea of when the last release was.<br />
<br />
* The credits window has been implemented, with all of the non-backer credits in there (the backer credits will be added later, since we keep getting new ones via backerkit).<br />
** This wasn't exactly a high-priority screen, but it allowed us to test out a variety of features in a fairly simple way, including setting up scrolling areas in a non-insane way.<br />
** We also got it set up so that it's faster for us to test new gui pieces in general, and some of our "this is how you messed up" error messaging for gui design to be a bit clearer.<br />
** And lastly, we also demonstrated a way of getting in the credits from our spreadsheet, simply by doing a copy-paste of two different columns to create or update the values you see on the left. Efficiency!<br />
<br />
* Old player profiles, which were basically invisible under the hood anyway, are now invalidated.<br />
** Note that if you had an interim copy of 0.710, it will throw an error the first time you run it saying it couldn't parse the old profile. Just click ignore, and the error will not recur. This should not affect anyone outside the dev team, but just in case.<br />
<br />
* The player profiles now include a main and trim color (you'll be able to set both for ships!).<br />
<br />
* Player profiles also now allow for random strings associated with string keys to be put into them; this is useful for our Ark and Chief Adviser selections, but also for anything other people want to mod into profiles at a later date.<br />
<br />
* Chief Advisers and Arks now have data definitions under the hood, in preparation for using them on the profile screen.<br />
<br />
* Completely redid the internals of how savegames log their metadata and their campaign names.<br />
** The metadata is no longer encoded in the filename of the savegame, but instead goes into a new .savemeta file. This fixes a number of bugs across platforms.<br />
** The campaign name is no longer something you can specify on the savegame menu. Instead, it is something that you define during the initial game start lobby setup phase.<br />
** Campaigns themselves now get their own folders in the file system.<br />
*** Note that if you use your file manager to move campaigns between folders, then re-save over top of the savegame, it will change the campaign name internally, which is handy if you need to fork a campaign for some reason.<br />
** Also moved a lot of the actual saving metadata and mechanics logic out to the external open source project, using some new xml-based dll method lookups in our ArcenUniversal project.<br />
** Savegames can once again have spaces inside them, and campaigns can now have spaces in them for the first time.<br />
<br />
* The game now only has one "canvas to copy" instead of a second one that is higher for tooltips, and now there is an optional canvas_z_offset for windows that lets you get the same effect, only more flexibly.<br />
** Anything above 0 will make the canvas show above all other canvases that are still at 0 (the default).<br />
** Anything too high will start making the calculations for positions drift, though. The default offset for the at-mouse tooltips, which are supposed to be above EVERYTHING, is canvas_z_offset="0.01", although even that frankly may not be needed, because...<br />
<br />
* Canvases in the unity UI are drawn in the order they exist in the hierarchy. This is handy, except in our case we are adding our canvases willy-nilly ordered based on their parse order in xml. That's something we can control when there's only a single xml file, but as people mod in more... not so much.<br />
** There is now a required canvas_sort_order that takes an integer, and which allows you to specify the order-spectrum that things should be in.<br />
** Most of the time you don't need to worry about window overlap, because windows aren't shown at the same time. So for that class of window, those just have canvas_sort_order="100".<br />
** We're taking the old BASIC-programming style of "line numbers with gaps in them" approach so that we can add in interstitial values as needed later.<br />
** Therefore, for anything that should draw below everything else, right now we're using 50 for that.<br />
** For anything that is a basic "window that pops up over other windows, just for a while, or is the sidebar", we're using 200.<br />
** For "standard tooltips" like the ones when hovering over planets and entities, we're using 500.<br />
** For "things that should show up really high as kind of overlays" (like "game is paused"), we're using 1000.<br />
** For the "debug info" and the error report popup, we're using 1100.<br />
** For any sort of "modal" popups, we'd likely use 1150.<br />
** For the at-mouse tooltip, we're using 1200, although the fact that that has a canvas_z_offset > 0 means that technically this could be set to 0 and it would still be drawing above everything else. canvas_z_offset beats canvas_sort_order in sort-paper-scissors.<br />
<br />
* Implemented a new system for a queue of modal popups that can be of the ok or of the yes/no variety.<br />
** This can be called in a threadsafe manner from anywhere in the code simply by calling ModalPopupData.CreateAndLogOKStyle or ModalPopupData.CreateAndLogYesNoStyle.<br />
*** The ModalClickHandler parameters on this are free to be null.<br />
<br />
* Now on the game start screen, it no longer fills in a default campaign name for you. Instead it simply gives you a modal popup saying "you need to fill one in" when you try to click the start game button if that field is blank.<br />
<br />
* Our new modal dialogue capabilities are now being used to have a confirmation popup for the scrap units command (via keyboard shortcut or via the interface, either way). No more accidental murders!<br />
<br />
* The visuals for the game and arcen logos on the main menu have been tweaked again. Less gaudy, more sophisticated and subtle.<br />
<br />
* When you (manually only -- not autosave) save the game, or load a game, it now remembers which one you saved/loaded most recently.<br />
** In the Single Player portion of the new main menu design, there is a Continue Game button that appears only if such a thing has previously been remembered, and the tooltip over that shows you what the campaign and savegame name is.<br />
<br />
* The "background story" button on the main menu now takes you to a document that is white-background and black text, which is quite unlike the formatting of everything else in the game.<br />
** This contains the information in a story-ish format about the main characters in the game, including 11 of the 24 voiced' characters.<br />
** This wasn't exactly crucial to do right at this point, but it was quick and also let us test having white-background stuff. Right now it is pretty darn ugly-feeling, but for anything that is more wiki-like that we want to start including in the game for an in-game encyclopedia or tutorial style of work, we'd like to see a light theme for those pages that a) makes it clear this is wiki-style versus something for actually altering data; and b) reads and feels more like a wiki, given those are black text white background.<br />
*** Once we get Blue in to work on these pages, she can assumedly do something to help us make it look like these are not just a random white panel, but instead are actually a little encyclopedia machine or something of that nature. We'll see what we see.<br />
<br />
* If a gui prefab is missing from the local copy of your game, the game is no longer unrunnable. Although, whatever screens the gui prefab is used on will be unusable.<br />
<br />
=== Mark Level Upgrade System Overhaul ===<br />
<br />
* For fleet ships, starships, and turrets, ship caps are now shared across all marks of a ship type, and are cumulative.<br />
** So you start with a cap of 10 Mark 1 Fighter squads, and unlocking Mark 2 Fighters results in a cap of 20 Fighter squads (regardless of mark).<br />
<br />
* Any of your units that can normally replace lost ships within a squad (Ark, Controller, Space Dock, Flagship, etc) will now automatically upgrade your fleet ships, starships, and turrets when you unlock a higher-mark version.<br />
** It does cost metal and take a little time, like replacing ships within a squad, but it's pretty quick as long as you don't bottom-out on metal.<br />
<br />
* To put this more plainly, your ships of a given type (fighter, for instance) are now the same mark, rather than a mix of marks.<br />
** This allows us to simplify the construction interface, which was otherwise overwhelming (although the current interface is not yet updated to reflect our plans here).<br />
** This does NOT reduce the population caps at all, as noted above, but instead of having x number of marks 1, 2, and 3 ships all mashed together for fighters, you'd now have that same x number of just mark 3 fighters. Your bombers might still be mark 1 or 2, though, and your missile corvettes might be mark iv.<br />
** This also allows us to make some other changes, noted below, which we think you'll find exciting (and which can further bolster your ship counts, incidentally, compared to before).<br />
<br />
* Experimental Fabricator:<br />
** Renamed to Experimental Lab<br />
** Is no longer a constructor in its own right<br />
** Now instead of granting Mark 5 of a normal fleet ship type, it grants an experimental variant fleet ship type based on the mark 4 version of a normal fleet ship type.<br />
<br />
* Advanced Factory:<br />
** Renamed to Advanced Coordination Facility<br />
** Is no longer a constructor in its own right, though it can repair/upgrade units.<br />
** Now instead of granting Mark 4 of any fleet ship you have Mark 3 of, it increases your fleet ship caps by 20% (_does_ stack if you control both).<br />
<br />
* Your normal research for fleet ships, starships, and turrets can now go up to Mark 4 (instead of Mark 3).<br />
<br />
* Advanced Starship Constructors and Experimental Turret Controllers are no longer seeded.<br />
** Experimental Labs may be extended to offer experimental variants of Starships and/or Turrets, and perhaps there will be a capturable that increases turret caps by 20%, etc. We'll see how the current changes work out before considering those.<br />
<br />
* The tech science costs have all been reworked to reflect the total strength available at each mark level.<br />
** Turrets have been made cheaper to be more attractive choices. <br />
** Shield-projecting units have been made more expensive to reflect their high utility.<br />
<br />
* Metal costs have been adjusted in light of not being able to build a "cheaper mark" after unlocking the higher one. The costs increase, but not so much that upgrading 1 mark level is going to nuke your econ.<br />
<br />
* Fuel and Power costs no longer go up with mark level (previously Mk2+ was double Mk1).<br />
<br />
* The build menu will now only show the "current" mark of a fleet ship, starship, or turret type. If you don't have that type unlocked at all it still shows a grayed out mark-1 button.<br />
<br />
=== Turret Reorganization / Rebalance ===<br />
<br />
* Renamed the Tractor Turret to the Tractor Array, since it was the only "Turret that doesn't shoot stuff". It's now more in place among the shield generators, gravity generators, etc of the Defense Tab.<br />
<br />
* Fortresses, Minefields, and Beam Cannons are no longer buildable, for now, as they were out of place amongst the shield generators, gravity generators, etc. Will add them back when we figure out what to do with them.<br />
<br />
* Moved the Tachyon Array to the Defense Tab.<br />
<br />
* Everything on the Turrets tab now costs power again, but their caps are now galaxy-wide instead of per-planet, so there's still some point to unlocking more of them.<br />
** The stuff on the Defense tab (Shield Generators, Tractor Arrays, Tachyon Arrays, Gravity Generators) is still per-planet cap, as are things like Space Docks.<br />
<br />
* The player now starts with Mk1 Needler Turrets already unlocked.<br />
** And mapgen automatically places them around the wormholes on your starting planet.<br />
*** We may not keep this behavior, but it seems a helpfully ham-handed hint that "you'll need turrets in this game!" since that appears to have not been adequately clear.<br />
<br />
=== Ark v. Flagship Role Reorganization ===<br />
<br />
* Now when your Ark is on an AI planet, you get an angry-looking warning message and the AI devotes most of its budget to the Hunter Fleet, which will build up and come make you want to go back home.<br />
** So you can get away with it for short periods of time, hacking is still possible, and pulling the AI's budget away from other things may actually be helpful, but you'll generally want to keep your Ark in a reasonably safe location.<br />
<br />
* The Ark's health has been halved.<br />
<br />
* All Flagship types except the Shield Starship have been doubled in strength, and have had their strength shifted much more towards tankiness.<br />
** The goal is for these to actually survive serious battles without you having to reclaim it afterward.<br />
<br />
=== Rock-Paper-Scissors Mechanic Rebalance ===<br />
<br />
* The GameEntityReferenceData export, that gets put in PlayerData/ when the game starts, has been expanded to include a lot of basic balance data.<br />
<br />
* Weapons hitting defenses they don't counter now do 1/10th the damage they would otherwise, instead of 1/4.<br />
** Among other things, this mean that it's much easier to shrug off sniper fire if you keep your Structure units under friendly shields.<br />
<br />
=== AI De-annoyification and Tuning ===<br />
<br />
* The percentage of the AI's total budget that goes towards the Warden fleet has been roughly halved, in favor of waves (and somewhat of reinforcements).<br />
<br />
* The power of focused gravity generators has been roughly halved.<br />
** And the mechanic itself now reduces speed by up to 80% instead of up to 95% or so (due to rounding precision, 95% or so sometimes translated to "stopped").<br />
** And the AI now uses them about 30% as often as it used to, though with the changes to how it picks turrets (see below) it can still wind up with multiples on a planet. It's just a lot less common.<br />
<br />
* Each AI planet now picks three guardian types from those eligible; and when actually spawning guardians from the reinforcement budget it will pick the first ~58% of the time, the second ~28% of the time, and the second ~14% of the time<br />
** It does something similar with turrets and fleet ships, though there are other sources of fleet ships that could show up.<br />
** If new guardians/fleet-ships/turrets become eligible, it will re-pick types for new reinforcements (the existing units are not affected by this).<br />
<br />
== Version 0.710 Reducing The GUI To Jelly ==<br />
(Released March 3rd, 2018)<br />
<br />
*New Ship Visuals<br />
** Regenerator Golem new visuals, prefab, LODs and derelict version.<br />
** Zenith Trader new visuals, prefab and LODs.<br />
** Tweaked the size_scale for the Golems to be more accurate.<br />
** Botnet Golem new visuals, prefab, LODs and Derelict version.<br />
** EMP Guardian new visuals, prefab and LODs.<br />
** Flak Guardian new visuals, prefab and LODs.<br />
** Heavy Beam Guardian new visuals, prefab and LODs.<br />
** MLRS Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian new visuals, prefab and LODs.<br />
** Lightning Guardian new visuals, prefab and LODs.<br />
** Needler Guardian new visuals, prefab and LODs.<br />
** Plasma Guardian new visuals, prefab and LODs.<br />
** Shield Guardian new visuals, prefab and LODs.<br />
** Stealth Guardian new visuals, prefab and LODs.<br />
** Widow Guardian new visuals, prefab and LODs.<br />
** Implosion Guardian Drone new visuals, prefab and LODs.<br />
** Shredder Guardian Drone new visuals, prefab and LODs.<br />
** Teuthida Guardian Drone new visuals, prefab and LODs.<br />
** Carrier Guardian new visuals, prefab and LODs.<br />
** AI Controller new visuals, prefab and LODs.<br />
** Updated Flak Guardian material to the newer version from Blue.<br />
** Integrated Tachyon Array turret.<br />
** Integrated Hunter Killer drone.<br />
** Tweaked all turret formations to be more spaced out.<br />
** Starship Constructor new visuals, prefab and LODs.<br />
<br />
* Fixed that incredibly annoying flicker on the lower text around planets in the galaxy map view.<br />
<br />
* Finally properly fixed the at-mouse tooltip's background not properly expanding when there were empty lines of spacing in the tooltip.<br />
<br />
* Fixed a bug that was commonly causing very odd and unexpected scrolling in a variety of windows, such as on the scrollbar in settings.<br />
<br />
* The game now properly detects when a textbox is selected for being typed in, and halts all other normal button input that would happen during that time.<br />
<br />
==== Balance ====<br />
* When seeding Golems, ARS, Data Centers and Nasty Planets, take the AI difficulty into account. This should help make Easier games actually easier and Harder games actually harder.<br />
<br />
* Add new Human Resistance Fighters special faction. This affects gameplay similarly to the Human Resistance Fighters in AIWC. Sometimes in a close battle these human-allied ships will warp in to help out. At the conclusion of the battle they will warp out again. Enabling this will make the game easier (there are no downsides). The HRF will only help a given planet every so often, and it won't always help at all.<br />
<br />
=== GUI Screen Scaling Overhaul ===<br />
<br />
* The entire system for how GUI windows are sized, and how they are drawn to the camera, has been redone.<br />
** The actual language for creating the GUI, and all the pieces of the GUI logic themselves, are untouched -- that was really good.<br />
** But the logic for how the GUI responded to screen scale shifts, and how it handled shifts to the desired gui scale stated by the settings, left a lot to be desired.<br />
** This fixes a variety of bugs, but also meant that we had to touch literally every window and translate them into some new coordinate spaces. So some things might look a little strange size-wise if we didn't get something quite right. This will be resolved soon, as we're redoing all the GUI screens anyway. This was just a needed first step prior to the real rework based on the extensive new designs being created by Eric in consultation with us and the GUI focus group.<br />
** This will also let us put 3D elements over the GUI, which was not previously possible. We can either do this with further camera layering, or inside the GUI camera itself. If done in overlay cameras, tooltips and dropdowns and so forth won't draw over the 3D objects properly.<br />
*** The downside of using the same camera that the gui is drawn in, unfortunately, is that we're using orthographic projection with the gui camera in order to make that at all sane to work with. We tried a lot of things with 40 degree field of view (low distortion) camera math, but never could get that working out properly in all aspect ratios and scales.<br />
<br />
* Fixed a bug where if you changed screen resolutions while on a window, that window would disappear and you'd be stuck.<br />
<br />
* Fixed an issue where tooltips had extra space at the end of themselves.<br />
<br />
* Added the ability for us to have controller-less elements in the gui, which is useful for images that never scale or have other logic, such as window backgrounds.<br />
<br />
* Added a general window background that we can use behind various screens for now. This will obviously get fancier in the future, but for now it aids readability on the following screens:<br />
** Error display, multiplayer client connection windows, multiplayer server connection status window, settings window, load and save windows.<br />
<br />
* Updated a variety of method names to be more clear in the GUI section which ones can be called from any thread, and which ones are coming from the main thread only.<br />
<br />
* Added new code that allows us to automatically have the height of a text expanse size to its contents.<br />
** Added a new BasicTextUnderlay that uses this in order to have a background that goes with the text, and in this case using it for the "ongoing message display" to have it no longer be background-less.<br />
** This makes the tutorial text way easier to read, as one example. Also made the tutorial text window narrower but taller, to take up less of the screen.<br />
<br />
* The right-hand sidebar is now way more readable in terms of its text and how it organizes its headers. Especially at smaller screen resolutions or window sizes.<br />
<br />
* It's worth noting that something is a bit strange with the build queue policy menus in terms of how tall the button is on the global one, and how high the header is on both it and the per-control-group one, but these are minor cosmetic issues that will be solved as the GUI transitions into a new format, anyway.<br />
** The behavior with the global menu when you hit escape and how it handles which window is open at any given time is also a bit funky right now, but will also be obsolete later. For the moment it doesn't seem to be a new issue, anyhow.<br />
<br />
* Aligning a window above another group of windows based on BeforeRelated with multiple windows seems to be buggy right now, so will need to be fixed later.<br />
<br />
* There are now two different textbox styles; one that selects all the text in it when you click it (used on the find planet screen), and another that does not (used on the savegame screen and most others).<br />
<br />
* Caveat to overhaul: the game setup window's factions tab currently doesn't let you add more than 2 special factions.<br />
<br />
== Version 0.709 Hotfix ==<br />
(Released February 25th, 2018)<br />
<br />
*New Ship Visuals<br />
** MLRS Corvette new visuals, formation, prefab and LODs.<br />
** Cursed Golem new visuals, prefab, LODs and derelict version.<br />
** Hive Golem new visuals, prefab, LODs and derelict version.<br />
** Dire Teuthida Guardian new visuals, prefab and LODs.<br />
<br />
* Fixed a regression introduced in the prior version of the game that caused squads to get... visually confused. Sometimes having forcefields, sometimes mixing ship types inside a squad, etc.<br />
** This seems to be a bug with our pooling behavior for squads, and may recur if more than 6000 squads are ever on one planet at the same time. However, that's unlikely, and by the time that's becoming more likely we're going to not be using this particular pooling code anyway; that code will be deprecated within the month as we move to DrawMeshInstanced instead. The actual root problem here is darn mysterious at the moment, though.<br />
<br />
* Fixed an unreported bug where if you had fewer than 6000 squads on a planet, you'd see phantom gimbals near the planet center, real small.<br />
** As a bonus from this, also improved the efficiency of the gimbal enabling/disabling pretty notably. Not that it was grandly slow before, but hey efficiency.<br />
<br />
== Version 0.708 Activating Mk3 Grinding Machine ==<br />
(Released February 24th, 2018)<br />
<br />
* All of the icons for the Spire ships and structures are now completed and in place. We only needed the one for the Frigate for now, but figured we'd get them all knocked out at once.<br />
<br />
*Updated Ship Visuals<br />
** Grenade Launcher new formation, prefab and LODs.<br />
** Lightning Corvette new formation, prefab and LODs.<br />
** Missile Corvette new visuals, formation, prefab and LODs.<br />
** Sentinel Frigate new visuals, formation, prefab and LODs.<br />
** Vampire Claw new visuals, formation, prefab and LODs.<br />
** Vorticular Cutlass new visuals, formation, prefab and LODs.<br />
** Armored Golem and Artillery Golem Derelict variants added.<br />
** Etherjet Tractor new visuals, formation, prefab and LODs.<br />
** Dire Magnifier Guardian mesh and materials, LODs, and integrated.<br />
** Dire Shredder Guardian mesh and materials, LODs, and integrated.<br />
** Tweaked the icon vertical positions for the alarm post, armored golem, artillery golem, attrition emitter, black hole machine, raid engine, troop accelerator, and warp gate.<br />
<br />
* The "text for ants" issue should be fixed now, but with the game also honoring the GUI scale for text.<br />
** There is an issue with text overlapping the mark level improperly on the build and tech buttons, but that's a separate issue to deal with that isn't really related to the text logic.<br />
** Thanks to etheric42 and BadgerBadger for reporting.<br />
<br />
* The voice lines for all of the First Officers, Vice-Admirals, and Brigadier Generals are all now recorded.<br />
** There are still some lines left to record for the Watch Commander and Science Officer, but that's it. The bulk of the lines for the Watch Commander, and all of the lines for the Engineering Chief are already recorded.<br />
** There will also be new lines needed for the Former Admiral of the Fleet, but again that's separate.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* Character portraits have now been rendered for the 8 possible first officers, and the science officer, and the engineering chief, and the watch commander.<br />
** These are not yet integrated into the game, but that's coming soon.<br />
<br />
* The Mark Level roman numerals for gimbals have been completely redone in a new format that is much higher-resolution, and which is also a lot clearer for special cases like the ship being off, in FRD mode, in guard mode, in attack-move mode, and in guard mode.<br />
** These are much higher-resolution and therefore still look great when you zoom in on them, too.<br />
<br />
* The unity-style icons for mark levels have been removed. They were really noticeably lower-resolution than the text around them, particularly on large monitors, and there was no reason for that. Now the game consistently uses colored roman numerals in the text itself, which is nice and crisp.<br />
** On the build and tech menus, the mark level numerals have moved over to the bottom center, which makes it so they don't ever get badly-overlapped by the available ship count anymore.<br />
** These are also now colored by mark level, as on the galaxy map and as in the first game, which makes it FAR easier to read these menus in terms of what is available at what mark level, and what all the little icons are about.<br />
<br />
* The main gimbal icons in the midst of the battlefield also now have their numerals colored by mark level in order to match the usage of the mark levels elsewhere.<br />
** Previously we were using those colors to denote what ships were doing, but now that's a small bit of icon at the bottom of the mark level numeral instead. In the first game it was the border around the ship icon, but we're not going there with it in this game.<br />
** At any rate, the fact that the numerals are now colored in the main battle view gives a _tremendous_ amount of clarity, more than we even expected, about what forces on the battlefield are like.<br />
** We're still not showing that on the sidebar at present, which is debatable as a policy, but so far that's what it is.<br />
<br />
* Now, when a ship is under construction it is really easy to see on the gimbal icon's mark level indicator. It has a big panel on it that says "BUILD" if you zoom in enough to see it, or otherwise just is very eye-catching in a helpful way if you're zoomed much further out.<br />
** This is the same as how things like OFF work on them, for ships that are destroyed or disabled (very helpful for checking turret statuses more easily).<br />
** Thanks to Bummeri for reporting.<br />
<br />
* The numeric text on the build buttons and the tech buttons was getting extremely tiny, unreadably so.<br />
** This was primarily because the prefabs were set to have an anchor type of stretch. When combined with the manual text sizing we do, it led to very unhelpful results. Basically text in prefabs in this game should never be set to stretch on any axis.<br />
** The other reason this was strange, in this particular case, was that for some reason the code was directly setting the font size to something that comes out really small. Whoops.<br />
<br />
* Updated the build menu buttons in the bottom-left of the screen. They're still pretty gross and hard to read, and way too cluttered, but you can now see a bit better what your construction options are. It's a little more informative, anyway, but it's going to take an Eric pass before we really have any great progress down there, most likely.<br />
<br />
* Previously, font sizes that were assigned into text in the game were always being rounded to integers. This was hugely detrimental for when we're talking about smooth scaling of the GUI, etc. Now it's always floating-point based.<br />
<br />
* Fixed the issue with text being different sizes on different screen resolutions.<br />
** This, however, has in turn led to widespread chaos throughout the GUI with things being sized inconsistently, so we're going to be working on tidying that up, of course. The good news is that we're revamping the entire GUI anyway, so for now as long as it's legible it doesn't matter if the sizing is strange. If there are legibility issues please let us know, but otherwise we're going to leave it for the time being and hit it as we punch through each section of the code.<br />
** There are two overall methods that text can be drawn now: CalculateSizingBasedOnScreenSize ON (default), or CalculateSizingBasedOnScreenSize (for tooltips right now, but eventually probably for nothing... maybe).<br />
** The premise of CalculateSizingBasedOnScreenSize ON is as follows:<br />
*** First, remember the height of the parent control of the text that will be drawn. How tall is the button that contains me, etc. Or if I'm a lonely bit of text being shown somewhere on the screen without a parent -- in my prefab, notably, so that would still include text that is shown on a panel somewhere -- then it keeps track of the original size of itself. This latter part may need to change in the future.<br />
*** Secondly, every half second or so it looks at the current height of the parent-or-self-as-described-above compared to the original height, and if there's any difference, then it multiplies itself by current / original.<br />
*** This has a wide variety of benefits, mainly centered around the fact that there are a variety of ways that parent buttons and whatnot get scaled, and so being able to scale based on their logic implicitly by checking their size means that things like the build buttons are now super-duper consistent.<br />
*** The downside is for code-assembled panels where text is just put in there however. Aka, the parent panel or button or whatnot is not part of a prefab. There we have nothing to go on for the height change, so the results tend to be that the text gets a bit funky. With an increasing reliance on build-button-style handmade custom prefabs in the future, this issue will progressively disappear.<br />
*** The other downside is relating to things like "basic buttons" that get rescaled not just by the screen size, but also by code saying "hey, I want a little basic button this time." This applies to things like the buttons on the save/load screen, or the looping buttons on the build menu. In those cases, the text winds up being much larger or smaller, respectively, than expected.<br />
**** The reason for this is that the "initial size after code setup" is actually twice or half that of what the prefab defined.<br />
**** We might be able to automate a fix for that, but it's likely to cause more problems than it solves. A better solution will be just either more hand-crafted custom buttons/panels/etc, or simply using the existing xml tags to double the font size of anything you use half height on, and vice-versa, and all the fractions therein. That's a pain, but works, and is very efficient as well as accurate across all screen resolutions.<br />
** The premise of CalculateSizingBasedOnScreenSize OFF is basically what we had before:<br />
*** Calculate ( currentScreenHeight / 720f ) and multiply that by the desired font size. Boom. Crude, but works in cases where there's no better gauge.<br />
<br />
* Fixed the longstanding issue with the selected textboxes having their borders "smeared" if they were sized up at all.<br />
<br />
* Note: text elements, buttons included, without a font_size defined presently get nutsy large after a resize of the screen.<br />
** We'll fix that later, but for now all of the text elements hsould have font_size defined in such a way where that doesn't happen. If you see any, please let us know.<br />
<br />
* Textbox text is currently still using the old style of sizing, because our logic for the new kind wasn't working out with them yet and we didn't have time to fully debug it yet.<br />
<br />
=== Classic Music Makes An Exciting Return ===<br />
<br />
* Out of the 76 tracks that AI War Classic (including all of the expansions) had, 54 of them have now been added to the new game for during-gameplay listening.<br />
** These 54 tracks total 4 hours and 26 minutes total in time!<br />
** This isn't the "real" soundtrack to the new game, and the mastering and instrumentation on these tracks is often not up to par with what the new soundtrack will be.<br />
*** However, given the extra time it takes to do a serious reorchestration and remastering of old tracks, and given that we're only doing a handful of those for the new game (along with the brand-new tracks), it made sense to pull these forward since a lot of people have such fond memories of these ones.<br />
** As we pulled these over, we did some light mastering and multiband compression on them in order to bring out the subtleties of these tracks in a way you've never heard, particularly if you don't have a studio-grade music setup (home theater grade wouldn't even cut it).<br />
*** This freshens up the tracks and should let you hear them in a fidelity you've never heard before, but it also isn't compatible with quite all of the tracks. That's one reason that 22 of the Classic tracks were omitted; typically those wound up having sounds that were too "bright" or grating when brought up to an appropriate mastering level, indicating they'd need a lot more work to be brought over.<br />
*** The other reason we didn't pull over some of the tracks was because of the general mixing quality being low on a few of them, or the virtual instrument patches sounding dated or painful by modern standards. Didn't want any of those contentious tracks in place here, even though the underlying composition was good or great.<br />
** Anyhow, you can thank Badger for suggesting this; it should be a very pleasant addition to the game even after the real soundtrack is in, although we'll have an option for you to disable the Classic soundtrack tracks if you so desire.<br />
<br />
* The setting for being able to disable the music from the classic version of the game is now in, in case you prefer just hearing the new tracks. Be warned that right now that's only 3 tracks, though.<br />
** The rest of the new-game tracks are expected to arrive a little after March 31st.<br />
<br />
== Version 0.707 Activating Mk2 Grinding Machine ==<br />
(Released February 17th, 2018)<br />
<br />
* New Ship Visuals<br />
** ArmoredGolem mesh and materials, LODs, and integrated.<br />
** ArtilleryGolem mesh and materials, LODs, and integrated.<br />
<br />
*New Formations<br />
** AutocannonMinipod new formation,prefab and LODs.<br />
** Eyebot new formation, prefab and LODs.<br />
** Bomber new formation, prefab and LODs.<br />
** Raider new formation, prefab and LODs.<br />
** Raptor new formation, prefab and LODs.<br />
** Spider new formation, prefab and LODs.<br />
** Armorship new formation, prefab and LODs.<br />
** Infiltrator new formation, prefab and LODs.<br />
** Sniper new formation, prefab and LODs.<br />
** Space Plane new formation, prefab and LODs.<br />
** Space Tank new formation, prefab and LODs.<br />
<br />
* When the Sim layer wants a squad to die it now tells the Vis layer "Please kill this squad at your leisure" instead of "Make this squad disappear right now." This fixes a bug where sometimes a squad would just vanish instead of exploding properly.<br />
<br />
* The "Attack" section of the resource bar now will show which planets are under attack and how strong the attack is when hovered over, just like AIWC<br />
<br />
* When choosing where to place a Shield Generator, draw a circle around it to show the radius of the Shield. This way you can figure out whether the shield generator covers the structures you want it to.<br />
<br />
* Since the main menu logos bugged so many people in the GUI focus group, but Chris liked the effect of them being metallic instead of 2D, we figured we'd start with a compromise and see how people react in the next version: https://youtu.be/YwhpRBkuFJs<br />
<br />
* Updated the game so that we're now able to draw wireframe circles with greater precision than before, if we wish.<br />
** We can now draw them not just with 48 vertices, but also with 90, 180, or 360 vertices.<br />
<br />
* Turned down the temporal filtering on our bloom effect on the main menu, to remove smudging. Also removed the chromatic aberration, since some people were not reacting all that favorably to it.<br />
<br />
* If you are holding down Ctrl (or whatever button is configured to send you through wormholes on left-click), then the wormhole names now pop forward above everything else for you to view them.<br />
** As part of this, there's new code demonstrating that any unity GameObject that is set to have its layer as 24 will now be drawn by a new overlay camera that is higher than everything but the GUI.<br />
<br />
* All of the "voice work" (ha) is now in place for the Zenith and Spire races. They have pretty freaky sound effects that are a mixture of organic and mechanical in nature. Special thanks to Sinematic and Bluezone for the base effects used in these.<br />
<br />
* Dead turrets do not contribute to the Strength Count for the sidebar anymore<br />
<br />
* Added some protection against null exceptions, and more detailed logging for them, in the sidebar drawing code.<br />
<br />
* Fixed some discrepancies in how text was scaled (based on resolution and/or the ui-scale setting) compared to other UI elements.<br />
<br />
* Fixed a bug in the "make the tooltip always be on top logic" where some code could modify unity-engine state from off the main thread. Unity gets very grumpy when we do that.<br />
<br />
* Split out unit-on-death logic into "first death" and "any death", since things like controllers can die and be reclaimed several times during the game.<br />
** AIP-on-death and such goes in the first-death logic.<br />
** Most other stuff goes in any-death logic. For instance, the checks for taunts/messages when certain things die.<br />
<br />
=== Balance ===<br />
<br />
* The Warden fleet has been hit with the nerf bat again. Being outnumbered 3 to 1 in most battles isn't much fun.<br />
<br />
* Added a new AI Type, "Tsunami" that spends most of its resources sending Waves at you<br />
<br />
* Added a new very-minor faction called "The Lost Spire Frigate," which gives you a way to find and capture a spire frigate for your own use like you would a zenith golem. The spire frigates are the smallest and weakest of the spire faction ships, but are still quite formidable. The main body of spire ships in a real spire faction won't be coming until after 1.0, so this is a nice preview. And in the long run, it's still a fun little way to get an extra spire ship when desired without having to enable all the other larger and more complex spire bits.<br />
<br />
* Ships that have taken "cloaking damage" from firing are now subject to the normal delay before they can regenerate any cloaking points.<br />
** They also take cloaking damage proportional to their max cloak, not their current (that makes sense when there's an enemy tachyon to reveal them, but it's too harsh if there's no such).<br />
<br />
* AOE shots like the plasma torpedo now travel to their target's last location, if the target is destroyed while the shot is midflight.<br />
** The AOE shot will thus be more likely to detonate in a useful location, though it's still possible to "miss" this way.<br />
<br />
* Plasma torpedoes no longer do full damage to up to 10 targets in range; instead they do full damage spread over all targets in range. The spread isn't necessarily even, but it makes a decent effort to distribute the hurt.<br />
** This removes their ability to punch huge holes in very dense formations, but maintains their ability to (for example) melt unprotected missile corvettes in alarming quantities.<br />
<br />
=== Bottom-Left Menu Revisions ===<br />
<br />
* The button that opens it has been removed, and now it's always visible.<br />
** The button used to display the name of the current part of the menu shown, but that name's now displayed above the menu.<br />
<br />
* Instead of one "base" menu when you have a selection, and another when you don't, those have been combined into a smaller set.<br />
** Some functions have been shuffled to a sub-menu ("Special Commands").<br />
** Others have been removed because they're much better off handled by the keyboard (and maybe some small top-level buttons when we get to redoing the ingame UI) :<br />
*** Selecting a control group<br />
*** Assigning the current selection to a control group<br />
*** Toggle FRD<br />
*** Free Look<br />
** And the Objectives button has been removed as it wasn't very useful. Can be revived later if a workable design arises.<br />
<br />
* The backquote (`) and 0 keys no longer have the special meaning of closing the entire bottom-left menu or opening the base layer.<br />
<br />
* Instead of responding to the 1-9 keys, these buttons now respond to the F1-F9 keys (F10-F12 are theoretically supported, but the menus are set up to cap at 9 buttons).<br />
** The open-console keybind has been changed from F3 to Ctrl+F3 (though that might be changed to something further from Ctrl+F4).<br />
<br />
* 1-9 now always refer to their corresponding control groups, regardless of the state of the bottom-left menu.<br />
** And 0 now refers to a 10th control group.<br />
<br />
* The sub menus now draw in different colors depending on your "depth", so it's clear when you switch menus that something has changed about that menu.<br />
<br />
== Version 0.706 Activating Mk2 Grinding Machine (Part 1) ==<br />
(Released February 10th, 2018)<br />
<br />
* Updated the visuals for the AI Warp Gate to now be consistent with the new (and final) wormhole graphics used in the game, as well as being in the new PBR style in general for the gate part of it.<br />
<br />
* New graphics have been added for the Dyson Sphere warp gate, so that it looks like it also belongs with the other wormholes and the AI Warp Gate, but just... much more Dyson.<br />
<br />
* Now that the dyson sphere is actually the background planet at which you are located (as it should be), we have the dyson sphere warp gate more locally at the planet. The description of that was still acting like it was describing the dyson sphere itself, and was referring to the "local planet," where actually there's no planet this time, just a star. This gets confusing fast. At any rate, the description of the dyson sphere warp gate has been updated to hopefully be more clear without introducing nomenclature issues for new players.<br />
<br />
* The background planets now all rotate at 1/3 the speed they previously did, since it was a bit on the dizzying side before.<br />
** Thanks to Cyborg for suggesting.<br />
<br />
* The Dyson Sphere now also rotates in the background, like other planets.<br />
<br />
* The next (smallish) batch of voice acting is now in. The fighter squadron leader now has a voice, by voiceofsr, and responds to your attack and move orders. He's a bit on the the cocky side, but not annoyingly so.<br />
<br />
* The voice work for attack and move orders is now always delayed by about half a second, and the underlying beep is always played prior to that, so that there's a consistent nonverbal style of attack or move order sound always played, which helps provide a foundation for understanding at an... ear-glance... what is happening.<br />
** This also allows us to do voice move orders for the wormholes, which previously we were not doing.<br />
<br />
* Fixed an issue where the voice command items were not respecting the disable voice setting in options.<br />
<br />
* Quiet unnecessary audio effects from minor factions<br />
** Off-planet combat audio now only triggers when you have vision of that planet (so when the Devourer is destroying Far-Flung planets you won't hear about it).<br />
** Fix a bug in the Nanocaust and Dyson factions that was causing Move Command noises to be played whenever they moved their ships around.<br />
<br />
* Fixed a very longstanding bug where one of our random-picking algorithms (a random draw bag) returned the first item roughly twice as frequently as the other items. Now the distribution is effectively even.<br />
<br />
* Fixed a bug where switching a lobby faction slot from (say) Devourer to Dyson caused a crash.<br />
<br />
* Fixed a bug in the support-for-different-homeworlds-in-MP code that was causing the tutorial to crash on start.<br />
<br />
* Fix a bug where sometimes a shot might use stale data for its ship Target. This would cause error messages and sometimes ships would fail to blow up visually.<br />
<br />
* The overall method for detecting squad mouseover has been changed to now use radius on the plane of the playing field rather than collider checks.<br />
** This improves the performance in one of our test savegames from having over 7.00ms of PhysX thrashing down to just 0.12ms of efficient vector math.<br />
** The downside of this approach is the fact that we use cameras that are often at an angle, and so it's quite possible your cursor can visibly be "over" a ship in terms of being between your eyes and the ship, but since the ship is below the plane of play the red cursor is actually well off to the side somewhere.<br />
*** This mainly applies when you are VERY zoomed in, and have the camera tilted a lot, or when the ship is very large. So we'll be putting in some future work to deal with those cases. But for now the massive performance improvement is very very much worth it.<br />
<br />
* Added protections against null exceptions when changing lobby faction settings rapidly.<br />
<br />
* Vastly improved the RAM handling of the vis layer for squads and gimbals, and made it so that they are now reused cross-ship-type rather than being per-ship-type. There can now be up to 6000 squads on a single planet before there's any sort of extra hit to performance with new squads getting added (aka the time it takes to set up the new ships, that is). Before it was having that performance hit on every squad added including the first one.<br />
** In the grand scheme this doesn't really change much performance-wise during runtime, but when a lot of ships appear at once, or you move to a planet with a lot of ships types you haven't yet seen during this execution of the game, then it prevents a notable pause that was happening there.<br />
<br />
* Slowed down many shot types to make it easier to have "volleys" have more variation.<br />
<br />
* Updated Visuals<br />
** Updated Advanced Research Station visuals.<br />
** Updated Coprocessor visuals.<br />
** Updated Data Center visuals.<br />
** Updated Design Template visuals.<br />
** Updated Experimental Turret Controller visuals.<br />
** Updated Ruined Network Node visuals.<br />
<br />
=== Interface Improvements ===<br />
<br />
* Reorganized the Settings menu to display Settings by Category instead of just showing all of them at once. It is actually usable now!<br />
<br />
* Fix a bug where the "Show Mark Levels" setting was doing the opposite of what you requested.<br />
<br />
* Selecting "Mobile Military" with "M" no longer also selects things like Fortresses<br />
<br />
* The Ark will now always be considered the key unit of a control group it is part of.<br />
<br />
* Fixed a longstanding very minor annoyance that nonetheless soured the experience somewhat: the little double-red-circle at the mouse cursor was jittery, previously. Now it's smooth as butter.<br />
<br />
=== Balance ===<br />
<br />
* Roughly halved the Warden population cap (which is based on the AI Sentinels' current budget, which is mostly based on AIP).<br />
<br />
* The Warden fleet now won't camp less than 3 hops away from your territory, meaning it's got to cross at least one full planet to interfere if you attack a planet bordering you.<br />
** On Warden Difficulty 6-9 it's allowed to camp one hop closer.<br />
** On Warden Difficulty 10 it's allowed to camp adjacent to you.<br />
<br />
* Wardens now avoid planets under the influence of hostile factions, not just the control.<br />
<br />
* The Dyson can now decloak enemies on its planet.<br />
<br />
* Fuel costs reduced by roughly 25%.<br />
<br />
* Warp Gates and Design Backup Servers now die when the AI loses the planet's Controller.<br />
<br />
* The Devourer now assiduously avoids pathing through a planet with a King unit (Ark or Master Controller), to limit the number of games it ends singlehandedly.<br />
<br />
* Carrier Starship drones now self-attrition if their carrier is dead or not on the planet.<br />
** Also fixed a bug where the drones could "forget" their AI and stop dead.<br />
<br />
=== Subsquads and Intra-Squad Formations ===<br />
<br />
* The individual-ship formations (those inside a squad, not the multi-squad formations) are now read out of xml in an FormationIntraSquad class type.<br />
** This is replacing our old method of loading these formations from asset bundles, and makes it so that anyone can create formations without needing unity to do so. The aiw2squads asset bundle is now pointless and can be removed from future builds.<br />
** The formations can still be set up using the old approach if desired, however. Then just attach the new SquadDataDumper component to the root transform of the old style squad, hit play in the AIWar2ModdingAndGUI project, and it will dump your xml results to the console log. This is not the preferred approach anymore, but it's there and is handy.<br />
** The ability to have different formations per faction type was actually set up incorrectly previously. Fixed.<br />
<br />
* The balance_ships_per_squad entry on individual ships has been removed. This was a bit inconsistently used, and was only being used for ships that had a cap of 1 ship per squad.<br />
** Most things had already been moved over to the Granularity object, but not quite all; now everything has.<br />
** As far as that goes, all of it is now handled on the Granularity object.<br />
** Previously the total number of ships and the total number of squads per granularity were defined, which was confusing. That meant ships per squad had to be inferred.<br />
*** Now ships per squad and total squads are defined, and total ships is inferred instead. This also has the benefit of never resulting in bad divisions if the person creating the xml made a mistake.<br />
<br />
* The Multi Needler Corvettes are now the first example of our new "subsquad rendering" approach that we'll be using for a number of the fleet ships.<br />
** Rather than having a separate GameObject with all its attendant overhead for each ship, we're instead merging some of the ships into groups -- in this case, into two groups of three rather than five groups of one.<br />
** This lets us save an enormous amout of overhead and makes the game run faster while drawing actually more ships than before.<br />
** We're also combining this with an approach where we're having the ships (in the small squads at least) bob up and down to give them some more visual interest.<br />
*** But the really cool thing about this is that we're using colors baked into the vertices of each subsquad ship before we combined them so that they are at different offsets in their bobbing, actually making them look a lot more separate than they are.<br />
** The main downside of this approach is that we can't blow up individual ships using this approach; just entire subsquads at a time. So we have to balance performance against that. The GOOD side of that, however, is that individual explosions are a lot more impressive, since more ships going up at once looks cooler anyway.<br />
*** In practice, you're unlikely to notice any difference except that explosions look cooler, there are more ships and they have better formations, and the performance is better. The Multi-Needler actually isn't really a stellar example of this, since we only get a savings of 60%. In other cases we'll be able to save up to 80% or more if we want. Even so, the performance improvement is really notable in one of our test cases that was spamming hundreds of multi-needler squads.<br />
<br />
* Also the Multi Needler Corvettes have been repainted in the new style, and have their LODs and whatnot updated. They also use an actual intra-squad formation that looks nice, as well as having the proper squad hover radius.<br />
<br />
* The Fighter now has been combined into 4 subsquads of 5 ships each in a squad, rather than one squad of 20 raw ships. Its formations have also been set up to look better, although it's still pretty ragtag by design with these.<br />
** Not only does this lead to a better performance profile per-ship, but also this lets us do LODs for the vertices of the combined subsquads, which is a secondary benefit we hadn't even thought of before. So this now saves on vertices as well as the culling, batching, and so forth logic.<br />
<br />
* Fighters now use different formations, and indeed different subsquad-models, for humans and the nanocaust compared to the AI. This is more a matter of proving out we can do this and providing an example test case, but fighters are of course also something that are much more common than a lot of other ship types.<br />
** The AI fighters remain kind of skewed to the side and in an aggressive wedge. The humans are in more of a downward-sloping diamond. The nanocaust are in kind of a skewed strange diamond that's fitting with their corrupted nature.<br />
<br />
* Laser Gatlings are now the third ship type to use subsquads. Rather than 40 individual ships (slooow), there are now 42 ships shown in 6 subsquads (that's 2 extra ships for a savings of more than 85% in terms of performance.<br />
** This was all done as part of a video for Pepisolo and Goldenwolf, available here: https://youtu.be/gvg7iAIQln8<br />
<br />
== Version 0.705 Hotfix ==<br />
(Released February 3rd, 2018)<br />
<br />
* Continued incremental progress on Game Lobby tooltips<br />
<br />
* The Nanocaust can now have its intensity set in the Game Lobby. This will cause the Nanocaust to Frenzy more or less frequently<br />
<br />
* Tweak some settings to be more readable (DisableSound is now "Sound", for example, because negative options are confusing)<br />
<br />
=== AI Refinement ===<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer closer wormholes" logic did way more work than was really necessary, which contributed to slowdown on the long term planning threads.<br />
<br />
* Fixed a bug in the AI retreat code where the "prefer wormholes to planets that won't murder me" logic ignored the strength of the retreating force itself (so everything looked super scary unless there was an AI force already there).<br />
<br />
* Fixed a bug in the AI Overrun logic where it wouldn't leave enough behind to efficiently deal with any non-military units (controller, resource points).<br />
<br />
* Fixed a bug where AI Guardians could be "partially freed", and showed as threat but were still could not leave their planet because they were guarding the controller (they now break the guard relationship in that case and become fully threat).<br />
<br />
* Toned down the impact of "nearby unengaged mobile hostile strength" on the AI's willingness to commit to an attack, if that strength is more than one hop away (previously it scaled by distance on just about every other usage of this data, but not this one).<br />
<br />
* Made the AI more willing to operate on planets "under the shadow" of a nearby huge human fleet if those planets were completely empty of hostiles.<br />
<br />
* Fixed a bug where the AI could issue an attack order against a neighboring planet and the ships close enough to the wormhole would go through without checking to see if they should wait due to strength imbalance.<br />
<br />
== Version 0.704 About that Flair ==<br />
(Released February 2nd, 2018)<br />
<br />
* All of the ship icons are now a bit larger (not much!) in how they display in the gimbals in the main game view and on the galaxy map, so that they are easier to see. Just because of the shaping of the new icons, showing them that small was not quite working out as well as hoped, but now it's good.<br />
<br />
* There is a new gimbal_icon_size_multiplier xml tag for all game entities that can be set to some value to make ship icons larger or smaller relative to the baseline. For instance:<br />
** All of the "king" type units now show up with size 1.5, as do a lot of the really dangerous stationary toys that the AI might have on a planet, as do player flagships, AI usurpers, and most golems.<br />
** The controller on a planet, and the dire guardians, show up as size 1.35.<br />
** Regular guardians and non-flagship starships now show up as size 1.25.<br />
** The devourer golem and the zenith trader now show up as size 2.<br />
** Most of the drones now show up as size 0.7, although the hunter-killers show up as size 1.25 instead despite ostensibly being drones.<br />
** All of this is of course subject to further tuning, but the mechanism for doing said tuning is now there, and a good first pass is in place for making things more or less prominent on the battlefield as needed.<br />
<br />
* All of the remaining ship icons are now in place, including the starship versions looking different from their flagship counterparts.<br />
** This is now a whopping total of 155 ship icons -- thanks, Blue!!<br />
** This includes icons for the Nanocaust ships and structures, which are in place, and the interplanetary guns, which are not; but it does not include icons for the spire, which are also not in place. Those latter two are going to be post-1.0 additions, as they were stretch goals from the kickstarter that we can't do justice in the same amount of time it will take to create the base game itself.<br />
<br />
* Fixed up the at-mouse-cursor tooltip in a few ways:<br />
** To now always display above EVERYTHING, including over dropdown lists that have popped up, so you can properly read what is in the dropdown list.<br />
** To show a bit more to the right and down from the mouse cursor, so that the standard windows mouse cursor doesn't overlap the text at all.<br />
** To make it give a bit more height to itself whenever it has multiple lines, because in the top resource bar it was often coming out of its display area previously.<br />
<br />
* In the prior version of the game (0.703), you may have noticed that a lot of the icons were really hard to decipher in the main view because their borders were stretched out strange; but they looked fine in the sidebar and other menus.<br />
** For the 90px ship icons that are shown in the main view, it turns out that those need to have border images that are 102px in size. That extra size allows for borders that extend beyond the 90px base of the original ship icon when need be.<br />
** This change is super easy to make: it's just a matter of creating a photoshop batch action that takes the existing 90px border icon image and increases the canvas size to 102px instead, with the border icon image remaining centered, then re-saving over top of itself. If anyone ever needs any larger icons, they can use that extra space, but otherwise it's just empty pixels for now.<br />
<br />
* Updated Ship Visuals<br />
** Updated the visuals on Advanced Research Station, Coprocessor, Data Center, and Design Template.<br />
** Beam Cannon LODs and integrated.<br />
** Alarm Post mesh and materials, LODs, and integrated.<br />
** Ruined Network Node mesh and materials, LODs, and integrated.<br />
** Super Terminal mesh and materials, LODs, and integrated.<br />
<br />
* Fixed some bugs where a thread that was in "abort requested" AND "stopped" states simultaneously (it's a flag enum, so it can have multiple values at once) was not being considered as being in a terminal state, which led to various panicking over threads not terminating, etc.<br />
<br />
* Fixed a bug where intentional thread-aborts were causing screen-blocking error messages (the situation isn't ideal, but it shouldn't be acting like a crash).<br />
<br />
* Fixed some bugs where a planning thread being killed would skip its finally-block teardown logic, causing the game to think the planning was still going and thus the game was unwilling to finally release entities that had been killed.<br />
<br />
* Fixed a bug where a control group would never "forget" an old entity ID it had previously owned unless it was directly removed from the group by player action. This lead to ever-increasing numbers, even across save/load. This wasn't a big deal except that the number looked weird, but it was definitely untidy.<br />
** It also strips the already-dead entity-ids out of all you control groups when you load an old save.<br />
<br />
* Hitting "P" during the game lobby no longer starts the game. <br />
<br />
* A button has been added to the Main Game screen to make it easier to report bugs.<br />
<br />
== Version 0.703 ==<br />
(Released February 1st 2018)<br />
<br />
* Fixed a bug where the window size settings were not being properly applied in the standalone game.<br />
<br />
* Main menu ship changes: the main wing of the ship no longer has giant glowing bits; the unity bloom has been removed; the amplify bloom has been toned down from 0.8 to 0.5 in intensity; the extreme chromatic aberration has been toned down a bit.<br />
<br />
* Fixed an issue with the sound effect clips list and voice group lists using the wrong random method and thus being able to hit IndexOutOfRangeExceptions.<br />
<br />
* No longer shows sidebar information when you don't have vision of the planet. It instead shows only your active Control Groups and a message saying "You don't have vision here"<br />
<br />
* Main menu ship improvements:<br />
** The bloom on the main menu is less intense than before, even on the parts that still emit (unlike the wing).<br />
** The AI War 2 logo is way larger on the ship on the main menu, and the Arcen logo is somewhat larger.<br />
** Made a lot of updates to the main menu ship so that it moves about a bit more and thus exposes itself from a wider range of perspectives. Also made it so that there are more and better thrusters at the back, and so that the ion bar at the front of the engine is letting off particles.<br />
<br />
* Fix a bug where entering the settings menu from the Main Screen before starting a game would skip the Game Lobby when you tried to start a game<br />
** Thanks to Bummeri for reporting<br />
<br />
* Ships with cloaking now display their remaining cloak strength when you hover over them<br />
<br />
* Updated the game to now use the "monolithic version" of UnityEngine.dll, rather than the split-out one. This will hopefully prevent the crashing issues that we were seeing on OSX in the last version.<br />
<br />
* Fixed a variety of bugs with the ship orders voice command playback code, so that now that works properly. The current only voice commands relating to ships (which this is about) is for civilian ships and their move orders.<br />
** Part of this was to make it only call the voice prompt of the most-common ship voice group within the current selection when you issue orders. Aka, if you mostly have ships selected that give bomber-style voice chatter, it plays that instead of the voice clip for the one fighter-style voiced ship in your mix.<br />
<br />
* Updated the voice bus in general to allow for up to 7 overlapping voices at once, if players are giving that many orders. However, that bus has been renamed to VoiceRoutine to make it clear that's what this is for. The really important voice notes are under the Alerts bus, which does sound ducking on the voice routine bus.<br />
<br />
* Hitting B to select the next Builder unit (Flagship, Ark, Controller, etc) will now also open the Build Menu for that unit.<br />
<br />
* Fixed a bug that was preventing the most recent version of the game from launching at all on OSX.<br />
** Thanks to Taichikitty for reporting.<br />
<br />
* The objectives window now suggests repairing Golems.<br />
<br />
* Updated the newest versions of the game camera to no longer care if the cursor is over top of the gui for purposes of detecting screen edge scrolling.<br />
** Thanks to lessster for reporting for absolutely annoying this was; we don't play with the edge scrolling on, and so hadn't noticed.<br />
<br />
* Updated Ship Visuals<br />
** Integrated Plasma Torpedo Launcher.<br />
** Warhead Interceptor mesh and materials, LODs, and integrated.<br />
** Advanced Starship Constructor mesh and materials, LODs, and integrated.<br />
<br />
* Some tooltips are present in the Game Lobby, but they are underneath the dropdown window<br />
<br />
=== New Icons For Ships! ===<br />
<br />
* Maaaassive updates to the way the game icons are drawn. This has been 20 calendar days in the making, at this point, and has well over 120 individual new icons.<br />
** Basically the old system of having a smaller number of base icons, plus "flair" to distinguish the sub-type... stunk. It was unclear and even Chris, who came up with the idea, was constantly confused by it.<br />
** We've now gone back to a system more like the first AI War, where everything has its own unique icon, and the idea of flair is (mostly -- more on that in a minute) gone.<br />
** In order to keep some of the visual consistency between icons, however, we've worked on a "visual nomenclature" for icons, so that things like turrets are easy to identify at a glance, as are things with laser weapons. So seeing a laser gatling or a laser turret for the first time would give the observant player an idea of what those things do without ever having seen them before. This was the goal of the flair previously, but it was just very unhappily executed -- mainly because the style and arrangement of that nomenclature was far too separated from the core colored icon itself.<br />
** Now, the underlying engine mechanics for flair -- something short and wide that goes under the icon like flair used to -- is still there. We're leaving it in place, because it isn't hurting any performance areas, and Badger had the thought that it might be nice someday to have a toggle or similar to hold down and then have "flair" show up telling you some attributes about each ship. We don't have any plans to do this prior to 1.0, but if someone wants to mod it that's fine, or if we later decide to do it.<br />
<br />
* Updated the right-hand sidebar to now show the borders for ships in black, rather than white. This is a lot easier to read, and is more consistent with the icons in the main view.<br />
** When hovering over a ship type either in the sidebar or in the main battlefield area, it now highlights any matching types with a white border instead of black. On your team or other teams -- so that's handy for seeing who has how many bombers, etc, at a glance. And it makes the right-hand sidebar feel more responsive to mouseover.<br />
<br />
* The design of the build menu items has been updated a bit. Since there is no longer flair, these now show the main icons larger and to the right, and some other things moved leftward. This isn't remotely the final design for these, and they are now definitely wider than they have to be, but it's a start.<br />
<br />
=== Multiplayer Work ===<br />
<br />
* Fixed several bugs that were causing the join-game process to take way longer than necessary.<br />
<br />
* There's now a textual display of the connection status on both the client and host during the join-game process.<br />
<br />
* Fixed several other bugs that were generally hosing multiplayer.<br />
** There are still a bunch of issues in actually getting connected and potentially in performance during the game, but we're getting there.<br />
<br />
* Different players can now pick different starting planets in the lobby.<br />
<br />
* Different players get their own color consistently.<br />
<br />
* Fixed some bugs where the first player always got certain claimables, rather than the player present.<br />
<br />
== Version 0.702 Activating Mk1 Grinding Machine ==<br />
(Released January 25th, 2018)<br />
<br />
* The galaxy map camera now has the same bloom effect that the main game view does. Mostly this has no real visible effect, but when you see a dyson sphere, well...<br />
<br />
* Fixed a super annoying bug with the dropdowns, where basically the topmost item was not being shown.<br />
<br />
* Tweak the options for Octopus Map (per Tadrinth's suggestion)<br />
<br />
* Visual Bugfixes<br />
** Fix a bug where displaying active orders (with Shift) showed lines going off the edge of the screen when units were assigned to go through wormholes<br />
** Ship to Ship lines (like Tractors) now go from randomly chosen members of the Source and Destination squads, not always the first member of each squad<br />
** Fix some issues with shots not correctly hitting their targets (both Shielded and Unshielded cases)<br />
** When the game is lost, hide the gui while the "You Have Lost" text is printed. The GUI will then come back after a few seconds so you can look around the galaxy.<br />
** Fix a bug where we weren't updating shots on a number of vis frames, which makes things look choppy<br />
** Fix a bug where we weren't correctly killing all the ships in a squad when fatal damage was done<br />
** When a shot hits its target, set its "Time till I die" to 0 since it just hit something. Otherwise shots could linger strangely on the map.<br />
** There is a known visual bug where if your squads are shooting a shield from point-blank range, it can look like the shots are going through the shield.<br />
<br />
* Ship visual updates:<br />
** The "science generator," which was previously (and always temporarily) just some random building on each planet, is now properly a "husk" of a ship from an old ancient race. Studying these husks, of which there are 5 visual variants, gives your scientists Science points, just as the random building-thingy always did in the past.<br />
*** For those interested, these are actually Neinzul husks, which is kinda neat. They're still glowing with internal fusion reactions even thousands of years after falling in battle. They use actual models for Neinzul units that were originally created for overpainting in Stars Beyond Reach.<br />
** The Space Planet has had its visual updated to look a bit more science-fictiony and fit better with the rest of the aesthetic of the game. This mostly had to do with the cockpit and its glow.<br />
** The space tank also needed a little love, to be a little more tank-like and a little more in line with the other ships. Fixed.<br />
** The new Spire visual updates are all in place, although not used in the game yet.<br />
<br />
* The wormhole visuals have been redone yet AGAIN. (Anyone keeping count? Not even sure how many times that is now -- at least five, maybe more).<br />
** The new visuals are no longer particle-based, but instead use a couple of GPU-instanced sphere-ish meshes. The overall effect is... probably slightly more efficient than before, but it's hard to be exact with that, because it depends on your hardware and what the limiting factors are in your visual throughput. Overall it's not much of a difference either direction, though.<br />
** The big reason for the change with this one is that now this is a true 3D object again, rather than billboarded particles. This makes a lot easier task for us in terms of creating a warp gate with visuals that fit with the visuals of the wormholes, and it also makes the wormholes look VASTLY better when you zoom in close to them. Before it was getting painfully pixelated because of the sprite-based nature of those particles.<br />
** And lastly, this is more cohesive with the way that the visuals for special effects have been headed in this game; it's all very geometry-based, now.<br />
<br />
* A variety of updates have been made to our sound playback engine to make things quicker for us to set up, and to better-accomodate the needs of our voice pipeline (where things should not be said too frequently, and if nothing is available to say because of that rule, then a nonverbal sound effect should be played instead, on the proper sound bus in both cases).<br />
<br />
* The first voice acting is now integrated into the game: the engineering commander, played by Ra Palacio, now cheerfully accepts your orders for building construction.<br />
<br />
* Plasma Torpedoes are now AOE weapons that can hit up to 10 distinct squads. Their dps is still balanced on an average-targets-hit of 1 because generally they'll hit a shield and that's it. Once the shields are no longer covering the formation they become very dangerous to the stuff around.<br />
** The new AOE visual effect for these is pretty awesome.<br />
** The shot speed on these has also been cranked down so they aren't so insta-hit.<br />
<br />
* Fixed some bugs where an anti-shield weapon would only get the bonus when hitting a shield if it was targeting a shield; if it targeted a non-shield target under the shield it wasn't getting the bonus.<br />
<br />
* Lightning Corvettes:<br />
** Squad size: 5 => 2<br />
** Rate of fire: Normal (1x rof, 1x dps) => Very Low (0.25 rof, 0.8x dps)<br />
** Range: Short (1x range, 1x dps) => Very Short (0.3x range, 1.2x dps)<br />
*** It actually had to be almost this close to hit already, so this is more of a bugfix to avoid it firing without hitting.<br />
** Similar changes were made for Lightning Turrets.<br />
<br />
* Grenade Launcher:<br />
** Cap from Mild-Low (100 ships, 0.9x dps) to Very-Low (30 ships, 0.75x dps)<br />
** Rate of fire from Normal (1x rof, 1x dps) to Low (0.5x rof, 0.9x dps)<br />
** Similar rof change to Flak Turrets.<br />
<br />
* One exception has been added to the rule that "if a mobile squad runs into an enemy shield, the squad is pushed out of the way".<br />
** That exception is "The Ark is Chuck Norris. Therefore, if the Ark would get pushed, the enemy _shield_ gets pushed instead."<br />
** This means that if you're willing to risk your Ark in the middle of the fight, you can push enemy shields off their defenses like a bowling ball.<br />
<br />
* Fixed some bugs preventing sidebar mouseovers from showing unit data if there was more than one unit in that "cell".<br />
<br />
* Fixed a null exception when using the formations without a shield generator in the group.<br />
<br />
* Fixed some bugs where the warden/hunter fleets could get confused if you started a game, quit, and started another without closing the application.<br />
<br />
* Fixed a bug where the "escape menu" stayed open when used to quit a game (so it would be open when you started another game).<br />
<br />
* Put in additional protections to ensure that all secondary threads do terminate if they run too long (with a warning message so we can be notified if it's common).<br />
** And also some new protections to ensure those threads are promptly terminated when you quit a game, so that starting another game doesn't run into stale threads still doing stuff in the background.<br />
<br />
* Nerf the Dyson spawn rate at higher intensity; this makes it actually vaguely playable at up to 10 (I hope).<br />
<br />
* Fixed a bug where a dying squad could disappear and then briefly reappear before disappearing again for good.<br />
<br />
== Version 0.701 Hotfix ==<br />
(Released January 15th, 2018)<br />
<br />
* Updated Ship Visuals:<br />
** Adjusted the size of the Armor Ship, Infiltrator, Sniper, Space Plane, Space Tank, and the Grenade Launcher. Completed the integration of the Autocannon Minipod, Raptor and the Spider. <br />
** Experimental Fabricator mesh and materials, LODs, and integrated.<br />
** Lightning Warhead, LODs, and integrated.<br />
** Warhead Nuke, LODs, and integrated.<br />
** Flak Turret, LODs, and integrated.<br />
** Ion Cannon mesh and materials, LODs, and integrated.<br />
** Orbital Mass Driver mesh and materials, LODs, and integrated.<br />
** Warhead EMP mesh and materials, LODs, and integrated.<br />
<br />
* The game has now been fully updated to Unity version 2017.3.0p1, from the prior version 2017.1.0p4 it had been running on.<br />
** As part of the upgrade, the performance of the game has improved in general by a little bit, and we have better ability now to profile it.<br />
** We've also now gained the ability to make a number of changes to PhsyX-related parameters that were previously slowing the game down quite notably; the performance footprint of moving squads around has fallen by at least half, now, which is awesome.<br />
*** The key change made was to turn off the automatic syncing of transforms every time transform position or rotation was changed in the sim. Now those just sync prior to FixedUpdate. The only reason the syncing needs to happen at all is so that we can do raycasting to determine what ships the mouse may be hovering over.<br />
*** That said, we were also able to change the contacts generation from the legacy contacts generation to their newer persistent contacts manifold, and we were able to turn off the main PhysX simulation in general, and we were able to change the broadphase type from the old-style sweep and prune to the newer multibox pruning broadphase, which is more efficient particularly when there are a lot of entities near one another on the y axis (gee, that sounds awfully much like our exact case!).<br />
**** It's debatable how much these secondary changes really improved at all, since we're only using the PhsyX data for raycasting. But raycasting has to happen every frame (to know where tooltips are as you move the mouse around potentially rapidly), so if there is even a slight benefit that's nice. The big thing was the transform sync insanity fix.<br />
*** On the other hand, it's a bit disappointing that we only cut the CPU footprint of the transform movements in half; a lot of that is likely because of the nature of how we have our squads composed. We will likely make some changes in that area in the coming week to take the performance of this aspect of the game even higher.<br />
<br />
* Slight improvement to the efficiency of syncing gimbal (icon) positions with the positions of their squads.<br />
<br />
* Fixed a longstanding issue where selecting one builder and then another could lead to an empty build menu (for instance, first the ark and then the starship constructor) because it thought it was the same menu and didn't refresh.<br />
<br />
* Fixed a bug from the last version where the turret and starship build menus would show as completely blank unless you'd researched at least one item from the respective category.<br />
<br />
== Version 0.700 Hunting The Wild Beta Beast ==<br />
(Released January 12th, 2018)<br />
<br />
* '''IMPORTANT NOTE:''' contrary to our normal practice (even in alpha/beta), '''we've broken all old savegames with this version'''. Just too much AI-state data moving from "one set for the whole world" in the Core implementation to "for each faction that needs it" in the moddable External side, etc.<br />
** We obviously won't do this kind of breaking change after release, per our normal approach with AIWC.<br />
<br />
* Added some options to the Start Game lobby to allow waves with homogenous or varied composition, and to select the amount of advanced warning you get for a wave.<br />
<br />
* Fix a bug where Maze, D18Swirl and D18DensityMap weren't displaying the correct map type in the Save/Load screens<br />
<br />
* Right-clicking a build menu item or build queue item now acts like alt+left-click:reduces the amount of that unit queued.<br />
** Thanks to Kahuna for suggesting.<br />
<br />
* Fixed a longstanding bug that generally prevented the showing of health bars for guardians/etc in many circumstances.<br />
<br />
* First pass at descriptions for all in-game units. Cursory, possibly incorrect and needs flavour, but it's something at least.<br />
<br />
* Completely redid how the intra-squad formations were set up, so that now it's both more efficient, and more importantly more correct.<br />
** There no longer seem to be any cases where ships in a squad are spawning on top of another ship within the same squad, and if they do it will now throw a warning error.<br />
** Additionally, if a formation is too small for the number of ships that the game says should be in it, then it will now throw errors rather than just stacking the ships on top of one another.<br />
<br />
* Fixed a bug where the Warden Fleet could attack one of "your" planets if it is an AI planet you conquered after the Wardens "set sail", so to speak.<br />
<br />
* Split out a ton of our asset bundles so that they are not so monolithically huge anymore. This shrinks our largest one by about 400mb, and moves those into smaller ones that are a few hundred megs each, by type.<br />
** Also removed some accidental dependencies we'd developed between a couple of the asset bundles. This helps things load faster.<br />
<br />
=== Major Visual Improvements ===<br />
<br />
* Updated ship visuals:<br />
** Grenade Launcher mesh and materials, LODS and integrated.<br />
** Infiltrator mesh and materials, LODS and integrated.<br />
** Space Plane mesh and materials, LODS and integrated.<br />
** Sniper mesh and materials, LODS and integrated.<br />
** Space Tank mesh and materials, LODS and integrated.<br />
** Sentinel Frigate mesh and materials, LODS and integrated.<br />
** Laser Gatling integrated.<br />
** Assault Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** Carrier Starship mesh, materials, LODs, and integrated. Plus MK variant sizes.<br />
** SiegeStarship mesh and materials, LODS, and integrated.<br />
** SniperStarship mesh and materials, LODs, and integrated.<br />
** Stealth Starship mesh and materials, LODs, and integrated. Plus MK variants.<br />
** Laser Turret LODs, and integrated.<br />
** Lightning Turret LODs, and integrated.<br />
** Missile Turret LODs, and integrated.<br />
** MLRS Turret LODs, and integrated.<br />
** Needler Turret, LODs, and integrated.<br />
** Sniper Turret, LODs, and integrated.<br />
** Spider Turret, LODs, and integrated.<br />
** Tractor Turret LODs, and integrated.<br />
<br />
* Updated structure visuals:<br />
** Experimental Turret Controller mesh, materials, LODs, and integrated.<br />
** Advanced Research Station mesh, materials, LODs, and integrated.<br />
** Advanced Factory mesh, materials, LODs, and integrated.<br />
** Forcefield Generator mesh and integrated.<br />
** Fortress mesh, LODs, and integrated.<br />
** SpaceDock mesh, LODS, and integrated.<br />
** WarheadSilo mesh, LODS, and integrated.<br />
<br />
* Additional visual enhancements (iterative improvements: things are better but not perfect)<br />
** The number of ships in a squad should now more accurately reflect a squad's health<br />
** When a ship takes lethal damage it now changes to a "Dying" graphical state instead of using particle effects.<br />
** Ships start burning the same visual frame that a shot hits the target, not the frame afterwards. It makes things feel snappier.<br />
** When a squad is reinforced, the reinforcing ships use a cool "Warping In" effect<br />
** When you first move your view to a planet, damaged squads should now have the correct number of ships<br />
** Lightning and Flak AOE effects are in use by the appropriate units<br />
** When a structure is under construction, use an "Under Construction" visual effect for it. The effect is either Green for "normal construction" or Yellow for "blocked construction". Construction is blocked if you have paused construction or are out of metal<br />
<br />
* The game now displays, in fiery animated letters, "YOU LOSE," then on another line, more slowly, "HUMANITY HAS PERISHED," when you lose the game.<br />
<br />
* Massively improved the visuals of the ship on the main menu. Come on, it's the first thing people see. ;)<br />
<br />
* Major update to the starfield backgrounds!<br />
** Remember those awesome ones that we were showing off during the kickstarter and for a while after that? Well, Badger did as well. ;) Those have returned.<br />
** We took them out, previously, because we had a variety of complaints from players who were saying that they were too bright and were distracting from the main combat. But that sentiment isn't unanimous by any stretch, and these backgrounds look COOL.<br />
** Our plan is to make it so that players can exclude the sort of backgrounds they don't like (ones that are too bland, or ones that are too bright) for in-game purposes.<br />
** Meanwhile, we've updated which ones can show up on the main menu, and in the galaxy map, and these should be ones that are pleasing to everyone in terms of being more varied and more thematically appropriate for those parts of the game.<br />
<br />
* You can now select the style of planet backgrounds you want: All of them (default), just the "fancy bright" (old style) ones, or just the "dim" (more recent) ones.<br />
** This is a per-client setting, so you can have different BG visuals for a planet per player if players choose different values from those settings.<br />
** Note that these settings only take effect when creating a new game or loading a savegame or joining a multiplayer game, so changing these in the settings menu while already playing won't change anything.<br />
<br />
* The "Burning And Dying" effect has actually be transformed into a full, GPU-only explosion effect where vertices are offset over time based on the direction of their normal, and a "burn ramp" effect makes emissive textures come in white, then very bright, then fading a bit more.<br />
** Translation: EXPLOSIONS WITHOUT PARTICLE EFFECTS. :D<br />
** Basically what this does is make the battles way more epic, but without having the expensive (in CPU AND GPU time) particle engine get involved.<br />
** This is actually barely any more expensive on your GPU or CPU than having the ships just disappear at death, and it's actually slightly more efficient than our first "burning and dying" effect, which was itself very efficient. So... yeah. Go team explosion. :)<br />
<br />
* Bloom, ah... finds a way.<br />
** Right. So bloom, which we've added and removed and tweaked a million times, is now back... but in a very weak and subtle way.<br />
** This style of bloom finally avoids the pitfalls we were seeing before, but it is what lets the emissive ramp of the new "burning and dying explosions" actually look like explosions where there is none.<br />
** The result is super effective, and we can actually make a variety of different death "explosions" of differing intensities, colors, and whatever else we want, based on the type of ship, building, who owns the ship... anything we want.<br />
** It's SO effective, in fact, that we might ditch our literal particles altogether, in favor of performance. This also tends to look a lot better, since it is by definition exactly the size of the ship or structure that is exploding, unlike the true particle effects.<br />
<br />
* In fact, we've now taken the "burning and dying" to the next level after all.<br />
** The ships and structures no longer throw off particles on death at all -- not shuriken particles like they used to, anyway.<br />
** Instead, it now has burning and dying effects that can be defined per ship type, rather than globally. There are different colors (slightly) for the last ship in a squad compared to all the others, and structures have a different pattern of disintegration.<br />
<br />
* Forcefields now have a reactiveness to being shot, visually showing a pulse on themselves. We may make this fancier in the future, not sure, but the current effect is very efficient.<br />
** This is also something that presently does not properly block the shots that are heading to forcefields at the moment for some reason, so there's a bit of visual inconsistency, but it's getting there.<br />
<br />
* Bloom REALLY finds a way... now Amplify Bloom is back (again), although vastly more subtle now in terms of how it is applied.<br />
** This prevents the flickering of the new explosions that was happening with Unity's own post processing stack, and in general looks a lot more sophisticated.<br />
** You can see how much more sleek it looks right from the main menu; kind of a Blade Runner vibe to the glow, now, rather than a Star Trek 2009 feel. Much better than the latter, or than none at all.<br />
<br />
* We're now actually drawing the Area of Effect (AOE) shots when they happen, or at least most of them. We initially went with a style that was based on the built-in Unity Shuriken particle system, but as we had feared that simply crumbled before our massive simulation.<br />
** Instead, we're now using some custom vertex-animation approaches that are all GPU-instancing based and (nearly) completely GPU-side. The performance impact of this in one pretty sizeable battle that we were testing was a drop of 10ms per frame of overhead that Shuriken had been causing.<br />
** In the really large battles, there are still some performance issues surrounding all the ships moving around (of all the silly things to be slow), mainly just because of unity's underlying system being inefficient. Fortunately, in 2017.3 they have introduced a way to bypass most of that inefficiency, but we're presently running on 2017.1 and will need to upgrade the game sometime in the next few weeks or month or so.<br />
<br />
=== Major Camera Improvements ===<br />
<br />
* Added a major new type of camera, which is now the default, and which has two modes: Basic Strategic and No-Pan Strategic.<br />
** The Basic Strategic one works... well, basically like you would expect it to, based on AI War Classic.<br />
*** It fixes a lot of the fiddliness of the Angled and Top-Down cameras previously available in this game.<br />
*** Because this is from a third party, however, unfortunately this has to remain closed-source, unlike the other cameras.<br />
** This camera also now introduces two new hotkeys: R and F, for tilting itself up and down.<br />
** Since the camera is able to zoom in MUCH further than before, and has great tilt and pan and rotation controls, the free-look mode is not implemented on it.<br />
*** Using this camera you can actually zoom down inside a squad of bombers and pan through them easily, etc. You can actually see the ships up close in general! Yet it's not fiddly to get from that extreme zoom to the other extreme of zoom, seeing the entire planet.<br />
** In general the zoom is very graduated so that you have more degrees of zoom as you get further in, and additionally the edge scrolling, WASD-scrolling, and middle-mouse-to-pan scrolling all work more smoothly at each zoom level.<br />
** On the no-pan variant, the middle mouse button being held down instead takes you into a "tilt and rotate" mode.<br />
** The rotation in this camera is based around a "turntable" concept for where you are pointing your cursor (or where the focal point of the camera is, anyway). This is different from the "tripod" style rotation that was there before in the other cameras (and is still there in them -- you are free to use any of our cameras, still).<br />
** Finally the camera feels like a friend rather than a foe! ;)<br />
<br />
* Previously when you were in free-look mode and then came out of it, the rotation of your camera would be all messed up in the Angled and Top Down camera modes. Fixed.<br />
<br />
* Fixed some general jerikiness that happened on occasion in our camera movement in particular; it was present in our old camera code as well, but more easily noticeable in our free-look camera code and our new camera that is part of this release. The jerkiness was also affecting some other random things, like fade-ins and a few timers. It was not affecting ship movement, however.<br />
** So what was up? Well, we were using Time.deltaTime, which normally is fine... except in a game where there are garbage collection calls every so often, you'll get very harsh spikes that are noticeable in animated stuff, particularly camera movement. We're talking about the difference of 100ms or so, but it's still substantial enough to feel really off.<br />
** Fortunately Unity provides a built-in Time.smoothDeltaTime, which automatically smooths those out so that we don't even have to do any of the hard work ourselves. We've now switched everything over to using that.<br />
** Incidentally, it wasn't just the garbage collector that was throwing this for a loop -- since our underlying simulation runs at a lower framerate than the visual part of the simulation, some frames are definitely longer than others. That was leading to micro-stutters that were irritating but possibly below the level where you'd be able to pinpoint what was bugging you.<br />
** All fixed now, at any rate, near as we can tell!<br />
<br />
* The game now supports separate speed adjustment multipliers for "fast mode" for cameras panning, rotating, and zooming on the galaxy map and in the planet view. There was no purpose in having a fast mode for tilt, because that's a pretty fast and definitely cosmetic thing anyhow.<br />
<br />
=== Larger Planet Gravity Wells! ===<br />
<br />
* The radius of each planet's "play area" has been doubled, moving AIW2 much closer to AIWC in spatial scale.<br />
<br />
* The xml data relating to distances has been reworked:<br />
** Rather than one constant for the radius of a grav well and a variety of multipliers based on that (seconds for ship to cross grav well, what % of the radius a short-range-weapon has, etc), there's now constants for:<br />
*** Grav well radius.<br />
*** Base unit radius.<br />
**** These used to be constants for every unit; these are now happily all multipliers, making broad adjustment much easier as well as avoiding raw distance units existing in multiple xml folders.<br />
*** Base shield radius.<br />
*** Base weapon range.<br />
*** Base AOE radius.<br />
*** Base ship speed.<br />
*** Base shot speed.<br />
<br />
=== AI Difficulty Levels ===<br />
<br />
* AI Difficulty is now selectable in the lobby, ranging from diff 1 (AI strength budget-to-fight-you is about 20% of normal) to diff 5 (the default, normal budget) to diff 10 (AI strength budget-to-fight-you is about 1000% of normal).<br />
** Lower difficulty is somewhat "dumber" with its units, specifically it waits longer before considering retreating during an attack (i.e. how long your turrets get to shooting-gallery a wave that's not strong enough to threaten you) and it waits longer before sending waiting threat off to join the Hunter Fleet.<br />
** Higher difficulty waits less time for both of those things.<br />
** The old core-dll definition of difficulty has been removed, replaced by a definition in the external (moddable) code.<br />
<br />
* AIP is now tracked per-AI-faction, and has been moved almost entirely from Core to External (moddable). The remaining core fields that store AIP numbers (how much AIP on death, etc) only have effect because External uses them.<br />
<br />
* The AI Warden Fleet and Hunter Fleet now have their own difficulty settings.<br />
** The Warden Fleet's population cap is now based on that setting and the base income of the Sentinels faction.<br />
** The Warden Fleet now starts with a certain difficulty-based % of its population cap already filled, so it can oppose your attacks earlier (it still starts at the AI homeworld so you have a little breathing room).<br />
** The Hunter Fleet, on difficulty 6 or above, now starts with some strength. That strength is based on the base income of the Sentinels faction and the Hunter Fleet's difficulty setting.<br />
<br />
=== Balance Changes ===<br />
<br />
* All Starships now have a cap of 1 (per mark level) instead of 5/4/3/2/1 for Mk1/2/3/4/5. The strength per cap is the same.<br />
** This better distinguishes their role from fleet ships; they're much more distinct and individually powerful.<br />
<br />
* Shield Generator cap from 5 to 2, with the same strength per cap, to cut down on the piles and piles.<br />
** This also makes the AI use fewer of these; they're more individually powerful but won't cover as much area (also makes exposed units more likely).<br />
<br />
* You can now research Mk2 and Mk3 Shield Generators (giving you a potential total per-planet cap of 6, up from last version's 5).<br />
<br />
* The under-the-hood math for AI Shield Guardians now uses a "cap" of 1 instead of the 5/4/3/2/1 for Mk1/2/3/4/5 like other guardians (and how starships used to be).<br />
** Again, this reduces shield piles, maintains shield strength, but increases likelihood of exposed units.<br />
<br />
* Your Ark no longer projects a shield.<br />
** Probably the biggest single change to shields, actually. This will help players not expect to always have the whole fleet under cover, and not expect to bring the Ark along on every fight once they have a Flagship.<br />
** You still have the MkI Shield Starship that you can unlock at the start; it has roughly 1/3rd the shield strength the Ark used to have, so you can still protect your missile corvettes and such to some extent.<br />
** If you unlock the MkII Shield Starship, their combined shield strength is equivalent to what the Ark had, though not covering as big an area.<br />
** The Ark's defense type is now "Armor", meaning that the ships which get a bonus against it are all short-ranged.<br />
<br />
* Halved the amount of strength the AI puts into shields on planetary defense.<br />
<br />
* Fixed a bug where starting AIP was 60 instead of the previous 30. And while we were at it, reduced it to the 10 it was in AIWC (somewhat counterbalances not starting with starships or turrets unlocked).<br />
<br />
* You no longer start with any Starships or Turrets unlocked. You decide whether more fleet ships or a starship (or even turrets) are more helpful in your early battles.<br />
<br />
* You no longer have to gather your starting planet's Science; it's automatically gathered when you start the game so that you don't have to wait for it before making your first moves.<br />
<br />
== Prior Release Notes ==<br />
[[AI War 2: Making Alpha Fun]]</div>Keith.lamothe