Strategy AI - Collaborative agents

Started by
3 comments, last by Tom 23 years, 4 months ago
Heyo. I''ve got an idea running through my mind that could use some feedback from other developers. It''s not a particularly new prospect, and I''ve seen it in use before. However, this will be my first attempt at making collaborative agents. My project is a tactical combat sim, a "Heavy Gear-meets-Font Mission" if you will. An agent in my game is simply a weighted state machine (hereafter refered to as WSM) that is capable of making its own decisions based on virtual tactical input. In other words, each unit on the battlefield can act independently. On the other hand, I want units to act collaboratively. I''m not talking about scripted attack formations as in Half-life, but rather totally autonomous agents that are capable of sharing tactical data and assigning actions to individual units. Certainly this sounds like a good idea, but getting it to work is the problem. Deciding how to strike from multiple sides is one of the biggest issues, and finding nearby cover has always been a problem for me. Anyway, input is much appreciated. I can elaborate on my plans further if you like.

GDNet+. It's only $5 a month. You know you want it.

Advertisement
well I would go for a hierarchy. At the top is the big AI, he has his resources (units and other stuff) and his goals (kill enemies A B and C, oppose enemy plans). The main AI, like each AI below it has a set of plans it can use to accomplish its goals. It chooses one based on the resources and goals that it has control over. Many of the plans would require the creation of lesser AIs, which would have a subset of the resources and goals of the creator AI. They could in turn make their own sub AIs, depending on the plan that they come up with.

So you might have an AI with a hundred men, it decides to send one off on a scouting mission, and a dozen on a raid, while reserving most of the men for mindless assualt. So the main AI creates a subAI for each of the two groups and it controls the scout directly. The raiders have a subAI with a goal set by the main AI: destroy the enemy''s camp. It doesn''t concern itself with the main enemy army because the mainAI didn''t tell it to. The giant horde AI has its own subAI. Right now it has the command to stay in camp, but later the main AI will tell it to charge and destroy the enemy. At that point it might further subdivide itself, or it might not, depending on what plan the subAI chooses.
I think you should encode some general purpose axioms about teamwork into each of your agents. In other words, the agents need knowledge about working in a team.

For example:
------------
If one agent discovers information that would be useful to other agents, it becomes a top-level goal to communicate that info to the other agents.

Most agents should realize they are to follow their leader (fleet and pack formation).

If any agent learns it is pointless to continue with a mission, that agent should persuade the other agents to believe this.


_______________________________
"To understand the horse you'll find that you're going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses
ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.
A heirarchy of agents. Now that''s something I hadn''t considered. Very great idea, although it will take some serious thought before I can implement such a thing. However, I think this is exactly what I''m looking for to emulate group tactics.

The top-level of the AI heirarchy does not have to be embodied. It can simply be a conceptual group mind that controls all group-related activities within a group. Obviously, each AI will need its own decision-making ability, but on the whole units will follow orders for the benefit of every unit on their team.

Bishop: You''ve exemplified this individuality concept by proposing that each agent has the ability to recognize something as being important to the group. It would then relay this information to the top-level agent (which could simply mean adding it to the weighted states).

Also, following the leader is actually something I hadn''t considered. I guess the idea is easy to skip over since it''s so basic. Thanks for reminding me.

One of my big problems is determining (generally) how enemy forces are laid across the battlefield. For example, if enemy units are clumped into groups, then surround tactics (along with artillery strikes) would serve best. If the enemy is spread out, then guerilla warfare becomes the best option.

Any ideas?

GDNet+. It's only $5 a month. You know you want it.

To determine the enemy''s distribution, think in terms of what resources are available to your AI. If satellite pictures are available, for example, it can periodically get an accurate idea of everything it needs to know.

Assuming this is not the case, it would generally send out scouts or reconnaissance missions, who would see uncamouflaged enemy units and somehow (depending on technology available) get this information back to base. The enemy will of course try to stop them when they''re spotted (jamming radio, if available, and killing or capturing agents). Larger groups of scouts will be easier to spot, but can split up if necessary.

I''d say that each unit (whether one or many soldiers), although controlled by the main AI, should have autonomy when not in direct communication with it. Games where the enemy appears psychic can be extremely irritating!

This topic is closed to new replies.

Advertisement