Part of Project That Most Interested
Me
Overall bot framework. A bot preferably
should have multiple levels of AI, of which an impression is listed here
(bottom up):
- motoric AI, deals with low level
"how to" (how to jump, shoot, aim, swim, travel broken ground); actually
not very intelligent but contains a lot of fixed rules. Use of (dynamic)
waypoints fits here for a large part.
- behavioral AI, deals with low
& individual level "when to" (when to jump, shoot, hide, reload, run,
dive. More intelligent. Most current Quake bots do not have much more than
this.
- tactical AI, deals with a mediaum
& individual level "why to" (decide to pursuit player, to attack player,
to patrol, to provide cover fire, to hunt for stuff)
- strategic AI, deals with high
level "why" (attack enemy, attack enemy base, defend own base, locate key,
enemy behavior prediction, etc.) - tactical coordinated AI, deals with
a team of bots at medium level (leap frog (while one bot provides support
fire, other moves forward), do not reload all at once, allocating different
targets to different bots, inter bot coordination)
- strategic coordinated AI, deals
with high level team "why" (split/join teams, have one team attack while
other team defends, enemy team behavior prediction, etc.).
In the Navy SEALs sQuad bots, I implemented
some of these layers and had them communicate using states and events.
(above concept formulated in 5 minutes
- do not consider it very solid).
In addition, when multiple bots are
active at the same time, the bot implementation better have shared "sensor
code"; it is more efficient to have one process check all incoming rockets
for all bots instead of every bot doing this for him/herself.
Other interests focus on team combat
tactics (like in the Navy SEALs sQuad bot).
Reason for Joining
While implementing the Navy SEALs
sQuad bots I've learned a lot about coordinating intelligent bots; however,
I've spent most of my time tuning movement code instead of implementing
AI. QuakeII and a lot of enthousiastic team members definitely will improve
the situation (and resulting product).