AI Quality
by angryprogrammer - Friday, March 31, 2017, 12:33:17

Hi,

As a Hearthstone player (as probably are some competitors are too) I am baffled with AI decision making quality. Lets take gamestate #4021851

 

{
    "player": {
        "hand": [
            {
                "attack": 3,
                "charge": false,
                "crystals_cost": 2,
                "forgetful": false,
                "freezing": false,
                "hp": 2,
                "id": 201,
                "name": "Bloodfen Raptor",
                "poisonous": false,
                "shield": false,
                "stealth": false,
                "taunt": false,
                "type": "MINION",
                "windfury": false
            }
        ],
        "played_cards": [
            {
                "attack": 6,
                "can_attack": true,
                "charge": false,
                "crystals_cost": 6,
                "forgetful": false,
                "freezing": false,
                "frozen": false,
                "hp_current": 1,
                "hp_max": 7,
                "id": 1038,
                "name": "Boulderfist Ogre",
                "poisonous": false,
                "shield": false,
                "stealth": false,
                "taunt": false,
                "windfury": false
            },
            {
                "attack": 5,
                "can_attack": true,
                "charge": false,
                "crystals_cost": 7,
                "forgetful": false,
                "freezing": false,
                "frozen": false,
                "hp_current": 4,
                "hp_max": 6,
                "id": 2137,
                "name": "Guardian of Kings",
                "poisonous": false,
                "shield": false,
                "stealth": false,
                "taunt": false,
                "windfury": false
            }
        ],
        "hero": {
            "armor": 0,
            "attack": 0,
            "hero_card_id": 981,
            "hp": 9,
            "special_skill_used": false,
            "weapon_durability": 2
        },
        "stats": {
            "crystals_all": 10,
            "crystals_current": 6,
            "deck_count": 16,
            "fatigue_damage": 0,
            "hand_count": 1,
            "played_minions_count": 2,
            "spell_dmg_bonus": 0
        }
    },
    "opponent": {
        "played_cards": [
            {
                "attack": 6,
                "can_attack": true,
                "charge": false,
                "crystals_cost": 6,
                "forgetful": false,
                "freezing": false,
                "frozen": false,
                "hp_current": 3,
                "hp_max": 7,
                "id": 1038,
                "name": "Boulderfist Ogre",
                "poisonous": false,
                "shield": false,
                "stealth": false,
                "taunt": false,
                "windfury": false
            },
            {
                "attack": 4,
                "can_attack": true,
                "charge": false,
                "crystals_cost": 5,
                "forgetful": false,
                "freezing": false,
                "frozen": false,
                "hp_current": 3,
                "hp_max": 5,
                "id": 316,
                "name": "Darkscale Healer",
                "poisonous": false,
                "shield": false,
                "stealth": false,
                "taunt": false,
                "windfury": false
            },
            {
                "attack": 7,
                "can_attack": true,
                "charge": false,
                "crystals_cost": 2,
                "forgetful": false,
                "freezing": false,
                "frozen": false,
                "hp_current": 6,
                "hp_max": 6,
                "id": 1155,
                "name": "Acidic Swamp Ooze",
                "poisonous": false,
                "shield": false,
                "stealth": false,
                "taunt": false,
                "windfury": false
            }
        ],
        "hero": {
            "armor": 0,
            "attack": 0,
            "hero_card_id": 612,
            "hp": 7,
            "special_skill_used": false,
            "weapon_durability": 0
        },
        "stats": {
            "crystals_all": 10,
            "crystals_current": 1,
            "deck_count": 14,
            "fatigue_damage": 0,
            "hand_count": 3,
            "played_minions_count": 3,
            "spell_dmg_bonus": 0
        }
    },
    "turn": 11,
    "decision": 0,
    "gamestate_id": 4021851
}

 

From what we can see - correct me if I'm wrong - we are in control (as a player) and have two minions that can attack, are not frozen or forgetufl ("Boulderfist Ogre","Guardian of Kings") with combined attack of 11. Opponent with 7HP left has no minions with Taunt, which means I can attack face, killing him in my trun, ie. 

* Boulderfist Ogre attack face - Opponent left with 1HP
* Guardian of Kings attack face - Opponent left with negative HP - dead

Desision is 0. That means I lost. GGWP AI1.

Fixing this hould be the first step in helping AI to Play ;)

(Also, we have weapon durability 2 with no attack. Does this mean we already attacked?)

Re: AI Quality
by janek - Friday, March 31, 2017, 15:12:54

Dear Antoni,

thank you for your post!

The situation you identified might be related to a possible bug in the implementation of the 'Acidic Swamp Ooze' card in the Hearthstone simulator which was used to generate the data. We will investigate this to confirm it and to eventually check the severity of this problem in the data.

Andrzej

Re: AI Quality
by angryprogrammer - Saturday, April 01, 2017, 09:40:27

Thanks!

Could you also check why there is no player status regarding attack with weapon? (There is one regarding skill usage, but nothing about attack from what I can see)

Re: AI Quality
by ryazanoff - Monday, April 03, 2017, 06:07:23

Could you please clarify what the problem exactly is? Acidic Swamp Ooze never attacks face, or it has less attack, or it has 'taunt' (in hs Ooze has no taunt) or somewhat else ... It is very important question

And I wonder if the same problem persist in the test data

Also I found some cases where there is no Ooze, but letal damage is missed (gamestate_id 3931182)

Thanks in advance!

Re: AI Quality
by angryprogrammer - Monday, April 03, 2017, 19:37:57

Vasily, form what I understand Andrzej was talking abount players weapon (0 Attack but 2 Durability). Missing lethal seems to be inherent to the AI algorithm used to generate games and outcomes (instead of using some real world player generated data - which I can understand can be hard to obtain, as I don't recall any kind of "replay" system be present in Hearthstone).

Re: AI Quality
by janek - Monday, April 03, 2017, 22:37:00

Dear Antoni,

you are right, I was referring to the weapon. The fact that player's attack was 0 and weapon durability was 2 is quite common in the data and there is nothing wrong in this - it is just a way in which the simulator denotes that a player already attacked this turn. What worried me was that the weapon was not destroyed even though the Acidic Swamp Ooze card was played. However, the code seems to be OK. We did not detect any problem.

You are also correct regarding the missed opportunity of doing lethal damage - the AI bots which were used to generate the data were plain stupid :-) A part of our experiment is that want to utilize a prediction model trained on data from 'weaker' games to create better AI bots. New bots will be used to generate 'better' games and the whole process will repeat... We are curious how far can we go with this - it is very likely that in the second edition of this challenge the bots will be much smarter ;-)

Anyway, thanks for the help in answering questions!

Best regards,
Andrzej