Jump to content
XCOMUFO & Xenocide

Some Thoughts...


Guest mikeo

Recommended Posts

Hi, my name's Mike, and I'll be responsible for developing the AI engine. Sorry that I hadn't been too actively participating in discussions that are related to the XCOM remake project. Anyhow, here are some of my thoughts with regard to how the engine should control the enemy's soldiers (in a battlefield):

 

Part 1:

The heuristics function (that controls the movement of soldiers) should include the following parameters (there could be more..):

1) Terrain

2) morale & bravery

3) weather (night, day, rain?)

4) weapon(s)

 

Since the engine is a rule based engine, one can partition these parameters into sets based on their characteristics, such as, for weapons, a possible partition could be:

Weight_a = {small, medium, large}

Firepower_b = {light, medium, Heavy}

Accuracy_c = {poor, average, good}

Spread_d = {small, medium, large}

Instead of creating rules for each of the sets, one can categorize weapons in the game to reduce the number of rules in the Fuzzy Knowledge Base (FKB).

 

Part 2:

There will be a set of possible strategies that can be used by a soldier or a team of soldiers to confront the human player. What I can think of right now are: passive ambushes , back attack, and frontal assault. With the rule consequences from part 1, the engine can derive the strategies that should be used depending on the firing rate of each individual rules. However, certain information will have to be provided to the engine to devide the attack:

1) Terrain (Time units (TU) required and cover offered by the terrain)

2) **line of sight for both sides (this assumes complete knowledge of the battlefield)

3) coverage area of soldiers so that they can support each other in case of emergency.

 

note: ** is optional

 

One can imagine that the battlefield is now being represented as surfaces colored by shades computed based on the aforementioned factors. At this stage, a simple path finding algorithm can be used to find a route to carry out the attack or defensive strategy. Lastly, genetic algorithm (GA) can be encoded to insinuate some variations in the strategy as well. For instance, GA can be used to create noise in the surfaces (since human soldiers can not always evaluate these parameters so accurately in real life) such that the computer can sometimes make mistakes in evaluation the environment.

 

Part 3: The adaptive part

To make the game more interesting, I guess the adaptive capability of the engine is very important. This part should be done after each battle, so that the FKB can be evaluated and modified. Genetic algorithms should be a good approach to alter the FKB and evaluate its performance based on the previous battle as a training/test set.

Link to comment
Share on other sites

I forgot to add a few things:

 

The FKB can still be large. I can use a layered architecture to reduce the rules needed in each of the steps, i.e. the engine can switch to a different set of rules in the FKB depending on where it's at.

 

Lastly, please let me know if you have any ideas, comments or questions. Thanks :)

Link to comment
Share on other sites

Looks promising for coordinated alien assaults on human targets approaching from a fixed position (terror missions, base attacks, defending alien bases once the humans have entered, etc.)

 

However, keep in mind that many of the alien missions are either defensive in nature (aliens just trying to keep a perimeter while they repair their ship after being shot down), or possibly reactive (killing civilians or being shot down while being caught surprise by XCOM). In these situations, only the supersmart or coordinated aliens can formulate an effective counter strategy in time.

 

This gives the engine a unique chance to actually differentiate the alien leaders, commanders, and such by influencing their AI. Shot down or isolated alien grunts will tend to operate in confused, individualistic and erratic fashions, while other aliens, able to communicate and receive orders from the squad leaders/commanders inside the ship, sometimes communicating by the alien telepathy powers, will be able to launch a more coordinated assault.

 

 

I'm not certain that this is within your means, or if it's even related at this point, but I just thought it was a kinda cool vision.

 

Great to have you aboard :)

Link to comment
Share on other sites

Hi Shadowhawk, thanks for your input. What you pointed out is certainly true, in the sense that higher ranking officers (for the aliens etc) should have a significant boost on individual soldier's morale which might lead to better performance. An alternative is to alter the size of the rule base based on the ranking of the officers in the battlefield. The additional elements being considered in larger rule set can contribute to smarter behaviors in higher ranked officers.

 

As for the nature of the missions, they can all being represented by different rule sets, namely, the alien soldiers are more concerned with the goals of their missions than to eliminate xcom agents in abduction missions and etc.. However, sometimes the objectives of the mission can change when certain parameters in the heuristics favor the elimination of xcom agents first. My guess is, one can use a single rule to determine such behavior by checking the ratio of alien -vs- human firepower at the start of a battle, this is just an example since anyone might be able to think of a better comparision ratio than this.. :)

 

My previous posting outlines the high level design of the AI engine, however, I cannot say it's final until various specs. of the game is known, let alone the rule sets. Probably there should be an AI gui that allows people to edit the rule sets, introduce new variables to be considered by the engine, alter the strategies used by the computer, and adjust the adaptive capability of the engine.

Link to comment
Share on other sites

Part 1:

The heuristics function (that controls the movement of soldiers) should include the following parameters (there could be more..):

1) Terrain

2) morale & bravery

3) weather (night, day, rain?)

4) weapon(s)

 

You will have all that information for use... but keep in mind that you will have free movement instead of block movement like in the original.

 

Instead of creating rules for each of the sets, one can categorize weapons in the game to reduce the number of rules in the Fuzzy Knowledge Base (FKB).

 

Your idea is use Fuzzy Logic??? Using values between 0 and 1 is enough???

 

Part 2:

2) **line of sight for both sides (this assumes complete knowledge of the battlefield)

Better if we can get a solution without AI cheating... But it is far faster to implement with complete knowledge...

 

Greetings

Red Knight

Link to comment
Share on other sites

Hi Redknight.

 

Yeah, the values between 0 to 1 will be enough :) Besides, most of the time we won't be using continuous values in the rule sets... Guess I didn't describe things too clearly so let me give you an example:

 

(according to my previous message) we can use 3 sets to describe a weapon, namely, accuracy, firepower and spread. So as an example, a rifle can be categorized as: normal accuracy, low firepower and very small splash damage.

 

The membership set normal accuracy can be defined as a triangular set such that:

 

U_a(x) = (x - L1)/ (L2 - L1) for 5% :P

Link to comment
Share on other sites

Hi Redknight.

 

Yeah, the values between 0 to 1 will be enough :) Besides, most of the time we won't be using continuous values in the rule sets... Guess I didn't describe things too clearly so let me give you an example:

 

(according to my previous message) we can use 3 sets to describe a weapon, namely, accuracy, firepower and spread. So as an example, a rifle can be categorized as: normal accuracy, low firepower and very small splash damage.

 

The membership set normal accuracy can be defined as a triangular set such that:

 

U_a(x) = (x - L1)/ (L2 - L1) for 5% :P

Hi mikeo, take a look in the source code that its on CVS, you can do it online with the CVS Browser if you dont have time to setup CVS yet...

 

in http://cvs.sourceforge.net/cgi-bin/viewcvs....viewcvs-markup

 

So take a look in the IAmmunitionClip and IWeapon class if you need something else.... For instance you should need the accuracy modifier of the weapon, etc... so tell me and will add it, or add them on your own...

 

Greetings

Red Knight

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...