Battle test of an A.I. system

By EagleScoutof007, in Star Wars: Armada Battle Reports

I've mentioned before in another post. I've been tinkering with an idea of an A.I. system in Armada inspired by Hero's of the Atari cluster in X-wing. So I played a game tonight to test out my ideas so far. Here's both lists, no upgrades on the ships:

Rebel (me):

Nebulon-b support refit

Squadrons:

1 X-wing

1 Y-wing

Empire (A.I.)

Arquitens-class Light Cruiser

Squadrons:

1 Tie Advanced

1 Tie Fighter

A.I. ship dials have marks on top of each command. I roll a D6 three times to figure out it's commands without looking at the dial by turning the dial left-right-left or right-left-right.

So here's how it turned out. Both sides had 74 points. Rolled for lowest number. A.I. rolled lowest so it went first. I rolled a D4 to set a speed and rolled a 1. My nebulon-b started with speed 1 as well. As both ships got closer they made pot shots. Squadrons got tired up. I used a D6 to select to yaw on the. Eventually both ships got locked nose to nose bumping while the squadrons duked out leaving to Y-wing to survive. Turn 4 A.I. shot a red and black dice at the front and bumped again while moving blowing up the nebulon-b in the process. A.I. wins again 2-0. I'm still playing around with this idea just a little bit at a time. I like what I have done to set the ship commands, but now I need a system for the the tokens (command and defense) and a good one for squadrons. Any input or suggestions are welcome. Thanks for reading!

I appreciate you making the effort at this. I cannot imagine it is easy.

That said, I think your AI ship is a little too random. I'd suggest reducing AI ships to Command 1 if you intend for them to have D6 commands. This allows you to feed more data into rolls at the start of each subsequent turn. And that would make your AI less slightly more predictable at the cost of infinitely more effective when it comes to planning the first several turns.

8 hours ago, thecactusman17 said:

I appreciate you making the effort at this. I cannot imagine it is easy.

That said, I think your AI ship is a little too random. I'd suggest reducing AI ships to Command 1 if you intend for them to have D6 commands. This allows you to feed more data into rolls at the start of each subsequent turn. And that would make your AI less slightly more predictable at the cost of infinitely more effective when it comes to planning the first several turns.

Thanks. I'm still experimenting putting ideas from paper to the board. As I mentioned, I like where Im at with setting its commands though I might try just using 1 dial like you suggested. I'll play around with it. The problem I have is figuring out is how it would move. Using dice this time was too random sence the ship zigged zagged and never used its side arcs. Maybe start with its side arcs facing me and base its movement on which I closest to.

17 minutes ago, EagleScoutof007 said:

The problem I have is figuring out is how it would move. Using dice this time was too random sence the ship zigged zagged and never used its side arcs. Maybe start with its side arcs facing me and base its movement on which I closest to.

Yeah, a few others have tried sketching out an AI system, and this is the point we always get stuck on. Somebody did the math and figured there are hundreds or thousands of possibilities for maneuvers once you start factoring in nav commands and speed changes.

Not to discourage you or say it can't be done, by any means. I personally would be super excited if you could come up with an elegant solution, because I think I could get my wife to play HotAC-style co-op Armada with me...

1 minute ago, Ardaedhel said:

Yeah, a few others have tried sketching out an AI system, and this is the point we always get stuck on. Somebody did the math and figured there are hundreds or thousands of possibilities for maneuvers once you start factoring in nav commands and speed changes.

I didn't really do the math , I did the Pseudocode...

My brain still hurts :D

22 minutes ago, Ardaedhel said:

Yeah, a few others have tried sketching out an AI system, and this is the point we always get stuck on. Somebody did the math and figured there are hundreds or thousands of possibilities for maneuvers once you start factoring in nav commands and speed changes.

Not to discourage you or say it can't be done, by any means. I personally would be super excited if you could come up with an elegant solution, because I think I could get my wife to play HotAC-style co-op Armada with me...

I wasn't even aware others have tried. If anything, I want to make the shp movement as simple as I can. Example would be say the AI(Arquitens) has an enemy ship to the left it'll want to keep it in it's best arc which is the side arc so it would go straight. A VSD may turn towards the ship.

I opened this to the community to get more ideas and feedback from other people. ?

As I presented at the time - what is your automation goal... Do you want to present a system that is entirely hands off for the opponent, or do you expect to end with a system that still requires thought on the other end.

For example, HotAC attempts to be a completely automated system. You reference the chart to where the enemy is, you roll the dice, you perform the chosen maneuver - there's no real thought input into it, and you don't have to make a best-choice decision for what is effectively your "Enemy".

That's fairly simple to set up for X-Wing because of the lack of maneuver definitions - you only have so many maneuvers you can pull with the templates involved.

Whereas if you try to apply that automation level in Armada, it just... it doesn't work. When you figure that each speed has a potential click rating of: " - / L1 / L2 / R1 / R2 " for *each* speed of a multiple speed system, and the amount of potential clicks can be influenced by both current speed and temporary speed additions - a complete Hands-off Automation system is not one taht can be achieved on a Tabletop... It may be possible with a robust set of decision making systems inherent to a computer program, but on the tabletop - that decision making system is going to be your player, and your player is inherently biased, no matter how hard they try, because Shadow-Play is very difficult.

Its best to aim for a set of guidelines that do attempt to define the system, without trying to guess too much... But its a hell of a system to define.

Start with some basics. An dby basics, look at the basic ship concepts... The ISD, VSD and INT all have the same essential maneuver base goal for the Imperial Player - Maintain Front Arc to Target . .. So you have to look at potential trajetory and turn appropriately, but of course, not have it just overcorrect all the time.

Thanks for the feed back and suggestions. It may be a difficult concept to work out. I'll keep working with it. ?

Something else I'd like to ask. Anyone have a thought on what I could do for an AI squadron(basic tie or X-wing for starters)?

43 minutes ago, EagleScoutof007 said:

Something else I'd like to ask. Anyone have a thought on what I could do for an AI squadron(basic tie or X-wing for starters)?

First off I believe in the K.I.S.S. principle, that said...
My general thought is it will depend on what the squadron's general "primary purpose" is.

E.G. An A-Wing squadron wants to kill enemy squadrons. So I would say the squadron is required to move to/engage the nearest possible enemy squadron. Perhaps giving a priority to engaging enemy bombers then fighters then ships.

Now something with bomber is a little more difficult in my mind. For something like an X Wing, maybe there is a way to weigh engaging enemy squadrons versus engaging capital ships?

That said, keep rolling.
I would love an effective AI system since I'm struggling to find anyone to play against out here. :mellow:

The single biggest piece of advice I can give you is that there's no reason why the AI would have to follow the same rules as players. This is one of the fundamental things HoAC gets right: simplify its rules.

For example: why would AI ships need command dials? The two purposes for those are introducing a response lag (forcing you to predict, rather than react to, your opponent's actions) and keeping hidden information. Neither of those are applicable to an AI ship. (You could simply assume that AI ships never execute commands. Or, conversely, that they execute whatever command they need to at any given time... if their movement "logic" demands they change speed, they simply do. If there are unactivated squadrons within activation range, they get activated.)

It's still a hell of a job to get this right, but it gets much more manageable if you unshackle yourself from rules that only make your life difficult. If you try to develop an AI which tries to replace a human in a 400 vs 400 point game... you're gonna have a bad time.

8 hours ago, Shadoq said:

First off I believe in the K.I.S.S. principle, that said...
My general thought is it will depend on what the squadron's general "primary purpose" is.

E.G. An A-Wing squadron wants to kill enemy squadrons. So I would say the squadron is required to move to/engage the nearest possible enemy squadron. Perhaps giving a priority to engaging enemy bombers then fighters then ships.

Now something with bomber is a little more difficult in my mind. For something like an X Wing, maybe there is a way to weigh engaging enemy squadrons versus engaging capital ships?

That said, keep rolling.
I would love an effective AI system since I'm struggling to find anyone to play against out here. :mellow:

that's something I had in mind. I've thought to put their keywords into account as well as their armament to figure out their roles. I figured it would be good to look back on the core set and start from there with squadrons

1 hour ago, DiabloAzul said:

The single biggest piece of advice I can give you is that there's no reason why the AI would have to follow the same rules as players. This is one of the fundamental things HoAC gets right: simplify its rules.

For example: why would AI ships need command dials? The two purposes for those are introducing a response lag (forcing you to predict, rather than react to, your opponent's actions) and keeping hidden information. Neither of those are applicable to an AI ship. (You could simply assume that AI ships never execute commands. Or, conversely, that they execute whatever command they need to at any given time... if their movement "logic" demands they change speed, they simply do. If there are unactivated squadrons within activation range, they get activated.)

It's still a hell of a job to get this right, but it gets much more manageable if you unshackle yourself from rules that only make your life difficult. If you try to develop an AI which tries to replace a human in a 400 vs 400 point game... you're gonna have a bad time.

I like the thought of this! Right now I've had ideas written down and just recently started play testing them. Thought comes to mind, how to tell if the activated? Set a command dial to what their logic says? Game wise for pionts I'm starting small and gradully growing bigger. Once Ive got something down, a 400 vs 400 AI might interesting.

1 minute ago, EagleScoutof007 said:

Thought comes to mind, how to tell if the activated? Set a command dial to what their logic says?

That's just a binary state, so you could simply use some form of activation marker, e.g. an Imperial or Rebel faction token.

But if you wanted to make the logic a bit more involved, you could certainly use a dial to mark a ship's priority for the turn. E.g. if you activate a ship with a Squadron dial, it will try to move towards (and activate) friendly squadrons. If it has a CF dial, it will focus on chasing down enemy ships. If it has a Navigate dial, it will go towards a strategic waypoint, maybe an objective marker. That sort of thing.

Building logic for a classic, straight-up objective-based 400v400 match is simply not going to work. But you can definitely do the reverse, and build scenarios around the AI logic.

I am also a fan of K.I.S.S (Keep It Simple, Stupid. A phrase I tell myself often). Simple Objectives are a really good idea. Maybe get in and out while your enemy tries to kill you, or a straight death match seem like good places to start.

On squadrons, no need to get fancy. I would think Wave I generics would be best. Maybe try pairing groups (like a bomber and escort) to hound a specific ship.

Assigning ships their own goal, such as destroying another ship or ramming a ship (there by disrupting movement) could work. Even just giving one ship a personal goal could keep it authentic, threatening and more easily guided.

Back to HotAC, a lot its success and simplicity comes from a lack of opponent upgrades. They don't become upgraded until later in the missions, by which time you have figured out how to decipher the maneuver systems. I suspect upgrades weren't added until after some playtesting.

When it comes to squadrons, I like using generics(maybe get a friend and I both to field generics in a standard game). I've thought about using the generic wave 1 squadrons to start out with and eventually work up to the newer ones. Playing HotAC inspired me to play around with an AI in Armada. So far with my playtesting, I've only had one ship each, some squadrons and no upgrades. Last match was only pot shots at each other and 3 squads died. Adding more ships and squads might get interesting. I've had thoughts of enemy ships and squads coming in waves over time. I like the idea of adding goals to a ship and might do the same with squads. To think of it I kind have something like that in place. Keeping it simple is what I want do with this AI coming here and getting thoughts from has helped so thank you everyone! Keep it up!! ??

I did another play test today. I had some fun with it too. I played rebel against an Imperial AI. Each side had multiple ships with one in hyperspace. I had a station on a 3x3 mat with 3 rocks placed around it. 4 objective tokens placed on the station. The goal was the rebels needed to take as many tokens off the station and run as waves of Imperials came in. The catch though, the VCX-100 had to land on the station and pull/push the tokens off so ships can pick them up by moving within distance 1. I haven't really count up points on either side, but there was a lot of chaos. Imperials definitely more points used. After the smoke cleared two rebel ships got away with one token each. Both sides took heavy losses on squadrons though.

I think another poster mentioned using a computer program to simulate AI ship movements as the best solution. I agree, as I did some brainstorming/testing a while ago on this very topic and found that at computer sim could solve a multitude of problems like ship movement and it could also remove some of the tedious stuff from the game as well.

After brainstorming I came up with a solution that utilizes unity3d and the vuforia Augmented Reality plugin. Imagine holding your phone, tablet or webcam over the play area; your camera relays the AI of the users position and responds accordingly. O n-screen information tells you where to move the AI markers, (surprised as well but after testing I learned that object recognition works better with flat index cards with bold symbols instead of ships) etc.

It's an ambitious project fore sure, I did some scoping and found that i'd need to recreate the game in unity3D and I'm not talking about 3D assets and fancy bells and whistles just the rule set, game loop and scaled map for movement. Once that's done it's AI and I learned that you really can't hack ship AI in this game (or rather hacking it would limit the AI to random use of skills and movement), . Although I have some unity AI classes from school that would give me a head start, AI would require just as much effort as the above and more to get it to a laughable level of competency. The scoping exercise showed me how big of a project this could potentially be for a single person so I have not committed to working it but I'd really like to. However I have had a lot of fun learning about Vuforia and computer vision branch of natural language. I really wish I had more time or someone was paying me to get this done because I feel this is a nice opportunity and it would add a lot of value to the product and give people endless play.