AI War 2:The Arrival of Fleets
Contents
- 1 Known Issues
- 2 What's this phase all about?
- 3 Version 0.850
- 3.1 Misc
- 3.2 Fleets Added
- 3.3 AI Behaviour Changes
- 3.4 Map Changes
- 3.5 Hacking changes
- 3.6 Bug Fixes
- 3.7 Renaming And Visual Changes
- 3.8 Ship Variants
- 3.9 Balance Tweaks
- 3.10 Achievements
- 3.11 Science/Tech Changes
- 3.12 Vision Changes
- 3.13 Removed/Revamped Ships
- 3.14 Capturing Planets
- 3.15 UI Changes
- 3.16 Savegame Format Revamp
- 3.17 Debugging Additions
- 4 Prior Release Notes
Known Issues
- The lobby interface is currently temporary, and undergoing a complete overhaul.
- It's suggested that you use the quick start option instead.
- Various bugs on mantis: https://bugtracker.arcengames.com/view_all_bug_page.php
- Multiplayer is temporarily disabled while we focus on tightening up the single-player loop.
- There are a variety of ships/units that don't have final graphics at the moment, though they all have their icons.
- We're in progress with a major revamp of some systems based on cumulative feedback in order to push the game even more towards the feel of the original game... despite further divergence from it at a mechanical level.
What's this phase all about?
After 3 months of Early Access and 2+ years of development, we've reached a point where we know what we want the 1.0 version of the game to look like. SO very much about this game already works well, but there are some major deficits coming into this phase when comparing this sequel to the original game. The aim of this phase is to close those gaps and make this clearly the superior product in terms of playability, fun factor, the amount of fun thinking-about-interesting-challenges you do during gameplay, and so on.
There's also of course still more polish and bugfixing that we want to get done, and the lobby redo is still scheduled of course (but quick starts are an awesome alternative, and have helped us to defer a final design for the lobby as we formed up some other bits of the game first), but we're feeling really good about this final sprint toward 1.0. We still do need to also finish some graphics for the existing ships, but they all have their icons.
There is some more content coming as part of this phase, kind of by definition -- fleets as a concept Change Everything in a good way -- but the focus is on taking what is a pretty awesome game with a lot of depth and pushing it to a level that we hope beats the pants off the original, finally. Stay tuned.
Version 0.850
(Not yet released -- we're still working on it!)
We are breaking all the savegames again, sorry about that. This series of updates leading up to 0.900 should collectively be the last time for real for real, although we've said that before. It's not our practice to do this sort of thing at all, typically, but this game has been going through a lot more pre-release evolution than most of our titles have. The old savegames won't even make sense in the new version, really.
This got super long and we wanted to show what we were working on as we went, so we wound up also having this:
AI War 2: 0.850 Raw Chris Changelog
Misc
- Dyson Spheres will remain antagonized much longer after hacks.
- More hacks against a Dyson Sphere will increase the antagonization time.
- Allow the AI to spawn Dyson Antagonizers in the galaxy. Only Dyson factions with high enough intensity can spawn antagonizers.
- Antagonizers affect all Dyson Factions, so if you've enabled 3 dyson factions, the AI will spawn antagonizers for each dyson faction, and you have to kill all the antagonizers before they will become friendly again.
- Dyson Antagonizers follow similar spawning rules to Instigator Bases; they need to spawn close to the player at lower AIPs, and at high AIP can spawn anywhere.
- To compensate for this, the Dyson's income has been slightly buffed.
- Gives some units unused voice lines, and the Dyson ships the Zenith voice.
- Engineers and other similar civilian ships now actually talk!
- The game now properly unpauses itself after you close the escape menu, if it paused itself going into there.
- The galaxy map now has more of a "military screen" style look to it again, although this doesn't yet apply to the actual icons and lines and so on. But it has that same sort of scanline effect and whatnot as in the first game, though more involved now and fancier with some hexagons, etc.
Fleets Added
- Fleets are a new concept in the game, which are basically collections of ships in one of a few different categories. The AIs and NPCs don't really use these, per se, although there's nothing stopping them from doing so. But on the player side, this basically is now the central grouping of units for your stuff, and you use these offensively and defensively. You can get waaay larger ship caps than before, but each group is... well, automated as well as being a distinct flavor unto itself.
- The concepts of destruction points and Ark Upgrade Points are both gone, and replaced by Fleet EXP instead. This works similarly to both of those other things, in that if your fleet centerpiece is on a planet with an enemy ship that dies to your forces, then that fleet gains some EXP. More for big-ticket items.
- A bunch of logic for how fleets are selected and moved around, which was previously related to control groups, is now in place.
- The logic for how to assign fleets to keybind indices (fleet groups, essentially) for now is going to be clicking-the-interface-only, since that's really confusing in keybinds. We may wind up reintroducing keybinds for this at some point in the future, but more likely would be a better interface for organizing fleets into the keybinds directly, since this would avoid the confusion factor for players.
- The big sticky spot for confusion is people thinking they're making a control group of ships, when really it is of fleets, in essence. Even this explanation is confusing. ;)
- The various things that you can purchase from the Zenith Trader are all now planet-bound, even if they are normally mobile. They go into the fleet of that planet, and are on permanent station-keeping there.
- In theory we could later have something that can let you purchase new ships for mobile fleets from the Zenith Trader or otherwise, but that would need a new UI and new general mechanics. That would be fun, but in terms of replicating the experience of the Zenith Trader thus far, here's how it needs to work for this part.
- The various kinds of command stations now each come with their own hand-designed fleet styles, which are of the type that just use the max cap of each type they can have inside of their categories. That way they are always predictable per type, but you get more forcefields with a military command compared to economic, etc.
- Things like minefields and the gravity generators don't go with any of these, but rather have to be gotten via Battlestations.
- When it comes to factories, some of the command station types grant more factories per planet than others.
- The Battlestations in general are set up, although most of them just seed randomized template-based fleets. The Ensnarer one has an example instead of a specific type of fleet that it uses in place of a template.
- Bear in mind that there are several different ways to set up how a fleet leader (Battlestation or mobile) might have its fleet design created, and if none of them are set up then you'll have a lonely empty fleet. Right now the game doesn't warn the designers about that.
- In general there is a looooot more that could be done here in terms of making new and unique things, but right now the procedural fleets themselves are enough that probably that's not a big priority.
- The general strikecraft and frigates are all now set up so that they'll populate some interesting different procedural fleet designs in (currently) 9 different overall flavors. But even within those 9 flavors, there's a huge amount of variety likely to be found.
- The game now actually seeds the Battlestations and fleet flagships, and makes sure that they have their fleet designs populated right from mapgen start.
- First it tries to seed 1 item with tag "MobileCombatFleetArkOrGolem" on a planet directly adjacent to a player homeworld.
- Then it tries to seed 1 more two hops out from a player homeworld.
- Then it tries to seed at least eight more, but up to 1 per 25 planets, throughout the rest of the galaxy at least 3 hops from the player and 2 hops from the AI homeworlds.
- It's possible that it won't have enough types or will run into blockages, and that's A-OK to happen.
- Next it repeats the process by trying to put 1 Battlestation (based on the SpecialEntityType directly) on a planet directly adjacent to a player homeworld.
- Then it tries to seed at least five more, but up to 1 per 50 planets, throughout the rest of the galaxy at least 3 hops from the player and 2 hops from the AI homeworlds.
- In both cases, if it couldn't seed a thing closer in, then it will retry with it further out. This is mostly only relevant for snake maps and other things with very few direct and secondary connections from planets.
- Next it repeats the process by trying to put 1 item with tag "MobileSupportFleetFlagship" on a planet two hops out from a player homeworld.
- Then it tries to seed at least two more, but up to 1 per 150 planets, throughout the rest of the galaxy at least 3 hops from the player and 2 hops from the AI homeworlds.
- The reason it uses the SpecialEntityType directly for Battlestations is because that's the most direct thing. For the other two categories, those both have a MobileFleetFlagship type, and so those tags help specify a bit more if they are regular (and thus more common), or are "support" (and thus less common and further out).
- The various MobileSupportFleet flagships now are able to get upgraded from Mark1 to higher marks based on their fleets being upgraded. They have no techs that benefit them directly.
- This fixes an issue with them referencing an Engineer tech that was nonexistent.
- There are now fleets associated with each faction as their "loose" fleet.
- For AIs and NPCs, this is just used for all their ships, more or less, and doesn't really get used for much. Drones don't go in there, but that's it. Actual useful fleets can be created as-desired in the future, but for anything not using something specific, it uses this.
- For the players, there is a PlayerLoose fleet, which is basically "remainder units" that are not in a fleet. Odds are that this won't be used, but it's an overflow valve in case we have a truly odd case or potentially even a bug that we want to fail more gracefully.
- Oh! Actually, we are using this now for ships that are being captured via zombification. So there you go, a use for it already.
- There are now fleets associated with each PlanetFaction as their "fleet of that planet."
- For AIs and NPCs, this is just a reference to their parent loose fleet from the faction itself.
- For the players, these are unique fleets that are what the command stations go into and put their stuff into.
- It's entirely possible for a command station of a player to die, but in those cases the fleet must live on.
- When the game creates a new ship/structure, it now REQUIRES that the appropriate Fleet.Membership be passed into it.
- This solves all sorts of bugs where fleet membership was never being set previously.
- In the case of fleet leaders or ships that create drones, it ignores this membership, however, and creates and populates its own fleet.
Hand-Designed Fleet Capabilities
- Normally it's nice to only have... one way to do things when setting up the XML, right? I mean, that's the most clear thing, eh?
- However, in a few cases it is sometimes nice to be able to have parents talk about their children, rather than children always being the ones talking about their parents.
- This is most notable for hand-designed fleet templates, where we don't want auto-modded stuff to be added in a bunch.
- Thankfully, we can do both things, with both coexisting and neither acting in exclusion of the other.
- Basically, NORMALLY, you should definitely still use the fleet_membership nodes on ships in order to get them into fleets. This is more modder friendly and more flexible in general.
- THAT said, now you can also define ship_membership nodes in the fleets themselves, which basically are just the inverse of a fleet_membership node. They say all the same things, but say "a specific ship is being added to my fleet," versus the other way around with a ship adding itself to a specific fleet.
- This is now in use in a new CMP_StartingFleetDesigns.xml file, which uses a new design_logic of InitialPlayerFleet.
- Basically: we want to have 5-7 starting player fleets that are hand-designed including what their centerpiece is as well as what their ship compositions are. This lets players start off the game with something they are excited about, and move forward with whatever they find procedurally generated after that.
"Control Groups" Are Gone
- Fleets basically handle the same thing. But better. Some of the interface for this won't be until an upcoming build, though.
"Supply" From Fleets
- Added a new IsConsideredOutOfSupplyOfParentFleetCenterpiece bool, which is calculated based on ships within a human mobile or defensive fleet not being on the planet of their centerpiece.
- This is done separately because that way it can only be calculated once per second, which is a lot more efficient.
- This then gets used by things that are checking to see if ship systems are disabled -- aka guns, engineers, etc. These ships can still move, but they're neutered on purpose.
- If the centerpiece is itself kind of hobbling along half-dead, it's okay because the ships are still able to draw supply.
- For the stuff that is either considered "loose" or part of a command station's fleet, these things don't have the concept of supply at all, because their fleet leaders can legitimately be destroyed permanently and they need to still function. Or the loose ones don't even have a fleet leader.
- The goal of the fleet leaders thing is to keep the mobile fleets, and the Battlestation stuff, remotely in the same area as one another. You can't start segmenting your fleets and sending them off to fight WAY off, only raiding neighboring planets. This is for balance purposes more than anything else, and is similar in reasoning to the old Supply concept from AIWC. Funny how things like that come back around!
Squads Removed
- Intra-Squad Formations have been removed, as have the concept of squads, the counts of "visual things per subsquad," and so on.
- The whole "squads" idea was mainly to have more ships without having more ships, and that just wasn't working out for a variety of reasons. Now it's just ships instead.
- large_ship_scale_multiplier has been removed, so that all marks of a starship or whatever are now the same size. This lets us define them in ways that are best for being able to see them without them getting too stupidly huge.
- Various parts of the game referred to "squads" and "ships" as separate things, and there were internal mechanics for repairing lost ships in a squad, etc.
- That's all gone now, but there are some code remnants (to say the least) that still refer to squads. If you run into anything in the front-end (aka actually in the game) that mentions squads, we'd appreciate a heads up so that we can correct that.
- There ARE still visual groups of many of the smaller ships (V-Wings, etc), which is because those are just a single "3d model" made out of several smaller 3d models at this point. We can go back and correct that later, or we can leave it; we're kind of on the fence.
Rallying Ships From Factories to Fleet Centerpieces
- Fixed a variety of bugs with ships rallying to their fleet centerpiece (which is the only type of rally that now exists).
- They should rally to where the centerpiece either is or is heading, and they'll stop rallying once they get very close to where the centerpiece is.
- They stay in rally mode, continually updating their destination, until they reach the target. Initially the target can only be on the planet they are on or an adjacent planet, but it's possible that the target will move even further away while they are chasing it, and they should adjust to follow. That has been tested except when moving more than one planet away while they chase.
- Note that you can't set the rallying directly at all, unlike prior versions of the games. Factories just make whatever is needed in order to bring a local fleet up to full fighting force, and those things automatically rally to their respective fleets. "Local" means on this or an adjacent planet.
- On arrival, the rallying ships should take up the disposition of the ships that are at the other end, but that remains to be seen if that works as the interface for that bit isn't there yet. If you see problems with us, please do let us know.
Procedural Fleet Names
- The fleets for most fleets now have default names that are pulled from folders [FleetNames_Mobile_P1]+[FleetNames_Mobile_P2]. If anyone reading wants to add to these after this build is out, that's certainly welcome.
- This wasn't a high priority item, but Chris needed a small mental break when starting the morning. ;)
- These can be renamed later by players.
AIP Penalties for Fleet Clustering
- If you put too many ships from too many fleets on one planet, basically the AI notices, gets scared and angry, and the AIP starts increasing over time. It warns you about this.
- You're allowed to have WAY more units in this version of the game compared to any prior one, but if you go putting them all one one or two planets the AI is going to kick back... hard. That whole "guerrilla warfare" bit goes out the window if you advertise your presence like that.
- The fleet concentration AIP penalties will now only kick in at 3 fleets on an AI planet, and 5 on a player planet, rather than 2 and 4 respectively.
- The way that the "too many fleets on a planet" code works has been reworked a fair bit, but not tested:
- It now looks at all the human ships that are part of a mobile (flagship) fleet or a battlestation/citadel fleet. Before it was just looking at the fleet centerpieces, meaning you could have your centerpiece hide on an adjacent planet and send its ships in and the AI wouldn't notice.
- It also now only looks at the ships that are actually on the planet, and not the total strength of the fleet. The strength must be at least 2 in order for it to care at all about it for these purposes. If you send in 10 fleets of strength 1 -- or a slice of them that is strength 1 -- then it won't care.
- This latter thing will probably encourage all sorts of bad behavior, but we'll figure that out in the future. For now it should feel more natural in general, but it will likely need further iterating.
AI Behaviour Changes
- The AI will now be less worried about distant mobile enemy forces.
- The AI will no longer mistakenly count Guard units as Threat in some code paths
- Make some improvements to hunter/warden fleet routing logic
- Thanks to zeusalmighty for the Hunter/Warden save game
- Each AI faction now has its own Hunter/Warden fleets. The units of each Hunter/Warden will just show as "Hunter Fleet" or "Warden Fleet", but there will now be multiple fleets acting independently. The goal of this is to make those fleets much more flexible in how they deal with enemies.
- Only one Hunter and one Warden are visible in the game lobby. The other hunter/wardens will copy the colours but not the settings of the visible Hunter/Warden.
- Add a new gameplay mechanic, "AI Civil War". At the beginning of the game, Communication Nodes are seeded near all the AI homeworlds. Destroying all of them will trigger the AI Civil War by making the AIs unable to communicate with eachother. This will make all of the AI factions hostile to eachother; they will send waves at eachother, use Threat on eachother, etc, just like they do against the player.
- This will significantly strengthen all the AIs.
- The Warden and Hunter Fleets will remain friendly with all the AIs. They are unaffected by the Communication breakdown and are quite confused.
- If there is only one AI in the game then the Communication Node will not be in the game.
- "AI Civil War" mode is also available as an option to the Game Lobby, which will start the game with AI's in Civil War mode. This is for testing and sandbox purposes.
- The targeting code now treats XML-based importances as more important than 'amount of damage I can do'; this makes it less likely for units to ignore Command Stations and other high-value targets in favour of fleetships
- Change how overkill is calculated; only count units that are actually in range of the target
- This makes ships less likely to dance between multiple targets, unable to pick which one to attack.
- Don't throw away Distance to Target information when choosing a target
- This also makes ships much less likely to do the "can't decide on a target" dance
Map Changes
- Several map types have been improved by Draco.
- Thanks Draco!
- Make the Simple and Realistic map types more interesting by fixing a dumb bug in them.
- The Max/Min number of planets in the galaxy is now defined on a per-map type basis rather than a global (since some maps scale up to larger galaxies better than others)
- Some map types go up as high as 500 planets, others are capped at an AIWC-like 120 planets
- The previous methods for some of the map seeding of AI things are also being... phased out in some ways, and made a lot more centralized and thus flexible.
- This in turn lets us make the various AI planets a lot more unique, and lets modders add to things without replacing them.
- The warden special forces hideouts were previously always seeding 4, but now it's sometimes more based on the size of the galaxy being larger.
- The game is now able to seed multiple entities on certain planets if we so desire, during mapgen.
- As the sole use of this so far, we're now seeding two battlestations/citadels on any planets that have those, to make those a lot more attractive as targets and also thus provide more firepower for defensive purposes for players without them having to capture QUITE so many planets for each of these that they get.
- Did a fair bit of rework on some of the mapgen logic where it is trying to seed things close to the player homeworlds.
- A while back we had some problems where things were frequently seeding too close, so we put in code to counter that. That was in turn preventing us from intentionally putting stuff there more recently.
- Now there's a healthy balance between us being able to do that while still avoiding the old bug, and in general things seem to be working well.
- There was some other funkiness with it being really unlikely to seed certain things very near to you.
- That has been fixed, to start with, but then beyond that it also now tries to seed half the flagships and battlestations kind of in the middle-distance for you on the map.
- In general this now gives you way more options for middle-game goals for making yourself stronger.
Limited Ship Types For Each AI Planet
- Essentially it's super boring when there are too many types of ships all over the place on every planet for the AI. So now it does this really interesting thing where it chooses a subset/theme for each planet, and some themes are harder than others, rarer than others, etc. Now you can actually see what is there, formulate a strategy of which of your fleets is best to send, and... well, send them.
- In the tooltips, you can now see how many ships and what strength is contained inside a guard post, as you used to be pre-fleets. HOWEVER, you can also now see exactly how many of each type of ship is inside there, to see what mix the AI is using at that planet without having to go aggro a guard post.
- Basic definitions for ai ship groups and ai ship categories have been implemented. These are based around the excellent document that Puffin set up on the subject, but with some changes and additions here and there.
- Note that this is ai_ship_groups_i_am_part_of, and it refers exclusively to how the AI uses ships. This isn't meaningful at all to fleet design stuff for players, which is a separate topic.
- This also doesn't affect minor factions, although there's nothing stopping minor factions from adopting this new pattern in the future.
- At the moment this also only describes strikecraft and frigates, and not turrets or other things of that nature. Those are coming soon. Puffin, if you want to set up the other categories and groups based on this starting template, probably ignoring the "singular freaky surprises" stuff, then please feel free as it would save me some time.
- The overall rule with this usage of ships in groups is that anything that is a variant of something else shouldn't be in the same group with it. This is just a design thought, not a technical restriction. Warden and Hunter fleets will wind up having all sorts of strange mixing and matching, but by keeping to this rule we will ensure that planets and waves otherwise don't have that sort of strange mixing.
- You'll also notice that for the ship group categories that are specific to certain AI types, like Turtle or Cloaking-Heavy or whatever, those also include some sub-groups that are unrelated to their type, but which will provide some... well, variety. Aka sometimes instead of being a cloaking-heavy wave, it will by an anti-structures wave. Sneaky! There's nothing worse than a predictable AI type, so having some variety in what they do, even if they are thematically heavy, is good.
- It's also worth noting how the "draw bags" work, in this context. Essentially the number after the things that are included say "how many raffle tickets do I put into the draw bag?" And depending on how many other total raffle tickets have been put in, that's how likely it is to come out.
- In order to allow for granularity in definitions, our default number of tickets to add is 100. That way we can say "only do this 1% as often as most stuff" by putting in 1 ticket instead of 100.
- But even there, the odds of it coming out are not 1%, because it depends on what else is put into the bag. And by very definition, what is put into the bag is something that is meant to be unknowable at design time, since it can be modded, and expanded in the future. So we simply use something like "100" to mean "regular frequency, whatever that is," and then the other numbers like "25" to mean "about a quarter as often as usual, whatever that is."
- It is worth noting that not putting too many types inside a single draw bag is probably good in MOST cases, because it means that players will be facing a planet or a wave that has some sort of coherency to it that they can plan around. I'd say that 3 types is a sweet spot for waves, but sometimes having many more or fewer types is okay. Variety being the spice of life, it's okay that many of the things drift off the "normal" design parameters.
- Overall we'll find some situations where people go "wow there's way too many xyz unit in this circumstance," and we'll deal with that as need be. But most of these groups are intended for things that are not strictly numbers-bound (aka more than a handful of forcefields on a planet is terrible, so using them in these groups would be a Very Bad Idea since it would lead to occasional bouts of player dismay).
- Most of the time, we are likely to wind up with something like "holy cow that one planet is a nest of sniper like I've never seen in my life," and we just kind of sit back and go "yep! That will happen, in extremely rare cases. Either deal with it or go around, but that's the fun of this." The prior system was leading to a feeling of samey-ness on all the various planets, and so this is meant to break things up more into various thematic niches, some of which are more rare than others due to being either annoying or scary or hard or whatever. But we still want those rare outliers to happen, because those are either the places where good stories happen during AARs, or where the player's eyebrows can shoot up as they go "I'm glad I don't have to go THERE." Or sometimes it's just going to be the Wave From Hell that surprises players before going away again.
- This whole thing is going to take a lot more defining and redefining over time, but it's really well set up for having lots of ship variants and strange outliers. In a lot of ways, this is intentionally pushing planets and waves a bit more in the direction of a RogueLite, where you never quite know what you're going to find. Chris was really missing some of the sense of exploration, and this is his way of trying to capture that again.
- And note that this is completely parallel to the player fleet waves and such, so the nice thing is that the AI, other factions, and players can all be thought of using completely separate structures and in completely different terms. As it should be.
- Each planet belonging to an AI now seeds a single entity from SingularFreakySurprisesAIShipGroup on each of their planets at the start.
- Note that this includes a fair bit of blank space, and that if it chooses blank space that is considered A-OK. So it won't really be every planet, and the frequency is actually determined in the xml rather than the code.
- This lets things like the Golemite be set up a lot more directly, and without using tags.
- The ONE downside of this is that the frequency can no longer be based around things like what the AI difficulty level is. But frankly, that's something that makes the AIs feel less unique and not just easier; if the game is meant to be easier, the player should still be facing the unique foes of that AI nonetheless.
- As part of this, the explicit seeding code for the Golemite to seed its golems has been removed, and it now uses the new central xml-based function.
- Note that, if we want to, there's nothing stopping us from using both the old method and the new one at the same time. The new one is mainly a convenience that makes for some powerful new xml-only modding capabilities that don't need to touch C# to add cool stuff to an AI.
How The AI Guards Wormholes Is Way Cooler
- The Stealth Wormhole Sentinels have been set up as something that only show up rarely, now that scouting is going to be working differently. This is useful for making planets feel a lot more varied, and not all planets so hard to sneak your stealth ships into.
- Added a new Basic Minefield Wormhole Sentinels, possibly against our better judgement, to let a tiny minority of wormholes actually have mines around them that players can stumble into.
- Since these should only really show up once, with the AI not rebuilding them, this should be an interesting thing for the player to run into well under 1% of the time. Thanks to Puffin for suggesting this; this should provide for some interesting traps without being too frustratingly common.
- Actually jacked up the default NobodyHereWormholeSentinels draw bag count to 1000, and the StealthWormholeSentinels to 50, so that the 1 of BasicMinefieldWormholeSentinels is EVEN MORE RARE. Hopefully players run into one or zero minefields during a given campaign, thus making it more exciting.
- Of course, if someone wants to make a minefield-heavy AI type, that is straightforward to do, now.
- Additionally, there are now 5 different kinds of wormhole sentinel setups that are based around using tractor arrays and turrets, tesla turrets, gravity weapons and pike turrets, and whatever else.
- These are also in the minority in terms of how frequently they will seed, but are way more common than the minefields and should make it so that some of the wormholes are a lot more interesting to face, now.
- This gets back a bit more back to the original design of the original game, which is only possible now because of how some of the scouting changes will interact with the game here. We had had to move away from this because of tedium of automated scouting in other circumstnaces.
- There are still quite a few wormholes that won't be directly defended at all, and it's possible for us to set up way more wormhole defensive types as desired in the future; these are mostly a proof of concept.
- Note that with the sentinels at wormholes, the idea is that these will exist from the start of the game and never get upgraded or reinforced, unlike what happens at guard posts.
Revamped AI Types Based On New Seeding Styles
- Set up new "singular freaky surprises" that includes how golems are seeded for the Golemite now, and actually gives a very rare chance that some regular planets will sometimes have an AI golem.
- The Vanilla AI type has been renamed to "Full Ensemble," referening the fact how it is basically the most well-rounded AI type that presently exists. It has the most varied surprises up its sleeves.
- Added a new Simple Ensemble AI variant: Like the full ensemble in most respects, but minus some of the more esoteric ship variants. There's plenty going on here, but not quite so much craziness to discover as you explore.
- The Starfleet Commander AI type has been removed, as now all the AIs kind of do what it was doing before. It no longer stands out as unique.
- The Everything AI type has been removed, as it was kind of redundant now, and wouldn't have made for coherent gameplay anyhow.
- Added in a completely untested new Thief AI type that was kinda-sorta defined previously but seemed to be missing, nonetheless.
- Also added a completely untested new Zombifier AI type that uses a bunch of zombifying ships and other nasty things. It was kinda-sorta previously defined but again still seemed to be missing.
- In general there were very few AI types removed, and instead they are all just a whole heck of a lot more vibrant, and we actually added a few.
Hacking changes
- Science Extraction hacking will now show the total cost for the remaining science on the planet in the tooltip
- Requested by Ecthelon on Steam
- Hacking has been feeling a bit too easy these days, so include AIP when calculating how strong the hacking response should be for hacks against the AI.
- The formula is now NewHackingResponse = oldHacking Response + (oldHackingResponse * AIPMultiplier * CurrentAIP)
- Add the Sabotage hack
- This will kill a random NormalPlanetNastyPick structure on a planet. Many people have asked for this.
- Allow hacks to be done against planets, not just structures
- Allow hacks to be done without a local hacker on the planet
- Allow the AI to launch an attack against the player after hacking is completed
- These can be set on any hack with an XML tag. So all the previous hacking mechanics can continue to function as usual, but new options are now available.
- Mercenary Beacons can be done without a local hacker on the planet. They are also nearly instant to complete.
Bug Fixes
- Fix a bug in the entity hovering ui where it was incorrectly identifying energy overdrive as an attack penalty
- Thanks to Democracy for the bug report
- Fix a bug where the Zenith Trader (Traitor!) was allowing the AI to buy way too many goodies
- Thanks to lots of people for reporting this, including Jannik2099 and Ovalcircle
- Fix a null reference exception when handling GameCommands
- Thanks to jannik for the bug report
- Fix a problem where v-wings were having damage multipliers based on buildings lack of engines
- Thanks to weaponmaster for the bug report
- Correctly flag the "Download Dyson Sphere Ship" hack as unavailable after that hack has been completed
- Thanks to Ecthelon on steam
- Fix a bug where vengeance generators were warping in already vulnerable to damage
- Thanks to WeaponMaster and zeusalmighty for the reports
- Add an Objective for hacking the Spire Archive
- Thanks to settemio for the reminder
- Only seed one spire archive per AI
- Thanks to WeaponMaster for the report
- Spire Archive isn't invulnerable to all damage, meaning it properly dies after being hacked.
- Thanks to Democracy for reporting.
- Spire Archives now show on the galaxy map.
- The Superterminal now explodes after the hack finishes, instead of using a kludgy and bug prone mechanism to prevent it from being hacked multiple times
- Thanks to Lifestrider and zeusalmighty for bug reports
- Fix a typo in the settings menu for multiple AI types
- Thanks to coldrage101 for reporting
- Fixed a minor bug where the HRF Raiders were never spawning because of a typo in their tag.
- Fixed that issue with the fullscreen resolution not being settable in recent internal builds.
- Note that there is still some issue that may make you need to alt-f4 the program after changing between fullscreen resolutions or fullscreen to not-fullscreen, but it then shows up properly after that. I expect an upgrade to the unity engine, due in the next month or so, will probably fix that one part. And that one part probably isn't new. But the new part that was broken is now fixed.
Renaming And Visual Changes
- Cleaned up all entity names, from in the past when they changed function (i.e LaserTurret to NucleophilicTurret).
- Also cleaned up and standardised all the entity system names, and cleaned out a few that were redundant.
- This should make it a bit cleaner to work with in future, as there's no weird cases of there being a WidowGuardian, which is really the Paralysis Guardian, but it shows up as the Widow in all the internal files!
- The Widow Mine is now the Paralysis Mine, and the Grenade Launcher fleetship is now Grenade Launcher Corvette - seeing as it has the Corvette icon and all.
- Sentinel Frigates are now Sentinel Gunboats.
- Anything in future, like Lightning Torpedo Frigate will use the term Gunboat instead.
- Fleetships are now called Strikecraft, and Starships are now called Frigates.
- Space Docks are now simply called Factories, Mobile Space Dock is Mobile Factory, and the Starship Constructor doesn't exist at all now.
- Both Strikecraft and Frigates come out of the same building.
- Not a rename, but a recolour. Human Resistance Fighters and Marauders have a primary green that shows up better in game, and matches what it is in the lobby.
- Thanks to TechSY730 for reporting.
- Advanced Factory is now the Intra-Galactic Coordinator.
- Mentions of Shields such as the Shield Frigate, Shield Generator etc are all Forcefield now.
- Apparently we were using both in kind of random places?
- As Squads are removed, all the Strikecraft models are much bigger, with a single one taking up the same space the full squad used to!
- In addition, things like Frigates, Command Stations, Turrets, etc are all bigger. Almost everything, really.
- All icons in the game are displayed a bit higher above their entity. This gets them out of the way a bit, hopefully not too far that it's difficult to know what they're for.
- With this and the above change, you can actually see the models a bit!
Ship Variants
- Adds the "Harasser" variant of the MLRS Corvette.
- Adds the "Porcupine" variant of the Pike Corvette.
- Adds the "Ablative Troll" variant of the Ablative Gatling.
- Adds the "Dagger" variant of the Raider.
- Adds the "Gunbot" variant of the Autocannon Minipod.
- Adds the "Velociraptor" variant of the Raptor.
- Adds the "Stalker" variant of the Eyebot.
- Adds the "Tripper" variant of the Sniper.
- Adds the "Railpod" variant of the Sniper.
- Adds the "Pulsar Punk" variant of the Pulsar Tank.
- Adds the "Aggressor" variant of the Agravic Pod.
- Adds the "Mirage" variant of the Space Plane.
- Adds the "Hydra" variant of the Vanguard.
- Adds the "Zapper" variant of the Inhibiting Tesla Corvette.
- Adds the "Terrier" variant of the Spider.
- Adds the "Molotov" variant of the Grenade Launcher Corvette.
- Adds the "Ranger" variant of the Sentinel Gunboat.
- Adds the "Medic Gunboat" variant of the Sentinel Gunboat.
- Adds the "Absorber" variant of the Vampire Claw.
- Adds the "Thief" variant of the Etherjet.
- Adds the "Paralyser" variant of the Stingray.
- Adds the "Cluster" variant of the Auto Bomb.
- Adds the "Nanoswarm" variant of the Auto Bomb.
- Adds the "Persuader" variant of the Parasite.
- Adds the "Ripper" variant of the Warbird Frigate.
- Adds the "Brawler" variant of the Assault Frigate.
- Adds the "Devastator" variant of the Siege Frigate.
- Adds the "Siphoner" variant of the Shield Frigate.
- The Hydra is now the Vanguard Hydra, and there's a new Stringray Hydra type to keep it company.
- The Stingray version is markedly more strong in the sense that it subdivides but doesn't have worse stats. It's a quick bit of variance for planets or waves that are replicant-heavy.
- Also added a Parasite Hydra to round it out even more, although made them thankfully lexss frequent.
- Added Ghost Grenade Launcher Corvette and Ghost Concussion Corvettes, to round out the ghost strikecraft category a bit.
New Variants For Starting Fleets
- Added a new Cloaked Ark One variant, and this one is ONLY available via a new "Cloaked Fleet" (CloakedStartingFleet) that players can get in the lobby at the start of the game.
- This offensive fleet is one of the first that players can choose from, and it's powerful and invisible and likely to make them feel quite powerful.
- Led by the Cloaked Ark One, this has Raptors, Agravic Pods, Gunbots, and then Warbird Frigates.
- Added a new Mugger variant of the Assault Frigate that gets parasitism (this needs to be tested).
- This is ONLY available via the new "Parasitic Fleet" that players can choose at the start of the game.
- The parasitic fleet in general is weak and small by comparison to others when it comes to direct firepower... but of course they create a bunch of zombies to work for them. Uh, and yeah there's a Botnet Golem at the center. So weaker might not be accurate after all.
- Led by the Botnet Golem, these have 60 Parasites and 2 Muggers. This is by far the smallest ship cap fleet you can start with... until you start creating zombies.
- Added a new Classic Fleet that players can start with.
- This classic mix isn't good at any one particular thing, but is well-rounded against any foe. The forcefields just make things even better.
- It's V-Wings, Fusion Bombers, Concussion Corvettes, and then a Forcefield Frigate, with the centerpiece being an Armored Golem.
- This is a nod both to the first game as well as the classic starting loadout of ships in this game itself, which is now absent.
- Added a new Raid Fleet for the starting player options, which also has a new "Agile Cursed Golem Ark" that is the Cursed Golem but with way faster engines.
- The whole purpose of this fleet is being able to rapidly move around faster than any other purely offensive fleet in the game.
- It also includes a new "Turbo Stingray" ship that is a faster version of regular Stringrays, and then Velociraptors and Daggers, which are normally already super fast.
- All of these things share the same base (very high) speed except for the last and obligatory part of the fleet, Raid Frigates. These are able to move EVEN FASTER, and so can go off on their own away from the main body if you so desire.
- Added a new "Doorkicker Fleet" as another starting fleet option.
- Mostly focused on crowd control, but with siege frigates along to punch giant holes in large targets when required.
- Basically this is the taking the idea of the Attritioner archetype, but giving one bit of counterbalance to it. Led by a black widow golem, this has MLRS Corvettes, Grenade Launcher Corvettes, Inhibiting Tesla Corvettes, and then Siege Frigates.
Balance Tweaks
- Tesla-class structures (Guardians, turrets, etc) now reduce incoming damage from far away by 99% instead of 100%. This allows the targeting code to identify Tesla units as potential targets (instead of ignoring them as if they were Invulnerable). Units in FRD (and minor factions) should now be able to actually attack Tesla turrets.
- Many people have complained about this, including TechSY730 and Democracy.
- Ark Energy Overdrive is removed for now. Find another place for it (likely in a changed form).
- Sniper damage bonus requirement reduced from speed 1200 to 1000.
- Sniper: Starting bonus multiplier 5x -> 8x.
- Space Plane gets the damage resistance to anything beyond range 4600 instead of 5600 now.
- Basically you have to be closer to it to do full damage. Also means that when using Pursuit, they try to stay beyond that.
- MLRS units have half the shots per salvo, but reload in half the time.
- Helps them retarget more often.
- MLRS units get their damage bonus at 30% enemy hull remaining, instead of only 20%.
- Vanguard, Pulsar Tank: Albedo 0.7 -> 0.3.
- Vanguard, Pulsar Tank, Inhibiting Tesla Corvette, Grenade Launcher Corvette: Mass 0.21x -> 0.3x.
- Vanguard: EngineGx 8 -> 7.
- Raptors, Autocannon Minipods, Space Planes, Agravic Pods, Vampire Claw, Raid Frigate, Warbird Frigate, Eyebot, Stealth Guardian: Albedeo increased to 0.7.
- Concussion Corvette, Sentinel Gunboats, Snipers, Siege Frigate, Tritium Frigate, Warbird Frigate, Tritium Guardian, Concussion Guardian, Plasma Guardian: Armour reduced to 40.
- Concussion Corvette: Shields 2,800 -> 1,800, EngineGx 8 -> 14.
- Vampire Claw: Armour 40 -> 70, Life Leech reduced from 1.5x to 1x.
- Raptor: EngineGx 7 -> 10.
- Raptor Hull: 2900 -> 1900.
- Stingray, Etherjet, Metabolizing Gangsaw: EngineGx 7 -> 14.
- Inhibiting Tesla Corvette only applies reload penalty to armour below 60.
- Siege Frigate: Damage 2500 -> 25,000, spreads it among targets instead of hitting 10 for full damage, range 10,100 -> 12,000.
- Grenade Launcher Corvette, Vanguard, Pulsar Tank (main gun only): Range changed to 4200.
- Grenade Launcher Corvette, Vanguard: Speed reduced to 400.
- Grenade Launcher Corvette: Hull 1,000 -> 1,400, shields 1,000 -> 1,600, EngineGx 8 -> 7.
- Grenade Launcher Corvette, Inhibiting Tesla Corvette: Armour increased to 110.
- Inhibiting Tesla Corvette: Shields 2,000 -> 3,000.
- Etherjet: Damage 30 -> 20.
- Fortified Tesla Turrets have a similar damage bonus to Ablative Gatlings now.
- Makes them a bit more interesting, and also some room for other changes.
- V-Wing: Hull/Shields changed from 500/3500 to 2000/2000.
- Pike Corvette: Armour 50 -> 70, range 8,000 -> 6,000, shields 200 -> 800, speed 700 -> 500.
- Eyebot: Hull/Shields 1,000/1,000 -> 800/800, armour 50 -> 60.
- Agravic Pod: Armour 50 -> 70.
- Dark Spire get a bit less energy if they're the ones that killed something.
- Nucleophilic Guardian: Armour 90 -> 50, albedo 0.7 -> 0.3.
- Concussion Guardian: Hull/Shields changed from 20,000/20,000 to 10,000/30,000, EngineGx 12 -> 14.
- Spider Guardian, Paralysis Guardian: Speed 1,400 -> 400.
- Spider Guardian: Range 15,000 -> 8,000, Armour 90 -> 40.
- Paralysis Guardian: EngineGx 13 -> 7, Armour 90 -> 110, range 8,000 -> 5,000.
- Grenade Launcher Guardian: Albedo 0.4 -> 0.3, EngineGx 14 -> 7.
- Pike Guardian: Armour 50 -> 70, EngineGx 14 -> 7, range 8,000 -> 6,000.
- Tractor Guardian: Albedo 0.7 -> 0.3.
- Gravity Guardian: Albedo 0.7 -> 0.4.
- Reintroduce the Plasma Turret.
- Closer to Heavy Beams than the rest.
- All Turrets except Beam and Plasma have 10% lower health, but 15% greater damage in exchange.
- Turrets felt like they slap the enemy to death slowly while outlasting everything. This is minor, but speeds it up a tad.
- Slow the increase in cost for Science hacking multiple planets
- Thanks to Ecthelon on Steam for the suggestion
- Minefields are now all one use. Damage increased for normal and Area mines to compensate, Paralysis mines have a longer effect as well.
- This fixes numerous problems with them, including somehow surviving and the AI being confused, being repaired mid-combat, overkill or Military Command Station boosts having weird effects, etc.
- Also lets us put damage bonuses on more cleanly without worsening any of those previous problems.
- Marauders have a per-outpost cap on the Raiders they can produce. Unfortunately, stacking causes raiders to lose information about their spawning outpost. As a backup, also introduce a global cap on the number of raiders that the marauders can have.
- This should dramatically tamp down the power of high intensity Marauders late game, especially in sandbox games.
- Reintroduce the Hunter/Killer.
- AI Co-Processors reduce AIP by 20 more when all destroyed.
- Player Golems are much weaker now, but can be upgraded alongside Arks. AI Golems have minor upgrades.
- With enough upgrades, the player ones will match then surpass their previous forms.
- Initial testing of Golems as Flagships was...amusing.
- Thanatos starts with the zombifying weapon already usable.
- Arks are a bit faster, have a bit less health and a bit more damage.
- Spire Frigate can be upgraded as well, has some weapon and health changes and has three versions of itself now.
- AI Forcefield Guard Posts and Forcefield Generators are now actually in use again, as rather rare finds.
- Connected to this, AI Turrets are in a tighter spread around whatever they defend, so they actually sit in the forcefield instead of uselessly outside.
- AI Overlord Phase 2 should actually come after you on that planet now.
- Mercenaries spawn at Mark 1 now, and level up with the players tech level.
- They're also a bit weaker to compensate for that.
Crippled Status
- Battlestations and Mobile Fleet Flagships are now automatically something that cannot ever die, per se -- instead they become "crippled" when their health is less than 10% of its maximum value.
- This solves a whole heck of a lot of problems that we otherwise have, such as where ships should rally to, and it also avoids the "corpse run" problem.
- If there are lone golems that players are capturing that die to remains, or other similar things that are not fleet leaders in that way, then those can still be a source of corpse runs, so it's not like that mechanic went away. It's simply not being a major focus for these types of ships.
- For a while, we were having things like Arks (which fall into this new category) automatically warp back away to some sort of safe space, but that's no longer a thing, which is good.
- Their weapons and other systems all go offline when they have less than 10% health now, which is actually a pretty new limiter on them since it gives them only 90% of their health in which to work, although there's no longer the risk of them dying if you're not paying attention. But for balance purposes it's worth noting that we may wind up needing to beef these out slightly.
- Enemy ships will consider them an uninteresting target if they are already crippled. It's possible that actually shots won't do any more damage when hitting them and they are crippled, which if so is a bug I need to fix later. But them not bothering to target the enemy seemed to be the most important thing for now. If you have a savegame with shots not damaging these ships, then please let us know.
- It's also possible that there will be some edge cases where these things actually DO die rather than being crippled, in which cases repro saves will be very welcome.
- Mobile fleets with a crippled centerpiece now have an effective remaining cap of 0 for all the ships that factories might be sending to them.
- This makes it so that factories won't supply new things for them anymore until there is an un-crippling of the centerpiece. Otherwise there's no reason to bring said centerpiece home for repairs, it's just this strange invincible vessel to which lots of ships rally.
- The metal spent on partial construction of ships is not refunded, but rather is stored at the fleet and as soon as the centerpiece is un-crippled things will come back online and resume wherever they were.
- Note that if any ships are set to reverts_to_neutral_on_death="true" in xml while being of one of these two types, that really won't matter because they should never die. So those should probably be removed.
- This solves a whole heck of a lot of problems that we otherwise have, such as where ships should rally to, and it also avoids the "corpse run" problem.
Costs of Repair vs Construction
- We recently (in this giant build group) redid how the repair costs were working for ships, and it's unclear how that changed things cost-wise compared to what the costs used to be (the costs as they used to be were super unclear).
- What IS clear is that we changed it to just be the equivalent to rebuilding the unit, aka repairing it 50% is the same as building half a new unit. This was by design and we didn't think much about it, but it is definitely something that was eating through metal prodigiously.
- What's also clear is that we were charging this FULL amount for repairing shields, health, and engine health -- ouch. So really if you were at half engine health, half shield health, and half hull health, you'd spend 150% of what it would cost to just build a new unit. Not good! We'd much rather encourage repair in general.
- We now have a variety of dials in the xml external constants to affect the percentage of the full metal cost that it will cost for various repair types:
- balance_repair_cost_multiplier_for_hull_points: 50% cost for repairing hulls.
- balance_repair_cost_multiplier_for_personal_shields: 20% cost for repairing personal shields.
- balance_repair_cost_multiplier_for_bubble_forcefields: 75% cost for repairing bubble forcefields.
- balance_repair_cost_multiplier_for_engines: 10% cost for repairing engine damage.
- This should make things quite a bit less constrained on the player income-wise (it was feeling pretty tight at certain points in the early game because of your much larger forces), and also encourages reuse rather than just refleeting.
Costs For AIs Purchasing Things
- There is a new field, cost_for_ai_to_purchase, which is an integer that replaces the old_strength values.
- This is now what AIs use to purchase units, and it is separate from how strong the unit is seen as.
- This is problably way out of balance for now, but it at least is something we can tune directly from now on.
- "Strength" in the game is now properly only used for evaluating, well, how strong something is. Aka how the AI acts, or as information for the player.
- This is NOT something that goes up by mark level anymore, unlike before, and that's by design as well. The AI should be able to afford equal numbers of ship type X on a mark 1 or a mark 4 planet. That's how things were in AIWC, but it was oddly not at all like that here.
- There are a bunch of other related changes to making the game use the CostForAIToPurchase field instead of the Strength field -- and remember that this is on the TypeData rather than the ForMark data, and that this is by design.
- This is probably buggy as eff. There's a ton of code in this area, written by a bunch of people over a long period of time. So AIs will probably wind up making some pretty strange purchases for a little while, until we find and fix whatever bugs there are, aside from the inherent data issues.
- Nonetheless, now was the time to go ahead and make this change, because it was a fundamental deterrent to us being able to balance what the AI builds separately from how strong the AIs and players view a unit as being. And that was one primary driver behind all things being a very similar cost-to-benefit ratio, at least on paper... and ongoing headache for Puffin, with that. The headaches won't end because of this change alone, but they will shift to a new sort: balancing each of those two things independently of one another ("does the strength stated for that unit seem to match how scary the AI and players should think it is?" and "does that cost an appropriate amount for the AI in most contexts, or is it too cheap or too expensive for them?").
- But in the short term, this will be extra complicated by the fact that the math probably has some bugs in it because probably some things that should be using the new AI budget stuff are still using the strength data. I would be shocked if that's not the case, despite looking at it very carefully until I was cross-eyed.
- And then the other question of "how much should this cost" is now out of date compared to what the strength values were, so even if the math is all perfect we're going to have bonkers data for a bit. That part I do leave to Puffin for the most part, sorry about that. ;)
- As a general design note, both the players and the AIs have been having fewer ships than I would prefer, thus far. For players it was because of the way the ship caps were -- pre-fleets. For the AIs, it was because of the way they were being "charged more" for higher-mark stuff when looking at their own budgets. At the start of the game, a mark 3 planet and a mark 4 planet should have the same relative amount of budget spent, but one gets better stuff from it. Previously, unlike AIWC, the mark 4 planet was getting charged a premium and so felt anemic by comparison to the mark 3 planet.
- This may in turn wind up with the AI having waaaay too many ships for a while, but if we pack those into the guard posts as contents that are not deployed yet, that should have zero performance impact. And it will be good for the humans who suddenly have a lot more firepower at their disposal. Overall the goal coming up is for everyone to have a whole heck of a lot more shooty things, but having them more spread out so that the mega-battles aren't individually any larger than they are now. It will take us a little while to get that part perfect, so please bear with us.
- TryToSpendBudget_CPA has had some updates to how it deploys ships from itself, since the way it stores ships is different from the start. This may or may not cause demonic fumes to erupt, so let us know.
- UnlockShipLineForAI() has been removed, as AIs don't work that way anymore, either.
Achievements
- Add Achievements for winning a game with each AI type enabled
- Add Achievements for winning a game with some of the Minor factions enabled
- Add Achievements for winning a game with various galaxy sizes
- Add Achievements for controlling a given number of planets in a game
- Add Achievements of the form "Have > X Metal/Energy/Hacking points"
- Add Achievements of the form "Kill > X units", "Lose > X units" and "Kill > X && Lose > Y units"
- Add Achievements of the form "Have a campaign X hours long"
- Note that the above types of Achievements can be added to the game with only XML changes
- TODO: Add a UI to show the player which Achievements have been earned
Science/Tech Changes
- Complete rework of how techs function. They are no longer tied to individual ships like before, but rather there are actual technologies that are named and that benefit a variety of ships.
- Ark Upgrade Points and Destruction Points are both confusing and have been removed from the game as a concept.
- But never fear, something very similar with a clearer name and purpose is being added back: Fleet Experience Points.
- The initial techs have been added, and applied to ships and turrets and whatnot.
- This is, at best, a first pass for now. However, there are are present 14 distinct techs that you can upgrade that are more ship-abilities-focused, and which are generally shared between strikecraft, frigates, and turrets. This is the general intended design, even if exact matchings aren't correct or ideal right now.
- The costs here are also potentially bonkers for real-world use. Additionally, there is a maximum number of times a given tech can be researched, and that is usually set at 4 right now, kind of arbitrarily. That does NOT mean that the max tech level of a ship is 4, however.
- Ship tech levels are a combination of all the techs that benefit them (some have more than one), as well as any upgrades to the tech level of their specific fleet. So some are much easier to get to a VERY high mark now, whereas others are almost impossible to do.
- There is now a new UpgradeMeFromFleetOnly tech that isn't shown on the menu, but which we use in cases where we want to denote that this IS something we can upgrade, but only at the fleet level rather than the ship level.
- This is used for things like command stations, engineers, economic production units, and forcefields. That makes these things a lot more location-dependent in terms of how high quality your ships of those sorts are. This should be pretty interesting, actually, and it takes them out of contention for the main science upgrade costs more.
- Overall the goal here is fewer science upgrades happening, but each one having a much larger impact. We may have gone too far in that direction with this first setup of the data, but at this point it's all an xml-based issue.
- Note that all of these techs are based around upgrading all the ships that you have that subscribe to this tech via tech_upgrades_that_benefit_me, and that crosses fleets.
- This should benefit mercenaries, although that hasn't been tested.
- We did base this loosely around Puffin's classes/roles document, but this is meant to be... slightly both more and less granular than that document, and to be multi-categorized in many cases. So your document is still relevant (mainly for fleet design), but it's just semi-related to this specific use.
- It's also worth noting here that some ships/turrets/whatever have multiple tech_upgrades_that_benefit_me, and those are going to go up in tech quality FAST by comparison to their peers. Assuming that players unlock techs synergistically. So some of the ones like the Light, Heavy, etc, might need to be a lot more expensive than they are right now.
- As noted already, the balance here is a bananas basic proof of concept right now, and I'm sure broken in a thousand ways. The only purpose of me throwing this together at the moment was to give a proof of concept unified design philosophy to look at, even if details are really wrong. This gives Puffin and others a chance to actually make it make a lot more sense while I move on to work on other things.
- Note that the EXP concept doesn't come into play at ALL with these sorts of techs. These are purely science costs. The EXP is fleet-based stuff instead, and may not cost any science at all (fleets that auto-upgrade would be nice). But also spending some science on a specific fleet's upgrading would be nice, so that's something that will likely be possible. How that works at the planet level is still TBD, I have two different possible models for that and haven't been able to choose between them yet.
- Also please note that for an individual ship/turret/whatever type, there's no risk of it going above its max mark level, which is either 7 or is explicitly defined as something lower, or is markless. If it subscribes to 2 techs that each have 1 upgrade, it would naturally be mark 3, unless it's capped at mark 2 in which case it will sit at mark 2. And if its fleet is also upgraded 3x, then it would be mark 6, unless it was capped lower.
- A general note: This overall tech system has way fewer decision points than the old one, which is good because that makes them actually something that you can contemplate. However, as a byproduct of that, you'll often get some secondary stuff upgraded that you cared less about, and that actually provides opportunities for you to make new use of them in interesting ways if you so choose. Also also, you're a lot more likely to have really wide mark level disparities between parts of your empire (different planets and fleets), which is more in keeping with the first game albeit from a completely new angle. This is exciting.
- Another general note: the overall ship caps per fleet will only be whatever they are, but the idea is to have larger effective ship caps for players by the late game because of a proliferation of fleets. In some cases in the late game you'll also have some fleets that are incredibly technologically superior to the AI, and other fleets that are incredibly behind the times. How this exactly plays out will be interesting to see from players, but in a theoretical sense there's nothing wrong with that; we may just have to adjust some balance dials over time to keep things from being TOO extra weak or strong, and/or to make the AI really reactive to overly-advanced forces if those exist. Here again this is an opportunity for more gameplay, rather than a real challenge in a negative sense.
- The tooltip for science has been improved to be more accurate and also more descriptive:
- Spend Science to unlock higher-level units and structures. It is gained primarily by claiming new planets and holding them for a while.
- There is a limited amount that scientists can learn from what they find in each system, so you'll need to keep finding new research targets for them.
- A single ship type can be upgraded by multiple tech upgrades as well as from its parent fleet gaining experience, so be sure to consider your options carefully.
- More techs will appear in the tech sidebar as you capture fleets with ships that can benefit from them.
- The tech sidebar is once again functional, and allows for you to unlock techs that benefits various ships that you have.
- It looks and works a lot more like the hacking sidebar instead of the build sidebar, now, since the type of data it needs to show is very different. This makes it a lot more text-heavy and showing related costs and the mark levels of ships in a really clear and concise fashion. Yay! It does mean no real icons on here, though.
- The tooltips for techs that you can upgrade are also now completely redone, and it shows you which ships will benefit as well as how many of them you have. It doesn't show you the mark level of the ships, because you might have several different mark levels of each ship type since they may be upgraded by fleet upgrades.
- This was certainly needed in order to make the game all that playable in 0.850, but in terms of why we did it right now versus after the build menu, it's mainly because this was simpler and was therefore a nice dry run for the more complicated menus.
- Ok! So we've already learned quite a bit about techs and how people will wind up using them. Clearly the new system works well, but is going to need refinement; chief among that is just how many upgrades a given line can grant.
- One of the other things that was immediately most clear was that "Ark" as a technology was really not cutting it. This was way too broadly useful, and "Battlestation" was almost as bad.
- First of all, these need to be more pricey, but some Arks should cost more than others, and some Arks should share techs, but not ALL Arks.
- With that in mind, there's a new schema in place for various Arks and Battlestations broken out as follows:
- Ark Spirit (most basic stuff), Ark Heart (happy helpful stuff, less dangerous), Ark Armor (beefcakes you need to really pay for), Ark Fist (holy smokes these things are powerful, and thus expensive, and only have 3 marks rather than 4).
- Battlestation Shelter (protection-oriented), Battlestation Hand (grabbing or slowing enemies), Battlestation Architect (engineering or construction).
- And it's worth noting that Battlestations are really oriented into those as well as the previously-were-fortresses Citadels that are way more combat-oriented, so splitting those also matters:
- Citadel Executioner (kill a lot of things), Citadel Protector (yeah, hurt them, but protect other stuff as the primary), Citadel Consumer (eat or steal the enemies).
- And then there's the Spire Frigates, which really don't need to be lumped in with Arks or Battlestations or Citadels. I'm sure these will expand in the future, but for now we just have the new "Spire Core" (for all three types of Spire Frigate), and they're super expensive but can be upgraded 4 times.
- The overall lesson here is that we CAN have more techs than we maybe were once thinking, particularly since they only show up conditionally. This also makes the Arks and Golems and so on a lot more unique in terms of how well they are upgraded (or not).
- This will get more crowded in the tech tab with time, unfortunately, as you unlock a lot of ships. For that reason they are now down at the end of the list below all the actual main ship lines.
- This may also hint that we want more tech lines in general for the other ships, and/or that they need some changes to their science costs, but we'll cross those bridges when we come to them.
- The science intel message is now more brief in the sidebar, and more informative in the tooltip. Now everything fits.
- On factions, there is now a InheritsTechUpgradesFromPlayerFactions serialized bool that should be set to true for any factions that the designer wishes to recieve all of the upgrades for the player techs.
- Aka, if two players each have upgrades to Tech A, then the faction will get the largest of the two, not the combined value of them.
- Got rid of the (very elegant, sadly) "tech view" version of tooltips that showed all the ways a ship would be upgraded by gaining a mark level.
- That was overwhelming as an amount of information, but also there's just no place where we'd actually be asking you to see that anymore. Now you upgrade techs that hit a bunch of ships at once, and so this per-ship-type comparison stuff just has no place in there anymore.
Vision Changes
- Complete vision rework. Planets are all now either
- Unexplored: You have no vision of what is on this planet. You also cannot send ships to or through Unexplored planets.
- Explored: You can't see exactly what's on the planet, but you can see who owns it and the sidebar works. Chris has a TODO to figure out how to show stale data/interesting visuals when you try to look at an Explored planet.
- Watched: This state means "Explored and you have ships there". You can see what's on the planet, but when you no longer have ships there the planet will go back to Explored.
- Permanently Watched: you always have vision here
- At the beginning of the game, all Player Homeworlds and adjacent planets are Permanently Watched, and all planets 2 hops from a player homeworld are Explored.
- Capturing a planet or killing an AI command station automatically Explores all adjacent planets
- You can also Explore a planet by hacking an unexplored planet, as long as you have an adjacent Explored or Watched planet (otherwise you could just explore random planets around the map which seems less interesting to me)
- You can Permanently Watch a previously Explored planet by hacking (but the AI will launch a small counterattack at you when you do so).
- The game now tracks the specific gamesecond that entities were created, and when they entered planets, versus "how long ago."
- There are helper methods for getting the familiar "how long ago" data, however.
- Now that we know the last gamesecond we had vision of a planet, and the gamesecond that ships entered planets, on planets where we do not have current intel we are instead showing the effective last-known data on the sidebar, as well as actually showing the ships visually (through the distortion), even moving around if they are.
- This won't show any ships that have been more newly added to that planet, though, and the sidebar notes that. So there might be a huge hunter fleet moving through there and you'd have no idea, for instance.
- For planets that are completely unexplored, you cannot directly send ships there anymore, nor can you select it on the galaxy map or send your view there.
- It IS still possible for your ships to path through completely-unexplored planets, for the time being, however.
- Trying to make it so that player ships are completely unable to pathfind through unexplored planets is rather more than a bit of a nightmare. With that in mind, they are now simply disabled if they wind up going into unexplored space for whatever reason.
- We can make this more sophisticated in the future, but for now that should handle anything exploity.
- Players can use various tricks on the sidebar to click to the fleet leader heading through unexplored space to see such a planet, but they'll wind up seeing nothing there, so they gain very little. And meanwhile, the ships of the player are unable to shoot but still able to move, and enemies are able to shoot and are completely invisible to them, so that's... quite a bit of "fun."
- Main thing we probably want to do at some point is get player ships to try to prefer not going into unexplored territory if at all possible.
- Edit: nevermind, player ships should not be able to path through them at all. So yay! But if they do, they'll be disabled.
- The "explored" status for planets has been split into "explored by natural means" and "explored by distant hacking."
- This mostly doesn't matter and isn't something we're making a big deal about in most places. But using spy nanites basically is no longer a way you can expand how much your empire gains in vision every time you capture a planet.
- The "explore next to explored" logic basically ignores stuff that was spy nanites. Maybe there should be a conduct later that makes it not ignore that, since that ALSO would provide some interesting strategic options, but frankly for now that seems like overkill. We shall see.
- When you don't have vision of a planet, there is now a fancy distortion effect that is part grainy-tv and part slow-matrixy-refraction.
- There's not a way to disable this effect, because it shouldn't be fast enough to make anyone nauseous, and there's no real point in looking at planets that you can't see anything at, anyway. This just makes it clear why you can't see those planets (the sidebar says no vision, but why did all the ships just disappear?)
"Hard Mode" For Scouting
- Added a new "Scout Adjacent Only" conduct, with the following description:
- TLDR: This is harder and will make you take a lot of planets. For advanced players only.
- Details: Normally when you capture a planet, all planets adjacent to ANY explored planets become explored. Unless the map is very narrow, this causes you to get exponentially more planets you can see as the game goes on. Even further than that, there is a minimum number of planets it will explore for you when you take a planet, depending on the number of planets in your galaxy, so that snake maps and other really narrow maps aren't unplayably hard.
- With 'Scout Adjacent Only' enabled, it tosses all that out the window. Instead it just explores any planets adjacent to the planet you just captured. This will make snake maps almost impossible to play (so that's a bad combo), but on maps with more cross-connections it can lead to... a certain added strategic challenge. This still seems masochistic even in the best case, but have fun with that if you want.
Removed/Revamped Ships
- Science Labs, Hackers and Scouts are removed. Scout functions of the Sentinel Frigate and Sentry Starship are removed.
- Sentry Starships are now per-planet cap, cannot use wormholes, are built directly (like turrets) and die to remains.
- They're effectively Decloakers from Classic, but far more convenient.
- Engineers are per-planet cap, cap reduced significantly and can't use Wormholes.
- The new Combat Engineers are able to use Wormholes and are a type of Strikecraft instead.
- Mobile Space Dock and Mobile Builder are not unlockable or buildable, and are instead capturables.
- The Remains Rebuilder has been removed, and the RebuildingRemains metal_flow has now been granted to all of the player command stations and the player mobile builders. It's no longer something that is assist-line-distance-based, nor is it something that requires a dedicated unit to run around doing things with.
- This is one of those streamlining bits that people have requested for a while, but Chris in particular was noting that engineers and rebuilders need to be two separate functions (and they do). But making this instead essentially work like claimables and "just happen" solves the issue that people were complaining about without getting into territory of making the AI for the engineers likely to be bonkers.
- Later we will need for all of our Battlestation types to have this, most likely, or things will get funky at times. This last is a note for Puffin.
- Colony ships have been removed from the game, since that was a level of indirection that was not needed.
- Similarly, hackers are gone, as are mobile builders in the classic sense.
- Design Template Servers in the codebase are now gone. The concept of warheads, in the codebase, is now gone.
- Starships are now called Frigates, including in the codebase itself. Docks are now called Factories in the codebase.
- Golems as a standalone thing (for players) are now gone, as are Arks. They are now combined into being the Mobile Fleet Flagships. They are still called golems and Arks, but they're the centerpieces of your fleets at any rate.
- Really key new limitation for drones, for the sake of sanity and not having nested fleets. This really only applies to player ships, in the main:
- The drone producer must also be the fleet leader. So if we're talking about a player ship, it needs to be the Battlestation or Flagship of a fleet, and not something like a random Frigate as part of it.
- On the AI and NPC sides, they don't really use fleets the same way normally, so anything that is a drone generator just becomes in charge of a new Drone fleet type.
- This is probably going to be the source of some "fun" bugs. It will start spewing errors like crazy when this happens (once per second per ship that has this issue during gameplay), if it happens. It's possible to set this up with bad xml, basically.
- The gameplay settings for automatically building remains rebuilders and setting them to auto-FRD are both now gone, since so are remains rebuilders.
- The gameplay settings for "brave scouts" is also now gone, since scouts are also being removed and rejiggered.
- Design Template Servers have been removed. They were not exactly exciting, and they don't make sense in the new method of AIs working with unlocked ships.
- Schematic Servers (formerly ARSes) have been removed. Those also no longer make sense in the brave new world that is the new setup for fleets, etc.
- The idea of CorruptedAIDesigns has been removed, as that was something that people weren't really using and it doesn't fit well with the new approach to AIs and fleets.
- A bunch of stuff relating to Golems the way they used to be, including the entire Broken Golems faction, has been removed.
- Golems are now another form of Ark, basically, and are capturable in that fashion.
Capturing Planets
- So long as you have a mobile fleet leader on a planet with no command station (enemy or otherwise), you can now capture it like you would have previously done with a colony ship.
- Aka, just take any of your golems or Arks over to the enemy planet and destroy their command station and you're immediately ready to set up your own. Boom, simpler.
UI Changes
- Player profile stuff relating to choosing a default Ark type is now removed under the hood. It hasn't been on the front-end for quite some time now.
- Note that a lot of the stuff with Arks having a story and a portrait image are thus now gone, although again this isn't new on the front-end. Arks simply have a new role now.
- You are no longer asked to pick a Chief Adviser at the start of the game for your profile. That was a lot of confusion an un-needed choice on something rather trivial, and got in the way of getting you to the actual game.
- Now it just has a screen for profiles that asks for a name and your default colors and that's it.
- In the lobby, you can no longer select a starting bonus ship type OR a starting Ark for your faction as a player. Neither of those make any sense anymore. Now there's something new:
- The game now lets you choose from special starting fleets, of which at the moment there are 5 handcrafted ones. The player can choose which one they want in the game lobby, just like they could with Arks.
- "Conducts" are now able to, and in fact required to have, a description.
- They also now have tooltips in the lobby, which show these descriptions, thus explaining what the heck they do.
- The conduct for "start with planets explored" has been removed, as that's really cutting out a core part of the game now.
- The scouting being so much more automated now kind of makes it a bit different from other games where you can turn off fog of war. Despite the first game having the option to turn off fog of war, that really takes out the entire flow of the game when it comes to this game.
- Scouting isn't some hassle thing "that you have to do but might want to skip" anymore, but now is part of the reward structure for capturing planets, and so turning that off just would have... a lot of balance issues, among other things.
- Added the following description to the Experimental: AI Civil War conduct, which is the only pre-existing conduct currently remaining. This may or may not be fully accurate:
- If there are multiple AI factions, they all hate each other and will fight each other. They still hate YOU, too, but all this chaos and infighting is assumedly to your beneit. Then again, you might just find yourself in the crossfire of AIs who are getting more powerful more rapidly due to aggroing each other... so it's anyones's guess as to how long you'll last.
- Working on making the tooltips for ships substantially more brief while still conveying the important information. Some of them are getting ridiculous for sure.
- Added a new type of control for our settings menu, which is an integer slider. This is preferable to the textbox or dropdown for some cases.
- We're now using that for the auto-build engineers, which also defaults to 2 now instead of 0.
- We're also now using that for the various volume controls, which were inexplicably textboxes before.
- We're also now using this for the minimum autosaves to keep, and the autosaves interval.
- When planets are explored via you having just capturing a planet or whatever, it now shows a message log entry saying what planets were discovered and how many of them there were. This way it's clear that scouting is even happening!
- display_name_for_sidebar has been added for entities, as it lets us give a more brief name to appear on the sidebar while still having a fuller name in tooltips.
- This is optional and will just use the full name if it needs to. But if the sidebar is having bad wrapping of some text, then this should be filled with something shorter. Case in point is the home forcefield generator.
Intel Tab
- Something I talked about on the podcast is an new form of objectives, which is an idea that I've been refining since then (and had already been prior to then).
- However, the "objectives" on the sidebar as they stand right now are not something I want to get rid of at all (most of them), given that they are kind of a "todo list of things you might want to do," and that's a pretty important tool to have.
- With that in mind, the Objectives sidebar has instead been renamed to Intel, and over time we'll probably take out some things like the beginner tips and the primary objectives and so on. For the primary objectives we'll likely just recontextualize the same thing, but the beginner tips we'll probably fold into the new objectives (actual objectives system, separate from this intel system).
- All of the really time-consuming-to-add and detailed "objectives" stuff about where we found things to capture and hack and kill, and where we should be scouting, etc, is all going to stay. It's just under the name "intel" instead, now. Really, that's what it is: information that lets you make decisions yourself, be that diverging from your main objectives or defying them or whatever else.
Build Tab
- The "Direct Build" sidebar has been completely reworked from scratch.
- It's no longer based on icons and tiny buttons, but instead has much larger buttons in categories. This may lead to more scrolling in some cases, but it also should be way more legible AND in general the player should have fewer things that they can build at any given planet unless they've stacked a lot of battlestations and citadels there.
- Each line item not only shows what type it is, but also has to include what fleet it goes with -- so if that's the planet fleet, or one of the battlestations or citadels, that is relevant.
- Why is this relevant? Well, those things can be upgraded independently, for one. And for another note, it's possible that you might choose to move a battlestation or citadel to a new planet, thus making all of their units on this planet stop functioning. So it does play into the strategy if you plan on moving around your battlestations and/or citadels (as you likely will).
- These also now show the cap directly in a 0/3 fashion or similar, with it showing how many have been built out of how many are possible. It's possible that you might have more built than are possible to build, which it will show properly, but with a red warning.
- It also more directly shows the cost for construction -- super useful -- and grays out the text of any entities that you have already built to the full cap so that they are not so noticeable.
- This whole setup is really geared around having many fewer TYPES of things that you can directly build at a given planet, and that's the intention for the long term. We don't really want dozens of options here, but rather a smaller and more interesting selection that you can build from contextually depending on the planet.
- At this point you can actually construct new direct-placement units!
- A whole bunch of changes have been made to the way the tooltips look in build mode for entities, and also to how things are hovered-over in the build menu and galaxy in terms of what highlights, when.
- It's stuff we'll refine further with time, but if something seems off, please let us know.
- When a Zenith Trader is visiting, you'll see a bunch of stuff on the sidebar under various categories, noted in pink as being from the Zenith Trader.
- This is different from past versions of the game where there was a specific category for all the Zenith Trader stuff regardless of what its function was. This actually makes it a lot easier to find things by function, particularly if the amount of wares on offer goes up a lot in the future.
- For things like the Station-Keepers (Chained Dark Spire Eidolon), there is now a per-planet cap higher than 1 for these. That's pretty nifty, and it works!
- Note that even if you don't have the metal for these projects NOW, while the trader is visiting, you can start the projects and pay for them over time. This is as before and is by design. The UI might be a bit confusing on this, not sure.
- In the build sidebar, turrets and "other defenses" have now been properly split out. Before they were all kind of mixed together in "defenses," which got confusing.
- Sentry Frigates are now part of the Station Keepers sidebar instead of Other Defenses.
- This is meant to be the case for anything that is mobile, essentially.
Hotkeys
- The hotkey for opening the tech tab now only opens that, versus opening that or the hacking tab contextually.
- Given that the docks tab is gone, the build hotkey now only opens the build sidebar directly as well, kind of implicitly.
- There are now separate hotkeys for opening the hacking (H) and fleet (R) tabs.
- The "split selection" keybind that was previously L in this game and the original is now semicolon.
- The "Unload Transports" (U) hotkey has had its description reworked as follows:
- Any mobile fleet flagships that you have selected will immediately unload any ships they are presently transporting.
- Added a new hotkey (L): Load Transports
- Any ships that you have selected which are part of a mobile fleet will immediately get inside their flagship for transport if their flagship is on the same planet.
- Note that the need for this to be separate for unload is that it will be common to have partially-loaded transports and you don't want to get into funky toggle situations with ships getting in and out when you really meant "keep getting in" or "keep getting out."
- The keybind for "select all scouts" has been removed, since scouts are removed.
- SelectNextUnitType and SelectPreviousUnitType have both been removed, as they were buggy like crazy in general, and also don't really make all that much sense in the new workflow of things.
Savegame Format Revamp
- The default serialization style for things the game saves is now Byte arrays rather than the char arrays. This will make savegames vastly smaller than before, although not as legible (as if they were before) to edit by hand.
- This is great for a variety of practical reasons, but among them it causes fewer transient garbage collector allocations. And it also makes it so that large integer numbers are no longer something that make the savegame larger. Rather than one char's worth of bytes per digit in the number (1-6 bits, per UTF-8 specs), it now just has a fixed 4 bytes for the number regardless of how many digits it has.
- This breaks all the previous savegames, but they were already broken anyway.
- Player profiles and settings are still using char arrays so that they can be edited by hand as desired.
- There was previously a "too smart for our own good" method for "compacting" integers down that were used as primary keys. This could cause all sorts of bugs when used incorrectly, and aside from known bugs that this fixes, we happened to see a few other bugs in passing as we were removing it.
- Note that this was needed almost exclusively because of the char arrays serialization that we were using. Now that we're using byte arrays, this compacting is not just bug-prone it's actually not any more efficient in the first place. So it's really good to have that out of there in general.
- Thanks to DEMOCRACY_DEMOCRACY for reporting a particular bug caused by this.
- Items that are truly deprecated, but that we still want some record of for whatever reason, are presently moved into a new GameData/Pre900Deprecated folder.
- This way we still have the xml, but the game never looks at it. Normally the purpose of deprecating something is to make sure that savegames that are older can still be read in. With 0.900 we're breaking the savegames anyway, so clearing out the deprecated stuff is only natural.
- As part of this release, we had switched to writing our savegames in a binary format. However, this wasn't really working fully properly because it was trying to transcode that into unicode, which in turn would sometimes complain with the "Unable to translate Unicode character XXX at index YYY" error.
- This was also notably less efficient in terms of GC usage. Now we're just directly writing the binary file.
- In fact, now we're writing a BuzzsawBinaryByteArray, which is 449kb where even the binary array was 3.2mb, and the char buffer was even larger.
- The way that the "external data" (aka modder-type data or data that was being saved into the external projects) is saved used to be based on using a sub-serializer that then itself got written as a string back into the main serialization stream.
- This was probably done as a way to isolate freaky bugs introduced into savegames by modders, but with our new serialization logging that's really no longer a worry. As it stands, the sub-serialization may have instead been preventing us from properly saving sub-data and getting it back reliably. Also it was vastly less efficient in the new context.
- Anyway, given that the new context is such that doing the data saving of external data just fully inline without any wrappering is more efficient, that's now what we're doing. Based on the serialization logs, this seems to work great.
Debugging Additions
- Added a new "Write Savegame Serialization Logs" setting into the debug section of the game settings.
- When saving a game, write WorldSerialization.txt, and when loading it write WorldDeserialization.txt -- both in the PlayerData folder. The only real reason to turn this on is if a savegame won't load for some reason; this lets us do a diff of the two files and figure out where they are diverging.
- Note that this won't help with an existing broken savegame. This will only help if you have it turned on prior to creating a savegame you expect to be broken. This is basically a way for us to test the savegame creation and load process, which otherwise can be incredibly opaque and take a lot of time to hunt down.
- It's hard to understate just how big a deal this tool is. This is an area that could have us searching for hours or days for a problem, and now we can find it in minutes, potentially.
- The specific genesis of the feature was in fact Chris spending hours searching for something and not finding a solution, and finally thinking there had to be a better way. We should have thought of this 10 years ago, honestly.
- Added a new "Write Mapgen Log" field in the debug part of the settings.
- When generating a new map in the lobby, write MapGen.txt in the PlayerData folder. The only real reason to turn this on is if mapgen isn't really doing what you expect for some reason, or you just want some detailed insight into what is happening and in what order.
- To hook into this as a modder for your own purposes, you simply write to MapgenLogger.Log(). If you're doing anything CPU-expensive or that involves string concatenation or similar, then you can wrap that inside an "if ( MapgenLogger.IsActive )" statement. This simply avoids slowing down mapgen at all when logging is not active.
- There is some serious funkiness going on with some data being null when it should not be, and this is how we're going about figuring out when and why that is happening. But this also lets us see the results of maps that are generated without having to scan with our eyeballs all over a big map so much. Given how much has just changed in mapgen and elsewhere, this is handy, even if we didn't have an immediate bug issue.
- The fleet centerpiece "repairs" no longer get dumped to the log unless a new debug setting is enabled. This was essentially just spamming the log for no good reason at the moment, but it's useful to be able to see it in some limited cases, hence the new option.
- Put in a buuuunch of debugging code for figuring out where excess notifications that hang out at the top of your screen are coming from.
- The tooltips for the excess notifications should now explain what the problem is.