freeorion
freeorion copied to clipboard
(AI) misevaluation of some weapons
Weapons that only fire on some rounds are assessed as firing every round.
Affects threat assessment and ship design.
So for the case of a flux lance the AI's ship designer sees this as 1/2 the strength of mass driver 2(should be 1/4 strength) and 1/5 of the price.
In the case of a sighted larval kraken the AI will react as if there are 2 krakens instead of 1
can't you query the max total damage amount / max total fighter destruction from the backend? it was intended exactly for these cases (i.e. GUI and AI).
I assume you can? Currently its all calculated in the AIs scripting. I'm not sure if that's a legacy from older code in the backend.
The total maximum damage estimates exist only since "a short while ago"(TM) and of course AI needed to estimate combat value before that. And the AI scripting is powerful enough for estimating the hits-every-turn weapons quite well. Also the backend estimates are very technical, so in principle it might sense for AI to use different estimates (but we do not have that currently); e.g. it could favor early damage in non-stealthed ship designs, or do special estimations depending on survivability (e.g. it makes a lot of difference if a ship is dead after 1,2 or 3 shots) or different estimates for designing (armed) decoys maximizing overshot damage vs production cost. But a lot of those depends on all the ships in a battle, not on a single ship; so the next better thing is a real backend battle simulator (which mostly needs an interface to set up a fleet battle) or collecting a big pile of data for doing statistic things like machine-learning AI (which needs tons of compute). The best thing about total maximum damage/maximum fighter destruction estimates is that it also works for unknown content. And i am also not sure that there are the necessary python bindings(?) or whatever is necessary for accessing the estimates from the AI is in place. My guess is that AI has more important stuff missing/lacking, so I personally would go for maximum damage estimates first (or simply hardcoding the stuff for non-standard weapons).