Register Register

Author Topic: Double Blind Bot Challenge  (Read 637 times)

BATTLEMASTER

  • Captain
  • *
  • Posts: 1965
  • Lightning From Another Zip Code
Double Blind Bot Challenge
« on: 27 July 2022, 11:20:09 »
I ask this as not being an expert in anything AI - what is the challenge with getting the bot to play double-blind rules properly?  I've read that when it doesn't have the /seeall privilege, that it doesn't really do anything but sit in its deployment zone and barely move.  Has some kind of seek-and-destroy routine for the AI been considered?
BATTLEMASTER
Trombone Player, Lego Enthusiast, Engineer
Clan Smoke Jaguar, Delta Galaxy ("The Cloud Rangers"), 4th Jaguar Dragoons
"You better stand back, I'm not sure how loud this thing can get!"
If you like Lego, you'll like my Lego battlemech projects!

pokefan548

  • Lieutenant
  • *
  • Posts: 1496
  • The Barracuda knows where it is, hence the -2 mod.
    • Poke's Aerospace Academy (Discord Server)
Re: Double Blind Bot Challenge
« Reply #1 on: 27 July 2022, 11:35:30 »
Some ideas have been discussed, this is a band-aid fix until Princess is improved to play better in double-blind.

The issue it initiative and object permanence. Princess was designed to fight against a known quantity selecting the statistically best course of action according to the parameters she's been set to use. She simply has no real instructions for what to do when there is no target to attack. Likewise, once the enemy "disappears", she lacks the object permanence and behaviors to intuit that she should probably investigate the area surrounding your last known location, and instead defaults back to her regular "no targets" behavior (or lack thereof).

There are some very easy solutions if you just want her to wander around until she spots something, but as I gather the team's bot-whisperers want to take the time to find a good solution that doesn't cause Princess to make a fool of herself searching for enemies in the middle of a lava flow.
« Last Edit: 27 July 2022, 11:37:22 by pokefan548 »
Poke's Aerospace Academy
The best place to learn and discuss AeroTech.


BattleTech players: Throwing the baby out with the bathwater since 1984!
"Poke is just a figment of our imagination really." - Siam
"Poke isn't a real person, he's just an algorithm programmed by CGL to try and get people to try the aerospace rules." - Phantasm
"I want to plant the meat eating trees and the meat growing trees on the same planet! Watch that plant on plant violence!" - Sawtooth

johnboyjjb

  • Sergeant
  • *
  • Posts: 136
Re: Double Blind Bot Challenge
« Reply #2 on: 27 July 2022, 13:55:14 »
It would require making the priority target list sortable, but if a hex could be added to the target list for investigation then each sensor ping or enemy spotting could be added to the target list along with actively visible enemies.

I play double blind with the bot quite frequently and besides a few quirks it works fine. A simple work around is a medium speed unarmed unit tasked with getting from one edge of the board to the other can cause sensor blips for Princess to pursue. Sometimes it takes more than one.

Hammer

  • Numerorum Malleo
  • Global Moderator
  • Major
  • *
  • Posts: 3686
    • MegaMek Website
MegaMek Projects Wiki
Bug Trackers
MegaMek Tracker
MekHQ Tracker
MegaMekLab Tracker
New Units and RAT's aren't added until after the 2 month release moratorium is passed.


BATTLEMASTER

  • Captain
  • *
  • Posts: 1965
  • Lightning From Another Zip Code
Re: Double Blind Bot Challenge
« Reply #4 on: 27 July 2022, 18:06:05 »
https://bg.battletech.com/forums/megamek-games/coming-soon-to-megamek/msg1848928/#msg1848928

My question was more about the challenge of making an alternative to basically letting the AI cheat :)

I play double blind with the bot quite frequently and besides a few quirks it works fine. A simple work around is a medium speed unarmed unit tasked with getting from one edge of the board to the other can cause sensor blips for Princess to pursue. Sometimes it takes more than one.

I didn't think of the target hex thing before since that kind of accomplishes what I was getting at.  Good idea  :thumbsup:

Some ideas have been discussed, this is a band-aid fix until Princess is improved to play better in double-blind.

The issue it initiative and object permanence. Princess was designed to fight against a known quantity selecting the statistically best course of action according to the parameters she's been set to use. She simply has no real instructions for what to do when there is no target to attack. Likewise, once the enemy "disappears", she lacks the object permanence and behaviors to intuit that she should probably investigate the area surrounding your last known location, and instead defaults back to her regular "no targets" behavior (or lack thereof).

There are some very easy solutions if you just want her to wander around until she spots something, but as I gather the team's bot-whisperers want to take the time to find a good solution that doesn't cause Princess to make a fool of herself searching for enemies in the middle of a lava flow.

I appreciate the explanation - thanks :)
BATTLEMASTER
Trombone Player, Lego Enthusiast, Engineer
Clan Smoke Jaguar, Delta Galaxy ("The Cloud Rangers"), 4th Jaguar Dragoons
"You better stand back, I'm not sure how loud this thing can get!"
If you like Lego, you'll like my Lego battlemech projects!

dgorsman

  • Captain
  • *
  • Posts: 1814
Re: Double Blind Bot Challenge
« Reply #5 on: 28 July 2022, 13:09:24 »
So this gets into the whole 'strategic behavior' thing which Princess would need to exhibit, not just when it has no targets to consider but also when on large maps where it's not within firing range.  If a given unit can fire at a target (non-artillery), or be fired upon, then it exhibits 'tactical behavior', or what it does now: maneuver for best shots, take least damage, and so on.  When neither of those conditions are met then it has to change how it calculates it's moves.  For example:

Identify and secure strategically important sites:
This gets tricky, but it's basically identifying unique and tactically useful parts of the map.  For example, if the map has few high points then holding those would be beneficial.  Same with road intersections if the whole map is urban, clusters of buildings if the whole map is not urban, clusters of trees on flat open maps, clearings and roads on heavily forested maps, bridges which are actually useful (weight vs CF) and so on.  These conditions are typically static throughout the entire game, and could be checked once at game start for randomly generated maps and potentially manually flagged by map designers at creation.  Units are moved to either take a location from the enemy, or seize it first and wait for the enemy to attack.

Reinforce/rescue units in combat:
Self explanatory, but difficult to create a useful algorithm.  For example, consider a 15 hex radius from the unit and count up all enemy and friendly BV within that area.  If the enemy to friendly BV ratio is less than 1:1, then no help required; if it's 1:1 to 1.5:1, then it needs reinforcements.  If a unit is out BV'd by more than 2:1 then it's used as a decoy.  Higher BV units that are moderately damaged are flagged as needing rescuing and assigned higher priority.

Scout:
Move a unit to be just within visual range of sensor contacts, as well as parts of the map outside of visual range/blocked LOS with a priority for the strategically important sites noted above.  Note this only applies to double blind/sensor contact rules, as full LOS doesn't require scouting as such, except for trying to find hidden units.  That *might* be identified by a discrepancy in known active enemy BV vs what is on the map.  There might also be some role in detecting minefields, although checking for that in every game might be a bit much so a flag set when the player pre-positions mines or has units with FASCAM type munitions.




Division of labor may be an actual practical use for the 'role' (scout, skirmisher, juggernaut, etc.) label applied to units.  Scouts and strikers would be allocated to scouting; juggernauts would be moved to seize strategically important sites, skirmishers would be moved to reinforce others in combat, and so on.

There would also be a role for Princess settings, such as damage avoidance and/or aggression used to determine how far out scout runs would run.
« Last Edit: 28 July 2022, 13:23:09 by dgorsman »
Think about it.  It's what we do.
- The Society

Thunder LRMs: the gift that keeps on giving.  They're the glitter of the BattleTech universe.

johnboyjjb

  • Sergeant
  • *
  • Posts: 136
Re: Double Blind Bot Challenge
« Reply #6 on: 28 July 2022, 16:21:18 »
This makes me wonder if 4 princesses on the same team are as effective as 1 princess with the same four units. This could be both combat efficiency or computing efficiency.

The ability to condition princess to follow force withdrawal rules as a team instead of individual units would be great. It is great. You just have to kick the bots and replace them with the new behavior. And pay enough attention to institute the new behavior at the right time.

The other thing about having separate princesses is that one could start to assign individual tactical behaviors.
This unit will start seeking opponents in the general direction of the opposition.
This unit will stand it's ground and defend a circle around a specified hex.

pfarland

  • Captain
  • *
  • Posts: 1769
  • Star Captain Farland - 'Forever Faithful'
Re: Double Blind Bot Challenge
« Reply #7 on: 28 July 2022, 18:36:26 »
This makes me wonder if 4 princesses on the same team are as effective as 1 princess with the same four units. This could be both combat efficiency or computing efficiency.

The ability to condition princess to follow force withdrawal rules as a team instead of individual units would be great. It is great. You just have to kick the bots and replace them with the new behavior. And pay enough attention to institute the new behavior at the right time.

The other thing about having separate princesses is that one could start to assign individual tactical behaviors.
This unit will start seeking opponents in the general direction of the opposition.
This unit will stand it's ground and defend a circle around a specified hex.

There are already some Preprogramed Princess settings that can be assigned to different roles. It does seem to make the team better, especially in larger battles. Frankly though, it's not that big of a tweak, you get way more out of giving her a few more units. Really, it's more trouble than it's worth unless you have performance issues and have to break her units down anyway.

You want to know what's really funny? I'm the one that created those settings and now I find them more trouble than they're worth, lol.

PS The reason there is no Ambusher Behavior? Not only could I never figure out how to get her to find a spot and wait, but there are so few of them that it wasn't worth the effort to try.
Rule number 4 of product design*: "The concept of 'Intended Use' never survives initial contact with the end user." - Feign

"It should come to no surprise that this forum loves solving problems with war crimes. " - SteelRaven

Stormforge

  • Warrant Officer
  • *
  • Posts: 780
Re: Double Blind Bot Challenge
« Reply #8 on: 29 July 2022, 07:41:14 »
One work around that I have used for Double Blind games is to set the bot to Auto flee to the opposite edge. When the bot makes contact I kick that bot, and load a new one to handle the fighting.
If the enemy is in range most likely so are you.

johnboyjjb

  • Sergeant
  • *
  • Posts: 136
Re: Double Blind Bot Challenge
« Reply #9 on: 29 July 2022, 11:53:49 »
An RFE might be great if we could come up with conditions to automatically kick a bot. Such as first contact, or team BV losses, or team BV to Player team ratio threshold reached. Many of these would be similar to victory condition checks only instead of ending the match it just kicks the bot, leaves a note on what threshold caused the bot to get kicked, and then the player could reconfigure the bot to change behavior accordingly.

dgorsman

  • Captain
  • *
  • Posts: 1814
Re: Double Blind Bot Challenge
« Reply #10 on: 29 July 2022, 14:05:49 »
An RFE might be great if we could come up with conditions to automatically kick a bot. Such as first contact, or team BV losses, or team BV to Player team ratio threshold reached. Many of these would be similar to victory condition checks only instead of ending the match it just kicks the bot, leaves a note on what threshold caused the bot to get kicked, and then the player could reconfigure the bot to change behavior accordingly.

There's a few in there, dealing with state-driven Princess settings e.g. if BV/number of units drops to X%; or it's turn Y; or its turn Y + random number; then the Princess settings are swapped for another set.
Think about it.  It's what we do.
- The Society

Thunder LRMs: the gift that keeps on giving.  They're the glitter of the BattleTech universe.

Simon Landmine

  • Lieutenant
  • *
  • Posts: 1199
  • Enthusiastic mapmaker
Re: Double Blind Bot Challenge
« Reply #11 on: 29 July 2022, 15:07:25 »
There's already an unimplemented RFE for an optional 'advance to contact' behaviour, so that when no opponents are sighted, Princess moves away from the deployment zone at walking speed (subject to herding configuration). When opponents are sighted, then Princess behaves as normal per configuration.
"That's Lieutenant Faceplant to you, Corporal!"

Things that I have learnt through clicking too fast on 'Move Done' on MegaMek: Double-check the CF of the building before jumping onto it, check artillery arrival times before standing in the neighbouring hex, and don't run across your own minefield.

"Hmm, I wonder if I can turn this into a MM map."

 

Register