Page 1 of 1

The "i give up" code

PostPosted: 04 Jun 2016, 09:15
by Althuna
Someone once told me that someone had put some code into the game which made the AI give up if it was getting too owned. But sometimes I have a huge creature like 1500/1500 and the AI gives up, but he could still have won. In this case that big creature is all I had, but the AI had about 20 strong tokens and he had Elspeth's ultimate which makes all of his permanents indestructible. So although I had a huge creature, each time I attacked he could just block it with a little token and the token wouldn't even die. If he kept attacking he could have won, but the AI gave up. It stopped even playing lands.

I think this code should be removed, if possible?

Re: The "i give up" code

PostPosted: 04 Jun 2016, 11:27
by Korath
It's not something deliberate that we can switch on or off. Believe me, if it were, I would have.

Some of the problem is that the evaluation function for the game's general non-combat AI doesn't deal well with very high amounts of life, or with creatures with very high power or toughness. This is better understood, and much more commonly seen, for life - the AI values each point of life less and less then higher the total gets, so that (for example) it gives a higher priority to casting a Stream of Life on itself when it's about to die than when it has 20 life. At high amounts of life, though, the amount of damage it can do to you by attacking doesn't seem "worth" the disadvantage it gets for having its creatures become tapped. If I recall correctly, it also doesn't put any value at all on indestructibility, or any of the other non-original-MicroProse abilities that don't affect blockability, in the Manalink version.

The other part, and the one I think would be mostly at fault in the game you describe, is that we really don't understand the combat AI at all. There's some entry points that we think we sort of understand, but generally not very well (see here, for example, to show how imperfect that understanding is), and I'm pretty sure it overwrites unrelated data if it tries to figure out what to do when either player has more than 16 creatures. Disassembly of the related functions and data is so opaque, though, that anything we did to tweak things would be more likely to make it worse than better.

Re: The "i give up" code

PostPosted: 04 Jun 2016, 13:17
by Althuna
Interesting thanks.