Magic and Empire

Announcement

Collapse
No announcement yet.

AI Discussion

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • AI Discussion

    Originally posted by David (Admin) View Post
    AI is also playing Mana Sink poorly, using that and Sever the Source in the same turn.
    Surely it's too soon to look at rectifying specifics of the AI, but here are some basics I'd incorporate into an AI if I were to make one. Not always the best choice, but should put up a decent fight.


    - Place Leaders and Blast allies to the right, Lycanthrope to the left.

    - Place Savage allies in front of safe allies, i.e. Elusive Hob vs. a flier, Tiamat vs. Stealthy or low attack ground ally.

    - Place Evading allies in a safe place, i.e. opposite a flier, but only if the exchange of attacks is in your favour.

    - Place Manticore facing minions with Evade, or otherwise difficult to kill.

    - Use Doom Knight and Wicker Knight on Burst minions.

    - Use Hydra as a blocker, but only if the opponent doesn't one-shot kill it.

    - Only summon Inspiring allies if there are other allies already on the field.
    - Try to Inspire Savage and Speed allies.

    - Only use Nemain on a high attack minion, preferrably veiled.

    - Only use Stun allies like Trusted Vizier on minions if they don't Evade and there is no other way.

    - Don't use more than one Snare ally per turn.
    - Don't use a Snare ally if the champion is already incapacitated.
    - Similar for Stun allies.

    - Don't use Gorgon Sister on Savage minions unless attacks are getting out of hand.

    - Don't just block minions with very high attack, an unexpected Infiltrate could kill you.

    I don't have the fancier 6-star allies, so I didn't consider them specifically.


    Priority of targets to destroy based on threat posed:
    1. Void Mage
    2. Channel minions if there are more than one on the board.
    3. Unicorn
    4. Lycanthrope (unless you play Zeacon, then collect Blood for Betrayal)
    5. Abomination
    6. Lavamancer until it reaches ~1k attack, then switch to protecting it (may need extended circumstantial script)
    7. Blast allies
    From here on out place ally only in front of a minion if the minion's attack is larger than the ally's, else rather attack the champion directly.
    8. Mystic minions (but not more important than high attack minions, let every 10 Mystic count for ~100 attack)
    9. Divine minions (as above, let every point of Divine count for ~100 attack)

    The rest based on attack (considering Dangerous, Savage, Speed)

    Minions with very little attack and no abilities should be left alone if possible.


    Chab knows all this better than I do. If it's a matter of him not having time I can do something similar for champions and spells if you need it.
    Last edited by Mogman; 07-21-2017, 05:13 PM.

  • #2
    The next version of the game that you see will include some good improvements to AI. Many of the items you list are on Jeff's list now, but I will share this with him.

    Comment


    • #3
      I would move blast allies up on that list & move void mage down. Void mage just because there is little point in having the card if it's the # 1 kill card. As a player I like being able to shut down decks with that card.

      Comment


      • #4
        I'm the AI guy, so I can talk. Thanks for the feedback!

        Originally posted by Mogman View Post
        - Place Leaders and Blast allies to the right, Lycanthrope to the left.
        Certainly the AI is already placing Leaders (except for Scorpion Leader, which is a bug) and Blast allies to the right, not to mention Burst, but I'm curious why Lycanthrope should be on the left. With its rapidly declining health, that makes it more likely to get killed on a turn by Burst before it can attack. My vote for the best ally to put on the left is Molosser!

        Originally posted by Mogman View Post
        - Don't use Gorgon Sister on Savage minions unless attacks are getting out of hand.
        By the way, rules-wise, most of us think it doesn't make sense to have Petrify/Stun not stun all the attacks of a minion.

        Originally posted by Mogman View Post
        Priority of targets to destroy based on threat posed:
        1. Void Mage
        2. Channel minions if there are more than one on the board.
        3. Unicorn
        4. Lycanthrope (unless you play Zeacon, then collect Blood for Betrayal)
        5. Abomination
        6. Lavamancer until it reaches ~1k attack, then switch to protecting it (may need extended circumstantial script)
        7. Blast allies
        From here on out place ally only in front of a minion if the minion's attack is larger than the ally's, else rather attack the champion directly.
        8. Mystic minions (but not more important than high attack minions, let every 10 Mystic count for ~100 attack)
        9. Divine minions (as above, let every point of Divine count for ~100 attack)

        The rest based on attack (considering Dangerous, Savage, Speed)
        Wow, interesting to see another version of a threats priority list! I wrote one myself for the AI, although none of it is implemented yet. Here is what I had written so we can compare. I haven't gotten any feedback on this, so it's not going to be any more accurate than anybody else's. The first thing I notice is that I forgot Channel minions. Definitely if your Champion is being Sapped that's a big problem too. I realized I was missing Lavamancer, but that's a hard one to figure out.

        LEVEL 1
        • Morph (Lycanthrope)
        • Surge minion that can attack (Set)
        • Savage (Great Wyrm, Tornado, Chimera, Tiamat, Beast Mistress +++, Gemini Warrior, Elusive Hob +++, Cernunnos)
        LEVEL 2
        • Restore All (Great Elk)
        • Mystic 5 (Unicorn)
        • Sink All minion that can hit (Void Mage)
        LEVEL 3
        • Spawn on beginning of turn (Brood Mother, Necromancer, Oakfist Lantern, Summoner)
        • Blast minion that can hit (Inferno Dragon, Circe, Battlemage, Shock Mage, White Mage)
        • Mystic 3 (Venus +, The Sphinx ++)
        • Divine 3 (Venus +)
        • Divine 2 (Venus, Thor +)
        LEVEL 4
        • Leader that can hit and with someone to lead (Jupiter, Summoner, Circe, Tiamat, Commander, Imperator, Oakfist Lantern +++, Gemini Warrior, Shadow Magister, Freya, Lionheart Knight, Devoted Maiden)
        • Dangerous that can hit Champion
        • Mystic 2 (The Sphinx, Venus)
        LEVEL 5
        • Enemy minion that my minion isn't hitting due to Evade/Protect
        • Divine (Prince of Rags, Lunar Priestess, Tribal Elder, Pegasus, Golden Knight, Thor, Baldur, Exalted One, Imperator, Nile Princess)
        • Curse (Hex Master)
        • Cure (Exalted One, Vestal Matron, Sanctified Relic +, High Inquisitor +++)
        • Harm (Ballista, Heavy Ballista)
        LEVEL 6
        • Mystic (Satyr Bard, Mysterious Artifact, Enchantress, Grove Nymph, Griffon, Lunar Priestess, Circe, Jade Knight, The Prophet ++, Legacy Tree +++, Willow Wisp +++, Lady of the Mist +++, April Nymph +, Vernal Nymph +++)
        • Delve that can hit
        P.S. I also had the idea that a minion might have multiple threats on this list, so I would use its greatest threat, and move the threat level by 1 for each additional threat. For example, Venus + could be level 2 (Mystic 3 and Divine 3). Good examples are Leaders, for example Circe (with Blast), or Summoner or Oakfist Lantern +++ (with Spawn).

        Comment


        • #5
          Lycan is on the left so an Elk to the right of it can heal it after it morphed.
          And yes, Molosser should be on the left too. First ally summoned gets the spot

          I'm unsure of what you mean. Stun does stun all the attacks, as far as I know. And Petrify removes all attacks at time of entry.
          Savage is mostly a six star attribute and should be treated as such, meaning it shouldn't be permanently disabled without recourse. Besides, I really like the mechanic as is, enforcing the idea of an 'unstoppable' ally.


          I mentioned leaving minions with little attack alive; let's call this threat level 0.
          An 'intelligent' AI should use your own allies against you***, that's why classifying some minions as level 0 is so important. It's often advantageous to leave minions like Prince of Rags alive and summon a flier like Tiamat or Harpy opposite.
          *** (No, I'm not talking about Dominate here, that shouldn't be used by the AI at all.)

          - Channel minions on their own are not much of a threat, but as soon as there are two on the board one needs to realise that a cycle deck is being assembled and stop it from being setup or face a certain loss.

          - Abomination is only really a threat with certain champions, more annoying than anything else. Maybe threat level 4 alongside Dangerous?

          - Here's an easy way to handle Lavamancer: If I have Nightmare on hand then use it and give Lavamancer threat level 0, else give it the same threat level as Set as both their attacks double every turn. Fun fact: Set is not in the Wiki.

          - Depending on your deck, Void Mage can handlock you completely with no recourse whatsoever, so I stand by him being the biggest threat of all unless you build every deck with him in mind and all but 4 cards are 50 mana or less and all spells are readily playable. And he costs only 50 mana, so can potentially be out first turn with Majus.

          - Spawn: Brood Mother is a prime target to immobilise (Stun/Nightmare...). Place ground allies opposite the low attack Hatchlings and cast Rampage or Infiltrate on them. Same goes for Oakfist, though you are limited to Infiltrate due to Evade.

          - Ballistae are the ultimate level 0 allies that need to be left alone so one can place Tiamat or something similar in front of it, though the attack value needs to be checked in case it got Inspired.

          - I'd completely ignore Delve as posing a threat.

          I like your idea of combining multiple threat levels into one higher one, that's why I figured to assign Mystic, Divine, etc. an attack value that can then combine with the actual attack into a 'threat attack'. Either system should work out to the same result.


          An easy first check for the AI is to go against Thor with a basic Snare deck; it should win 100% of the time.
          David: That's why I farm Thor; you just set the autopilot and wait for the win.

          Comment


          • #6
            I like Jeff's list of priories, especially that the combine. But I do have a few suggestions. First I would switch the priority between sink all & blast. A well designed deck should have cards in that cost 50 or less mana. Not just because of the void mage & Darlok but just so you can do something in your first few rounds. One of void mages primary uses is for a new player to handle a high powered deck. Since it already has slow it's not a huge threat. Blast on the other hand can really take apart your ability to make a deck so it seems like the AI should respond to it sooner.

            Also the other allies that have sink should be in the list. The ones that only take 5 or 10 aren't that big a deal, but sink 30 will really slow your roll. Also for each of the levels I would put a damage range. That way a creature with an attack of 1,000 or 100 in the new version will still be acted on appropriately.

            I'm also going to back up Mogman on saying that I like how petrify only slows down savage bug stun will stop it. Also that I shouldn't use dominate & that Mana Sink should be a sink all card instead of you get nothing. In it's current for even Non Player opponents like Thor shouldnn't get it.

            Comment


            • #7
              Excluding Majus, a 60 mana ally can be played just as fast as a 50 mana ally in the early rounds.

              Here one has to differentiate between PvP and PvE. It's perfectly alright for a PvE deck to have 5 allies that cost 55 mana, whereas a PvP deck has to limit itself to 4 cards total (i.e. 2 allies over 50 mana and 2 spells targetting allies). It is this limitation that prevents me from playing PvP, it's just no fun with such restrictions.

              As far as the AI's estimation of a threat is concerned, Slow doesn't figure into the equation at all. Void Mage poses the same threat with or without Slow once it's on the board, it just gives me one turn to react to it with a 55+ mana ally. Though Slow would feature heavily in the AI deciding which card to play.


              We will have to disagree on Blast. As long as the Blast value is added to the attack in determining the threat level I think it is adequately covered.

              Otherwise I fully agree with Griffon's assessment of other allies with Sink.

              I figured damage is handled somewhere in the routine as Blue Hag is obviously less of a threat than Cyclops or Heavy Ballista. Not to mention a level 1 versus a level 80 ally.
              As an aside, all attack values should be handled relative to the champion's current health.

              Comment


              • #8
                I respectfully have to disagree on whether or not slow makes a difference on void mage. Without slow by time you can act you would have already lost mana & it would be a much stronger card. Mind you I'm not saying void mage shouldn't be a important card to take out, just that it seems like it would be less important than a blast ally. A blast ally will take out cards you already have out as well as make it hard for newly played cards to make a difference. One of the good things about the old AI system was it recognized how dangerous blast was.

                Another tweak to the AI that would help would be if it recognized when allies that have strike will be able to kill a card on the field instead of being placed in an open slot. No point in wasting a phoenix's strike when it can be used after all.

                Comment


                • #9
                  Of course Slow makes Void Mage overall a weaker card, noone is disputing that, and it features heavily into determining which card to play next, but not at all when determining the threat a card that is already on the board poses.

                  The AI's determination of threat level is a reactionary response to a minion summoned and is only useful to determine the threat the minion will pose on the next turn; on entry abilities like Drive, Inspire, Slow, or Strike don't enter into the equation.

                  Comment


                  • #10
                    Here's a question for the developers. Since the AI now uses Darlok's dominate, will the AI also use the counter measures as soon as possible if one of your minions is dominated?

                    Comment


                    • #11
                      Originally posted by Mogman View Post
                      I figured damage is handled somewhere in the routine as Blue Hag is obviously less of a threat than Cyclops or Heavy Ballista. Not to mention a level 1 versus a level 80 ally.
                      This is a large part of what it's doing now. It has an evaluation that takes into account evolution, level, rarity, and how damaged the minion is for example, and of course whether it is disabled in some way. Incorporating that sanely into a threat evaluation is a whole other issue.

                      In my conception, a key example where the prioritization would be used would be if it's the AI's move and the AI has a sorcery spell or blood ability that would kill or disable any opponent minion, but wants to cast it on the minion that currently poses the biggest threat. In the case of Void Mage, the Void Mage will be attacking the following turn no matter what, so, as Mogman said, Slow doesn't factor in.

                      Harm: It makes sense what you said about Ballista. If it were really considered a threat that a minion was attacking your Champion, then it should apply to all Stealth/Flight minions currently attacking your Champion.

                      Delve: OK, I can take it out.

                      Sink: Yes, Sink should be in there as well. Another oversight. I'll post an updated version of my list at some point. Others can feel free to post their own!

                      Sink All: So we have one vote for moving Void Mage up a rank and one vote for moving him down a rank. What this means is it's situational and this kind of ranking is just a rule-of-thumb. However, logic like "unless ... all but 4 cards are 50 mana or less and all spells are readily playable" can be easily incorporated into a ranking system, so that a card/ability could occupy both ranks. Having "Nightmare on hand" when evaluating Lavamancer is another example.

                      The most eye-opening aspect of this discussion for me is the focus on the meta:
                      "A well designed deck should have cards..."
                      "Blast on the other hand can really take apart your ability to make a deck so..."
                      "It's perfectly alright for a PvE deck to have 5 allies that cost 55 mana, whereas..."
                      whereas right now the AI just considers it may be playing against any old mishmash of unknown cards. If my random non-Morlich opponent plays Lavamancer and I have no Burst minions or damage-all type spells, I might just put a flier opposing it and be happy with the probabilities. But if I consider that my opponent designed his deck to include Lavamancer, then he might have more in mind than simply using it to oppose my existing minions, and suddenly ignoring Lavamancer becomes a more dangerous proposition.

                      Jeff

                      Comment


                      • #12
                        Originally posted by Mogman View Post
                        Here one has to differentiate between PvP and PvE. It's perfectly alright for a PvE deck to have 5 allies that cost 55 mana, whereas a PvP deck has to limit itself to 4 cards total (i.e. 2 allies over 50 mana and 2 spells targetting allies). It is this limitation that prevents me from playing PvP, it's just no fun with such restrictions.
                        I'm sorry, I am not familiar with PVP to much what does this mean? Since PVP will be prioritized over guilds it is something I may have to/want to get into.

                        Comment


                        • #13
                          Jumbled thoughts:

                          Virtually all decks have synergy incorporated into them, even if it's only something universal like Rampage.
                          A deck with Lycan will often also have Elk (unless the champion is Faith) or some other means of survival like Cover of Fog, and Righteous Wrath to optimise usage of the high attack.
                          In that same vein one can safely assume that any deck with Lavamancer also incorporates ally removal like Berzerk or Dark Sacrifice, to be used at the right time.

                          Synergy, not only between cards themselves but also between cards and abilities, is why I think it is important to let the AI know which Blood abilities to use while building the deck.
                          Example Faith: a deck with fragile, high damage allies will benefit most from Holy Ward, whereas a deck consisting of Conditioning, Infuse, and Speed allies will get the most use out of Conviction. Light's Blessing should rarely be used at all.

                          Dawn's Eclipse would be a prime example of an ability that shouldn't be used by the AI. In my opinion it generally is a waste of 5 Blood that could be better used for Empower.


                          The most basic and important question here is how intelligent do you want the AI to be? Do you want to mimic a human opponent completely?
                          Another player is the ultimate opponent, making an equal AI would be the Turing test for games.

                          But if the AI gets too intelligent then the lines between PvE and PvP blur and the same deck restrictions apply to both.
                          5 allies of 55 mana are only perfectly alright because hitherto BR's AI has been mediocre.
                          Personally I think it's fun to find and exploit weaknesses in an AI.

                          So far BloodRealm has mostly been a challenge in endurance, be it Arena or events.
                          If the AI gets so good that every battle has to be done manually to ensure a reasonable success rate then fatigue will set in quickly.


                          The only way for a new player to finish most events is to use Darlok's Dominate.
                          If the AI uses extensive anti-Dominate tactics then the experience for new players won't be encouraging.




                          Valis:
                          Most people think PvP is where the most fun is to be had because the challenge is the greatest. A human opponent is unpredictable.
                          Personally I like predictability and think it's more fun to play against a well-scripted AI.

                          If you haven't tried it yet you definitely should. Others will be happy to help.
                          The BR server is still up, but won't be for long...

                          Comment


                          • #14
                            Honestly, my first goal is to make the AI not do stupid things. I need the AI to get to the point where it plays "reasonably". This will take some time, because I'm not working on this full-time, but it's achievable. The idea is that it's not fun to play against a brain-dead opponent.

                            Getting it to challenge the highest caliber of opponent like you guys would require adding look-ahead, which it doesn't have now. Consider that some future version 2.

                            Comment


                            • #15
                              I quit playing BloodRealm when I learned that the live PvP was not going to be featured or a priority for Magic and Empire in the near future. I have kept tabs on the game.. but really this is so disheartening to have any hope of seeing PvP come back when I see a developer trying to make the AI better and talking about the "highest caliber" opponent... the highest caliber opponent is a live person.

                              Why AI is a priority over live PvP is beyond me. Lots of CCG's do this. The most successful ones. Talk about community... PvP brings that interaction.

                              I like the core concept of this game. Gameplay is great. Feel it has a ton of potential. And it is going to waste in my opinion.

                              Comment

                              Working...
                              X