• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • bot speed

    Discussion in 'Hearthbuddy Forum' started by crampleg, Dec 28, 2014.

    1. crampleg

      crampleg Member

      Joined:
      Mar 19, 2014
      Messages:
      133
      Likes Received:
      1
      Trophy Points:
      16
      any way to make bot faster? its so so slow seems so bottish.
       
    2. Pown3d4tion

      Pown3d4tion New Member

      Joined:
      Dec 24, 2014
      Messages:
      21
      Likes Received:
      0
      Trophy Points:
      0
      Staff members tell me have no options for the speed, sorry.
       
    3. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      Right now, the answer is no.

      There's a lot of technical reasons why this is the case, but we'll be looking into ways to speed up play, without causing any issues.

      An easy example to understand the core issue:
      1. You play Madder Bomber.
      2. The client has a short period of time when it doesn't accept new actions as the animation begins.
      3. If you run AI before it finishes, the AI will make a decision based on unfinished client state (e.g., not all mobs are damaged / killed). This results in invalid actions.
      4. You can "queue" an action during the animation, but once again, the AI won't know about it, resulting in invalid actions being generated as a result.

      The only way around this right now is to "wait" for actions to finish, and for the client to receive all data from the server.

      When you play the game, you're able to look at visual cues to get an idea of what's going on and you subconsciously know when to play. The bot instead can't make such a distinction, so all the data it processes it has to be able to figure out when or when it needs to wait longer before trying to do something. If the AI were to generate a series of commands to perform, it would help speed up actions, but it also makes logic a lot more complex, since once again, any action that results in randomness cannot be predicted, and would force a re-evaluate (slowing down the bot in a similar way it is now).
       
    4. UmpaBumpa

      UmpaBumpa New Member

      Joined:
      Dec 27, 2014
      Messages:
      14
      Likes Received:
      0
      Trophy Points:
      0
      @pushedx
      But say your boardstate is clean of enemy minions, and you only have to go face. Wouldn't it be possible to try and increase the queing up abit?

      Since right now, a large board might mean you miss one or 2 attacks, and you do actions from the getgo until the rope is burned out.. It looks.. iffy.
       
    5. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      That's part of the complexity itself; handling the specific cases where it's 'ok' to queue more actions (or not).

      Consider you have 3 minions on the board are are attacking face. Each minion has Blessing of Wisdom on it. The process of attacking with each minion is different due to the card draw effect, as opposed to minions without that enchantment. Let's say you attack with the first one, there's a period of time where you can't interact with the other cards and have to wait. Now, we're coding around various client behaviors, which is not a good thing, due to latency and other changes that take place on the server we don't even know about (the game gets updated a lot, we just don't get client patches for it since they are server sided changes).

      It's going to be an interesting problem to solve, but it's unfortunately one we just can't just change a few things and have better results. Since we're using input actions to play the game now, we are more limited in terms of when we're able to interact with cards and do things as opposed to just calling client functions which would ignore that (which is a bad thing to begin with anyways).

      If it were possible to create the order of cards in our decks, and play against an AI where we could specify the deck and card order, life would be a lot easier since then we could test and tune things on a consistent basis as opposed to trying to replicate actions randomly in games.
       
    6. UmpaBumpa

      UmpaBumpa New Member

      Joined:
      Dec 27, 2014
      Messages:
      14
      Likes Received:
      0
      Trophy Points:
      0
      I really enjoy that you are very through in your explinations pushedx. Thank you for taking time to answer our questions :)
      Makes it less frustating :p
       

    Share This Page