Discussion in 'Backers Lounge (Read-only)' started by Sorian, July 19, 2013.
Old comment then. economy_scale was before we had the economy handicap in the lobby.
I was fiddling with the values to see if I couldn't change the AI's play, but was pretty much stymied by the fabbers and factories being joined at the hip.
Looking forward to getting a bit more info on how to tweak the AI towards being more aggressive and working better with new units.
What do the following settings modify?
In regards to my previous question I'm assuming that they modify:
Working through the AI I was hoping you might be able to clarify a few points:
Why is CanAffordPotentialDrain always followed by a string0, but CanAffordBuildDemand is not?
Why is NeedBasicAirFabber (and other Need tests) never followed by a boolean?
What causes a Need check to become true?
What triggers HaveEcoForAdvanced to become true?
Is percent a maximum value for the size of the squad measured against the overall platoon, or is it a requirement that the platoon consist of a x% of whatever units that squad has?
Is influence type a build condition? I read it to mean don't place build X here if threat of type Y exists for value Z within a specified radius.
Is a ThreatRatio (such as PlanetThreatRatio) measured in proportion to the AIs ability to respond? For example, a Land thread is modified by the AIs AntiSurface capabilities?
I have never seen the AI do anything with gas giants. Does the AI know what to do with them?
1) Because that is the way it panned out. It doesn't need to be that way anymore.
2) Didn't have need of one.
3) It uses the values in ai_config.json.
4) When the AI has enough economy income to support a T2 factory + T2 fabber. May make this adjustable via ai_config or (more likely) a personality value.
5) % of the platoon size. It is a desired amount (not required) unless paired with min_count.
6) You mean the threat block in the placement rules? Then yes, it means find a place that meets these threat requirements. Those values could use some work.
7) string0 is enemy threat, string1 is allied threat, so the AI and any teammates.
Thanks for the response!
1. As in the string0s aren't required any more, or they stopped being a requirement as new checks were developed (but are still needed for ones like CanAffordPotentialDrain)?
2. Is that true for all checks (a check without a boolean checks for true), or just the specific ones where you haven't included a boolean?
Is there any means at the moment to see the AI's thinking? Naturally the first thing I encounter is a lot of stuff breaking as I fiddle, and I'd love to know what the AI is doing and which checks are coming up false, etc.
Any build condition that does not allow a boolean will only be true if the condition is true. Hope that made sense.
Oh damn, one I forgot. The ThreatRatio checks, is that comparing overall force strengths through the neural net scoring, or something else? My assumption was that PlanetThreatRatio > 2.0 would mean where the enemy force is more than twice as strong as mine.
Only do this action X times?
Only do this action in X places at one time?
And is it per planet or system?
If it's the latter, do platoons the AI forms count towards the instance count so long as they're alive, or only while it's forming them?
Do squad names have any meaning, or do they just need to be unique within the platoon?
It uses threat values, which are calculated at the start of a game for each available unit (including ones added through modding).
InstanceCount means only use this build item at most X number of times at the same time. SharedInstanceCount is the same, but shared across multiple build items with the same shared_instance_count name. This is done per planet.
Squad names have meaning. It changes the way the AI uses the units. For example, units in the defensive squad will not be given orders to attack things. Instead, they will be told to stay with the group of units attacking from the furthest away.
That's what I figured, but it seems to happily continue to form new scouting squads regardless of the instance_count. I'm not sure if that's because the AI only counts forming the squad as an instance (rather than the squad existing), or if I've made a cock up somewhere. Ah, the joys of figuring this stuff out . Probably best that I strip the files right back and build up from scratch to make it easier to nail this stuff down.
Are AntiOrbital, AntiAir and AntiSurface an internal thing? Despite being referenced as strings they don't appear in any of the json files apart from the AI ones. I'm trying to figure out if "string0":":"Air" and "string1":"AntiSurface" is a valid combination. In one instance the files have "string0":"Land", "string1":"Land" and I'm not sure if that's a typo.
Didn't get around to platoon instance counts, sorry
Wouldn't take much work to get it done, but not high priority at the moment.
Valid threat values are:
Please don't let the AI Commander "try" to invade planets it havent scoutet yet, in a Atreaus. I have lost Count of have many AIs got killed this way. You could think that the Commander was under alot of pressur in its base, but this is not the case, that is not why they are leaving.
Appreciate your time, sorian. Many thanks.
Known issue that will be worked on. Just be patient. Lots of stuff yet to do.
What's the difference between UnitCount and UnitCountPool? They seem to be used in exactly the same way.
Also what are SystemThreat, PlanetThreat and BaseThreat measured against? There's no string1 for any of them, so what is the point of reference?
Separate names with a comma.