SirkoZ wrote:I would like to request all NoAI AI authors to build in their AI's a switch or a hard coded rule so AI's do not compete with player's company at industries (only industries, not towns) with more than 60% transported.
I think such a rule/option is fair and balanced.
That would be complicated due to FS#2776 - AI can't see opponents stations and vehicles, but since the GetLastMonthProduction+GetLastMonthTransported only tell how much have been transported, AI can't tell whether it was transported by single company (and then there are chances to get some share of the cargo) or by many companies (and then chances of getting some decent share of industry output are rather low)
Also, AI's can't tell whether other companies are controlled by AI or a human (though that is usually not necessary to know, just treat all opponents equally ...).
In my AI I am going with assumption that if AI have to compete with N other competitors, it will get 1/N of industry production, therefore it will prefer industry with 300 tons/month before competing for industry with 550 tons/month already serviced by 1 other company. (well, not only the output matters, but also distance to drop point, etc ....)
But if there is 1 industry with 1000 tons/month serviced to 80% by 1 player and second best is 200 tons/month ... my AI will select to compete for goods (on default settings).
I personally have few switches in AI that I am developing, the AI can either be friendly (avoid servicing same industries as any opponents), competitive (service opponents industries if AI estimates it will be more profitable than servicing any unserviced industry, i.e. maximize expected profit) or even aggresive (slightly prefer competing for goods) or hostile (be aggresive and don't be shy to use "dirty" tricks like buying exclusive rights in the process).
So there would be chance for my AI to be set as "friendly", but I am not going to use hardcoded constant like "60% production transported" in the decision process. ("friendly" AI will simply strongly prefer connecting only unserviced industries and therefore it will start competing only once there are no unserviced industries/towns available on the map.)
My defaults are easy=friendly, medium=competitive and hard=aggresive.
SirkoZ wrote:
An extreme example is if you load multiple Admiral AI's - they will all service one mine/industry, thusly lowering even their chances of industry increase...I know though that Admiral AI is not yet programmed to properly compete against itself.
Also, the fact that industry is serviced is seen with some delay (Fixing FS#2776 may give AI's better chance to see if and with how many companies is the industry serviced), so perhaps those 4 Admiral AI's see same "best" unserviced industry and start building around it ....
I'll have to definitely add some randomization to my AI - never choose "the single best", but pick few best options and then randomly choose amongst them - with "the best" having somewhat higher chance.
SirkoZ wrote:
So far none of the AI's have this implemented (from what I know) so buying land around player-serviced industries is necessary if one doesn't want the AI's to come in and unnecessarily lower one's percent_transported because that is mainly what they do with their "competition".
If people does not want AI's to service their industries, they should not use AI's and play alone. Competition is competition. As for the industry blocking - I think I'll add this behavior to the "hostile" level of my AI :)