AI War 2:The Pivot
Revision as of 08:30, 22 June 2018 by Keith.lamothe (talk | contribs) (→Misc Improvements And Additions)
Contents
- 1 Known Issues
- 2 What is this "Pivot?"
- 3 Version 0.745
- 3.1 Wave 1 of 5 of the Pivot
- 3.2 Wave 2 of 5 of the Pivot
- 3.3 New Faction: Astro Trains (Thanks, Badger!)
- 3.4 New Faction: Macrophage (Thanks, Badger!)
- 3.5 Dyson Rework (Thanks, Badger!)
- 3.6 New Faction: Mercenaries (Thanks -- yet again -- Badger!)
- 3.7 Marauders Expansionism
- 3.8 Misc Bugfixes
- 3.9 Misc Improvements And Additions
- 3.10 Keyboard/Mouse Input Overhaul
- 3.11 Galaxy Map Improvements
- 3.12 Camera Improvements
- 3.13 Visual, Audio, and Workflow Improvements
- 4 Version 0.743 Music Blooms
- 5 Version 0.742 Hotfix
- 6 Version 0.742 Darkly Loading Spire
- 7 Version 0.741 Music Part 1 Of 2
- 8 Version 0.740 Clean Up That Nebula, Young Man!
- 9 Prior Release Notes
Known Issues
- The interface, lobby included, is currently temporary, and undergoing a complete overhaul.
- Beam-weapon style shot graphics don't yet display, and a couple of AOE effects don't show quite correctly yet.
- Various bugs on mantis: https://bugtracker.arcengames.com/view_all_bug_page.php
- Balance needs a lot of attention, with your help.
- The tutorial is currently missing, as we need to redo it.
- Multiplayer is temporarily disabled while we focus on tightening up the single-player loop.
What is this "Pivot?"
The full details are on kickstarter: Pivoting AI War 2: Bring The Fun!.
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.
Version 0.745
(Not yet released -- we're still working on it!)
- 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.
Wave 1 of 5 of the Pivot
- Wave 1 of 5 of The Pivot is now complete.
- 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.
- 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!
- 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.
- 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.
- Main things that were thus included:
- Removing all the ships that previously existed, and then adding as new:
- Command station mechanics, and home command stations.
- AIWC-style mechanics for the AI home command station.
- Upgradeable mechanics for other command stations (so we can do econ, military, etc).
- AIWC-style metal harvesters, the seeding of them, and all that.
- Ditching power and fuel, and going back to the AIWC-style Energy mechanic, and adding energy collectors.
- Going back to AIWC-style mechanics for the space docks.
- 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)
- Warp Gates for the AI, those were already pretty much the same between games.
- Engineers, and all the AIWC-style mechanics associated with them.
- A variety of turrets from the first game.
- Tractor turrets, but this time switching to the older AIWC-style mechanics for how those work.
- Scouts, and the AIWC-style scouting mechanics.
- 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.
- Science Labs, and the AIWC-style knowledge-gathering mechancis.
- Colony ships, and the AIWC style of those working.
- Mine layers, and the rebuilder mechanics that go along with those.
- Guard posts for the AI, and the mechanics that go with that.
- 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)
- Force field generators, and a return to the AIWC style mechanic (with those now being present at all in general, too.
- Starship constructors, nothing major different here between the two games.
- Some of the basic starships.
- For the time being, in the xml and underlying data structures, we still have global fuel and per-planet power.
- However, everything is just using the global fuel now, to be more AIWC-like.
- On the interface, we are now referring to this global fuel as being Energy again, as with AIWC.
- We'll see how this continues to evolve, but for now that was the simplest thing.
Wave 2 of 5 of the Pivot
- Wave 2 of 5 of The Pivot is now complete.
- 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.
- New ships, with their attendant mechanics, added:
- Scout Starship mk1-4, Stealth Starship mk1-4, Shield Starship mk1-4, Siege Starship mk1-4, Sniper Starship mk1-4, Carrier Starship mk1-4.
- 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.
- Tachyon Guardian is now Tachyon Sentinel. Added Wormhole Sentinel, Data Center, Advanced Research Station.
- Matter Converter, Mercenary Space Dock (and mercenary versions of relevant ships), Home Human Settlement, Human Cryogenic Pod.
- 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,
- 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,
- Tachyon Array, Stealth Tachyon Array, Focused Gravity Generator mk1-5.
- 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,
New Faction: Astro Trains (Thanks, Badger!)
- Add new faction 'Astro Trains'.
- 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.
- 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.
- 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
- 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)
- Eventually I'd like to have the Trains give you metal when killed, but that mechanic isn't added yet.
- This faction intended to be a More Interactive and Fun version of AIWC's astro trains, which I always found rather frustrating.
- 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.
New Faction: Macrophage (Thanks, Badger!)
- Add new faction 'Macrophage'
- 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).
- 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.
- They are hostile to humans and AI alike, but not very intelligent.
- 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.
- This faction is a bit like reimagining the Devourer Golem as a part of an ecosystem.
Dyson Rework (Thanks, Badger!)
- 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.
- Changing the intensity of a Dyson Sphere changes the income per second; the balance numbers for a given intensity are now in the XML.
- 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.
- 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)
- 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.
- 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
New Faction: Mercenaries (Thanks -- yet again -- Badger!)
- Add new faction for Mercenaries. The Mercenaries are a much fancier version of the AIWC mercenaries (which are rebranded as "Auxiliaries").
- 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.
- Options for mercenary groups that can be specified in the XML
- 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.
- Planet summoning restrictions: Can only be summoned on a Friendly planet, an AI planet, a planet not owned by the AI, or anywhere
- Seconds allowed to exist: mercenaries will only stick around for a certain amount of time (in seconds)
- 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.
- Cost: Metal, hacking points or both
- Spawn Delay: the mercenary group in question will appear after this many seconds
- 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.
- Class: Defense/Offense/Utility. This is future proofing, we don't do anything with it yet.
- 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.
- 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.
- 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).
- AIWC style mercenaries are rebranded as "Auxiliaries"
Marauders Expansionism
- 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").
- 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.
- Thanks to Ovalcircle for the suggestion
Misc Bugfixes
- 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.
- 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 ;-)
- 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.
- This was reported by numerous people, including Valeroth, Clasmir, zeusalmighty and probably others
- 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.
- Fixed the scales and collision radii of the assault starships.
- 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...
- 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.
- The editor has also now been set up to detect incorrect settings for these.
- 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.
- Fixed a bug where the single-ship-in-a-squad units were not being properly scaled down location-wise.
- 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.
- The icon-based examples were fine, but now the boxes have been corrected to match the icons.
- 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.
- Previously, the icon scales could sometimes be incorrect when tabbing back from the galaxy map, until you scrolled the camera around a bit. Fixed.
- The placement mode icons were never scaled up or down to match the size they would be once placement was complete. Fixed.
- 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.
- 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.
- 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.
- 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).
- In the game setup screen on the galaxy map, it now shows the player names under each planet name controlled by one.
- 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.
- 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.
Misc Improvements And Additions
- Added a new IGameEntityDescriptionAppender, which can be linked up using the new xml tags description_appender_dll and description_appender_type.
- One example is presently in place with the human home command station and a test class called AnyUnitExampleAppender.
- 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.
- 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!
- 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.
- 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:
- GameData/Configuration/ExternalConstants/KDL_VanillaConstants.xml
- 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.)
- 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).
- GameData/Configuration/ExternalVisualConstants/CMP_VisualConstants.xml
- 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).
- forcefield_visual_scale_divisor from 5 to 10 (Same deal, forcefields will look the wrong size if this isn't adjusted).
- 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.
- GameData/Configuration/ExternalConstants/KDL_VanillaConstants.xml
- 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.
- 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.
- 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.
- 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.
- 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."
- 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.
- The tooltip will list all your planets that are under attack sorted by the strength of the attack
- 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.
- 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.
- The color picker UI has seen a number of updates:
- The individual color cells are now far smaller, letting you see tons more of them at once, and feeling more like traditional color pickers.
- 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.
- 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.
- There are eight of these right now, but it's possible to define more via xml.
- The in-game tooltips for planets and units/objects now shows in the bottom left, as it previously did in AIWC.
- 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.
- 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.
- 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.
- 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.
- 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.
- Engineer and Rebuilder FRD now works (though their prioritization leaves something to be desired)
- 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)
- Guardian counts have generally been significant reduced, and are now proportional to planet mark level as well as number of guard posts
- 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)
- You now start with 10k science, and all weapon turrets (except beam), to parallel AIWC
- Your command stations will now automatically claim metal spots, to better resemble what happened after capturing a planet in AIWC.
Keyboard/Mouse Input Overhaul
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
Galaxy Map Improvements
- 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.
- 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.
- 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.
- This does NOT grant you any actual visibility on the planets as to their contents, owners, resources, ships present, or anything else.
- 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.
- 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.
- 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.
- In the lobby, it shows the names for all human planets, with their colors on there.
- You can no longer zoom the galaxy map so far in, you start further zoomed out, and you can zoom out further.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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!
Camera Improvements
- 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!
- 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).
- 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).
- 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.
- 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.
- There's a new setting for the tilt/rotate mode that lets you set the sensitivity of that.
- 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.
Visual, Audio, and Workflow Improvements
- 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.
- Added a new visuals_scale_multiplier xml entry for GameEntities that lets us scale up or down entities as we wish for whatever purposes.
- 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.
- 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.
- 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.
- The visuals, icons, and scales for engineers, rebuilders, and human cryogenic pods are all now in place.
- Note that only engineers and rebuilders are actually in the game yet.
- 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.
- Human scouts and AI tachyon sentinels now have their graphics in place.
- 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.
- Added the visuals for all of the command stations (AI, basic human, economic, logistical, military, warp jammer, human home, human home core).
- 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.
- 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.
- 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.
- 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).
- 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).
- The visuals for the colony ship are now in place.
- 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.
- 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.
- Wormhole scaling-up has been removed, and will be replaced by a far-zoom icon like ships/squads get.
- "GenericObjects" can now have a list of AlternativeMaterials specified.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- For now, it's a very happy thing that we finally have two-color player colors in the game!
- For each place text is using the colors, it just uses the body color right now.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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).
- 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.
- 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.
Version 0.743 Music Blooms
(Released May 2nd, 2018)
- 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.
- 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/
- The game now actually plays defeat music when you lose.
- 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.
- When you lose, the game plays the defeat track, then also goes back to the regular in-game rotation.
- 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.
- 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.
- 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.
- Slightly improved the efficiency/size of the effects asset bundle.
- 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.
Version 0.742 Hotfix
(Released May 1st, 2018)
- Fixed a bug where the total seconds to load was only being reported in output.log, and not in the ArcenDebugLog.
- 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.
- 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.
- 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.
Version 0.742 Darkly Loading Spire
(Released May 1st, 2018)
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Different types of sounds have different characteristics and need different settings, and we've optimized these, in short.
- 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.
- 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.
- 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.
- This speeds things up yet again, and so far so good on that front, but we may have to back this one out later.
- 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.
- Fix a bug where the Nanocaust was never losing influence over a planet even after the constructor was destroyed
- Thanks to OvalCircle for reporting
- Change the default colour of the Risk Analyzers
- 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)
- 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).
- 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.
- 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.
- 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.
Version 0.741 Music Part 1 Of 2
(Released April 29th, 2018)
- 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.
- All by Pablo Vega, mastered by Dio, and all fantastic.
- 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.
- If you allow the Marauders to get Mark 3 outposts then they will start getting Budget faster.
- The balance levers are in XML for ease of use
- The default game volume is now quieter in the hope of not deafening new players
- Thanks to Flavin for the report
- Improved the performance of music loading at the start of the game and during the game.
- 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.
- 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.
- Thanks to hawk for reporting.
- Fixed a bug that nobody had reported yet with lightning attacks being very strange-looking and not like lightning bolts anymore.
- 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.
- 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.
- 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.
- 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
- Map Types: Add a new planet placement mechanism for Simple and Realistic, and tweak one of the previous placement algorithms for Simple and Realistic
- Fix some bugs with Marauders, where outposts weren't upgrading properly.
Version 0.740 Clean Up That Nebula, Young Man!
(Released April 26th, 2018)
- Fix some dumb bugs in the HumanMarauders faction that was preventing the marauders from correctly analyzing your planets to see which they should attack
- Thanks to OvalCircle for reporting
- 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
- Thanks to OvalCircle for reporting
- 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.
- Thanks to OvalCircle for reporting
- 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)
- 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.
- 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.
- 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.
- 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.
- 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.
- Overall these have mostly been removed except for the best couple of them (which now have color variants!).
- This saves about 200mb of RAM for something that wasn't looking so hot in general, and makes the game load faster, too.
- 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.
- 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.
- 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.
- 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).
- The new skyboxes are way higher quality than the ones that were removed, is the main point, anyhow.
- 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.
- 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.
- The settings option for "background style" has been removed, as that's no longer really relevant to anything.