Home & News

Discussion Board

Conceptual Overview

CVS & Project Page

Screenshots

Downloads

Contact

[ leiavoia.net ]
PROJECT COMPLETION:
36%
CURRENT VERSION:
v0.2 "Switchboard"

NEXT VERSION:
v0.3 "Zombie"
[due ~September 2004]


DESIGN DOCUMENTATION

Artificial Intelligence Concepts

Layered AI

Since i [leiavoia] like to think of my objects and classes in programming as "little people that do things", the AI is formatted the same way. There are 3 basic levels of AI in AXIS: The top-level axis AI, known as "General", the pod-level AI known as "Captain", and the final shape-level AI known as "Grunt" (or possibly "Soldier" if you have some problem with Grunt). Note that the General is the AI the computer players take over. If you are playing, then you take the place of General. General is only for the computer controlled axes.

The commands and actions cascade from tier to tier. Therefore, there is a kind of inheritance system in the design. For instance, if the overall top-level AI "General" decides it needs to start playing a more defensive game, it will "give that command" to pods under it's command (all of them). It may do a variety of things from there: build more defense oriented pod structeres, request more defensive shapes on generation (if we decide on such a feature), and instruct pods that attack-heavy tactics are not to be favored over defense (and hopefully the pod will take that into account).

Inter-Level Communication

Communication means that each layer of AI needs some way to collect data from the tiers below. The Grunts tell the Captains how they are doing, and the Captains tell the General how they are doing. This way the General can make changes to the overall global strategies and pass the commands back down the chain. Communication is basically a way to get feedback about how the shape/pod/axis is playing and how it could improve given the situation.

For example: Two pods clash in battle. Tetra1 from Pod A attacks Block1 from Pod B. Block1 sustains heavy damage. Why? Is it because Block had bad defense or because Tetra1 had high attack? Or maybe it was just a lucky break. Did Tetra1 use an attack special? Maybe that was it! Then at this point two things happen:

  1. Tetra1 reports "ATTACK-SUCCESS" to the Captain (pod-level AI). Tetra1 used ForceBooster attack special which increased its attack power by 50% the previous turn. The Pod A Captain decides that using ForceBooster is a good tactic with Tetras vs. Blocks, so orders the Tetra1 shape to repeat the attack procedure for even more damage.
  2. Block1 reports "DEFENSE-FAILURE" to its Pod B Captain. The Captain tries to analyze the situation and decides that somebody in the pod with defensive specials (if any) needs to either help out Block1 with a special or defend it directly. Torus3 is chosen by the Captain to help since it has a very high Opacity (evade) and an Opacity special called "Invisibility" which increases Opacity for Block1. Now Block1 is harder to hit and won't get bashed quite so much next time

After the battle, it turns out the Pod B (the one that got attacked) lost. Why? The Captain from Pod A decides it was from a superior attack strength and decent acuity (vision - counters opacity). The Captain then recommends this tactic to the General, who in turn, tries to assemble more Tetrahedron-heavy attack+acuity pods for any future pods meant for attack missions.

IntelliFudge

Each shape has an intelligence rating. Intel in AXIS is a kind of "fudge factor" that your shapes and pods are going to have to work with. Even the General has an intelligence rating (automatically configured and somewhat random when you select the play difficulty upon game start). The basic concept is this: "Do i know why things are happening?" Each AI level asks itself. With the ideal AI model designed, every shape/pod/axis knows. This, hopefully, is how the AI will be programmed. "Intelligence" is just there to screw it all up on purpose :-) For instance: If a pod wins, but the "team leader" (the shape responsible for the pod's decisions) is an idiot, it may send no report back to General as to why it won, or even worse, send the wrong report ("Our uniforms really impressed them. We'z some really stylin' cool cats daddy-o").

But lets say the team leader is wise (or got lucky and guessed right) and sends the right report. Then the General gets it and has to make some executive decisions based on that. If the report said the pod gained victory by solid defensive power, the General, who is a fool in this case, orders more attack pods to be constructed and less pods be given defensive missions overall.

In short, the more intel an AI has at that level, the better chance it has to send the right reports up and down the ladder. Stupid shapes will mess everything up, choose poor opponants to attack in combat and on the map, cause combat to go downhill, cause pod missions to fail, and cause axes to make poor strategic decisions. Smart AIs work like a well oiled machine with no kinks in the system (lack of "intelligence" == kinks)

Further AI concepts will be posted in other sections.