Jump to content

SC2 AI Question - Ungarrisoned Nations


Edwin P.

Recommended Posts

Should the AI should know when countries (Canada, Norway, Spain) and colonies (Egypt, Vichy Syria, Vichy Algeria, Italian Libya)are not garrisoned with enemy land or air units?

Would this be an unfair advantage or a justifiable benefit based on intelligence gathering?

IF so should the same information be available to human players (with a chance of getting disinformation from your opponent if he decides to invest MPP (say 5 MPP per turn per territory) in such an effort).

[ November 19, 2003, 12:49 PM: Message edited by: Edwin P. ]

Link to comment
Share on other sites

Example: You go to the world map and see a text pop up box as you move your mouse over each country to give you a very general and sometimes inaccurate idea of the amount of enemy troops in each country.

- Egypt: [Radio Cairo] reports that all Allied troops have left Egypt.

- Spain: [Radio Madrid] reports that Axis troops implemented new curfews.

- Norway: [Radio Oslo] reports that Axis troops implemented new curfews.

- Norway: [Radio Oslo] reports that all Axis troops have left Norway.

- Malta: [Radio Malta] reports that all Allied troops have left Malta.

Link to comment
Share on other sites

I'm confused by some of the responses. So let me restate what I think Edwin P is saying.

Should the AI be able to detect when a nation is not garrisoned, when the FOW is on?

Answer... No. If you want the AI to be able to "see" things you can't, then give the AI strat bombers and Long Range tech.

If thats what the question is, whats really being asked is for the AI to take advantage of "opportunities".

Answer... Yes. But its alot easier said than done.

It was mentioned before, but it doesn't hurt to mention it again. The AI source code needs to be opened to the public. Then those of us who are so inclined, can modify the AI to operate in the fashion we feel is correct. More importantly, since thats going to produce a wide variety of different AI's, the player can simply load in a specific AI version and when he gets tired of that one, load in another AI version produced by someone different.

The current AI in SC is good enough, but will never get beyond a certain point. And there is no financial benefit to putting the resources into it. But if you let the code be modified by outside parties, SC will benefit since there will be a much larger variety of AI choices, that are produced for no additional investment by Mr H (other than the framework to load in different versions).

But understand why it usually isn't done. The general public doesn't have a clue on what it takes to logically design software. And this is assuming you know how to progam in the specific language. The two are not the same.

Link to comment
Share on other sites

Shaka of Carthage - An excellent analysis of what I was looking for along with a solution.

Of course, their are various levels of AI that could be opened up to player Mods - CivIII, HOI, GalCiv and NWN all allow for various degrees of player modifications through the use of text files stored in directories outside of the main program directories.

Simple examples might be:

\Axis1

GResearchBan (Jets,Subs,Armor)

IResearchBan (Subs,AntiTank)

This would tell the German AI not to research Jets,Subs or Armor and the Italian AI not to research Subs or AntiTank.

Naturally you can raise it to a higher level by accounting for technological developments by your opponenet thru IF/Else statements.

Another simple option might be:

\Axis1

IMovementBan(FINLAND,RUSSIA,NORWAY,SWEDEN)

IGarrisonReq(Rome:1939;Bari:AlliedLandRange(4))

GReclaimTech(All: Warsaw(Allies); All: Paris(Allies))

This tells the AI that Italian units may not enter Finland, Russia, Norway or Sweden - assuming that the hexes that make up these countries have been predefined.

It also tells that Italian AI that Rome must be garrisoned from 1939 onwards, and Bari when an allied land unit is within 4 hexes of Bari.

The third line tells the German AI to reclaim all tech chits if Warsaw or Paris is lost to the allies.

[ November 20, 2003, 03:27 AM: Message edited by: Edwin P. ]

Link to comment
Share on other sites

Edwin P

The use of "text files stored outside of the main program directories" is nothing more than changing the data values that the existing AI subroutines are operating on.

And putting Boolean logic in opens up the options somewhat, but don't forget that Mr H is way beyond Boolean logic. He's using fuzzy logic.

When I said open up the AI code, I meant make it actual open source, where the progamming code could be changed. In effect, if you have players who know what they are doing, you could rewrite the entire set of subroutines (or object code if you will).

Thats the only way you are going to get the diversity you want. You could write a AI routine doing all the things you described, while someone else could take a totally different approach.

In accounting terms, its like having a choice of how to cost your inventory... either Standard Cost, LIFO, FIFO or Average Cost. You pick the one you want to use.

As a final example, though I believe you already understand what I'm saying... lets take your GRECLAIM subroutine.

While you have it written to reclaim 100% of the tech chits, based on the ALL input parameter (and meeting the second operand condition), I would "tweak" it slightly, so that even with a ALL input parameter, I would randomly determine a percentage chance to determine if each tech chit should be reclaimed.

That would allow the GRECLAIM subroutine to produce variable results, even with identical input parameters.

[ November 20, 2003, 04:26 AM: Message edited by: Shaka of Carthage ]

Link to comment
Share on other sites

Shaka of Carthage, many thanks for your insightful analysis of what I was attempting to convey. I always enjoy reading your responses.

In my sample I was trying to keep things simple. As you stated in an ideal situation you would use fuzzy logic that selected a response from a set of acceptable solutions and the logic (percentages) would change based on the intelligence level of the AI (and perhaps on a history of the Human player's strategy stored in an array). The response to an Axis Naval strategy might be Routine 1:30%, Routine 2:30% or Routine 3:40%.

I suggested external text files as this is how I have seen other software handle this. To date I have not yet seen any gaming software that allows modders to access the actual program AI files themselves (although I would prefer this).

Even if HC decides not to allow access to the actual AI code perhaps he will consider incorporating code that allows users to tweak/modify specific aspects of an AI routine.

(I always wanted to add routines that moved the French corps in Beruit to Cairo after Italy enters the war, had Germany DOW Denmark on Turn 1, and told the UK carrier near Egypt to set sail for the Atlantic ASAP).

[ November 20, 2003, 05:50 AM: Message edited by: Edwin P. ]

Link to comment
Share on other sites

×
×
  • Create New...