• Visit Rebornbuddy
  • Improving the AI

    Discussion in 'Community Developer Forum' started by EmoKlaus, Jul 5, 2015.

    1. EmoKlaus

      EmoKlaus New Member

      Joined:
      Jun 22, 2015
      Messages:
      57
      Likes Received:
      0
      Trophy Points:
      0
      Hi, i just tried out HearthBuddy and recognized, that the Silverfish AI plays much worse than the SmartCC-AI that I use to know from the "out of business" HearthCrawler.

      The feature I'm missing the most is the "avoid aoe spells"-feature, that SmartCC had.
      HearthBuddy shouldn't spam your own board with minions, when the Mage is about to reach 7 Mana Crystals or when the Paladin can concecrate.

      Is there even anyone, who continues developing the HearthBuddy AI ?
       
    2. paperc07

      paperc07 Member

      Joined:
      Dec 16, 2011
      Messages:
      829
      Likes Received:
      9
      Trophy Points:
      18
      Yeah I have been wondering the same thing I can't even get passed rank 15 anymore
       
    3. EmoKlaus

      EmoKlaus New Member

      Joined:
      Jun 22, 2015
      Messages:
      57
      Likes Received:
      0
      Trophy Points:
      0
      I'm just aking cause all the old HearthCrawler Users downloaded Update files for the SmartCC AI every week.

      Cant the logic from that files be transferred into HearthBuddy's Silverfish AI ?

      But I also think that the SmartCC Coder was also a good Hearthstone Player, while the Silverfish Coder is...... lets say...... as good as his AI.
       
    4. paperc07

      paperc07 Member

      Joined:
      Dec 16, 2011
      Messages:
      829
      Likes Received:
      9
      Trophy Points:
      18
      How do you even use hearthcrawler anymore? or are they using smartccbot?
       
    5. EmoKlaus

      EmoKlaus New Member

      Joined:
      Jun 22, 2015
      Messages:
      57
      Likes Received:
      0
      Trophy Points:
      0
      I'm not using anything except HB.
      I just remembered the old days with HearthCrawler befor I got my 3-month-ban ^^
       
    6. iargue

      iargue Member

      Joined:
      Mar 20, 2012
      Messages:
      125
      Likes Received:
      2
      Trophy Points:
      18
      Unfortunately development seems to have stalled currently.

      Tom has promised that the Dev section would become more active, and better information on allowing users to program things would be implemented. However, so far that is not the case and it has been over a month. Hopefully soon they will provide us with the ability to improve the bot and make things smarter.

      One thing you can do is post a log of what the bot did wrong (Aka, put 4 minions down when the mage was at 6 crystals) and let them know (thats the current method of reporting poor decisions)
       
    7. paperc07

      paperc07 Member

      Joined:
      Dec 16, 2011
      Messages:
      829
      Likes Received:
      9
      Trophy Points:
      18
      Yeah shit's fucked, such a shame to, because it's becoming a bigger and better game as time goes on. I honestly think after that massive ban wave (suspensions for 3 months) that destroyed the community and shit. You don't even really see or hear from obtmaker anymore and he used to have his own thread and people would report and he would update it all the time and now you report something or write a post and your lucky if anyone even replies.
       
    8. EmoKlaus

      EmoKlaus New Member

      Joined:
      Jun 22, 2015
      Messages:
      57
      Likes Received:
      0
      Trophy Points:
      0
      I am really considering to buy the SmartCC Bot from Wirmate.
      It costs 30€ but its Plays are brilliant.

      Since Blizzard redesigned the seasonal Rewards (now u want to achieve at least Rank 5 per month) it is better to use a Bot that actually can make high level plays instead of having trouble at Rank 15 already.....
       
    9. EmoKlaus

      EmoKlaus New Member

      Joined:
      Jun 22, 2015
      Messages:
      57
      Likes Received:
      0
      Trophy Points:
      0
      I just took a look into the DefaultRoutine.cs and saw that there are a lot optional features, nobody talks about.....

      There actually is a value for dodging incoming enemy AOE, u just have to change that value from "false" to "true".
       
    10. gohan55555

      gohan55555 New Member

      Joined:
      Jul 21, 2015
      Messages:
      9
      Likes Received:
      0
      Trophy Points:
      0
      The fact that there is A LOT of code in just the DefaultRoutine file that can be used to 'advance' the basic play action the bot performs, but that lacks any form of comprehensible commenting, says everything. There are variables that one can base assumptions on, modify the values, test, analyze, and repeat. What I know I am crying out for is one of the 'Devs' to take the time to at least put a some effort into either commenting the code itself or providing some form of documentation that describes the values purpose, weight, and effects on other variables; u know documentation.

      I am paying a fee to use this program, I should not be expected to 'decipher' what it is trying to do when you open the code to end-user improvements. Act like you take this seriously. Give us the respect and we will return it. Document your code.
       
    11. nickell36

      nickell36 New Member

      Joined:
      Mar 31, 2014
      Messages:
      13
      Likes Received:
      0
      Trophy Points:
      0
      Every time I go to Download Hearthbuddy, my google chrome is blocking it saying it is malicious?
       
    12. EmoKlaus

      EmoKlaus New Member

      Joined:
      Jun 22, 2015
      Messages:
      57
      Likes Received:
      0
      Trophy Points:
      0
      Yep, and last time a asked Tony how the variable "playaroundprob" at line 82 is used by the Bot, he called me a moron and closed the thread.....
       
    13. lordzephyr

      lordzephyr Member

      Joined:
      Jun 13, 2012
      Messages:
      46
      Likes Received:
      0
      Trophy Points:
      6
      comeon, we need more answers and support given that we are all paying customers. i cant even find a guide on how to config the codes as well as silverfish.
       
    14. obtkamer

      obtkamer New Member

      Joined:
      May 27, 2014
      Messages:
      261
      Likes Received:
      4
      Trophy Points:
      0
      dont ask me how to use my source from my repo, but
      for how things/parameters work i wrote a long text in a thread that was closed:

      for the settings, i copy a explanaition from the forum (so that you know how the ai works, and what the settings do) note: some variables might be named different, i copyed an old explanation and edited it:

      we are starting with one board, the current board, with your current mana, cards, minion on board and all the stuff you can see.

      ai is taking this board, and doing all the actions, you could do with this board:
      play card a, card b, attack with minion x the enemy minion y, attack with minion x the enemy minion z, attack with minion x the enemy hero, use your ability (and maybe target to something)
      each of these actions creates a new board. one board, where you played card a. one board where you played card b...and so on.
      so our begining board has get some childs.

      in the next level of calculation, we are taking these childs, and with every child, we are making the same stuff, we was making with the first board. some actions arent allowed this time (you cant play card a twice, because you only have it once, or you cant play card b, because of lacking mana, or you cant attack twice with the minion). so every child get also parents, and produces his own childrens.
      but after some "generations" there are too many childs of the childs of the childs of the... of the childs of the starting board, that we cant calculate them all (or your turntimer would be end/ your computer will melt/ you will die at the age of 90).
      so after our childs became parents and get some new childs, we take these new childs, and only take the best 3000 (maxwide) ones. so we make sure, that the next generation isnt growing to mutch!
      example:
      10000 parents -> produce 300.000 childs (30 childs each) without contraceptive and stuff these childs would produce 9.000.000 childs and these will produce 270.000.000 childs...
      but if we only select the 3000 best childs they will only make 90.000 new childs. these 90.000 childs of the elite childs, are also sorted, and the 3000 best childs, of the elite-childs are also produce only 90.000 childs.

      so the maxwide is our insurance, that the board-population dont explode.


      so, the mxwde (max-wide) number will affect, how many boards are keeped alive.

      the ai will simulate in the first phase the boards of your own current turn and , if ai decides to end turn on a board a simple enemys response of this board is calculated.
      it will do the "same" calculations (with his heropower and his minions on board, but ai will assume that he plays some minions first) but it will (for each baord) maximal enemyTurnMaxWide boards for the enemys response.


      in the second phase (threaded), ai will then give each board a value (based on your minions, handcards and other stuff),
      then it will take the "twotsamount" best boards of them, to calculate the enemys response to your actions (but this time it will calculate enemyTurnMaxWideSecondTime boards at maximum. this value should be bigger than the first one, and so ai will perform a deeper "analysis" of the enemys turn ). only for the best enemys turn ai will calculate your response to that (your second turn). if you set "enemySecondTurnSim" to true, the enemy ai will also calculate the of the enemy to your second-turn.
      (so it will calculate 4 turns).

      for the enemys turn i only calculate the attacking of his minions / weapon/ hero power, so i have only a setting for how many boards the ai is allowed to produce in the enemys turn (enemyTurnMaxWide for the first fast analysis, enemyTurnMaxWideSecondTime for the deeper analysis of the twotsamount best boards and enemySecondTurnMaxWide for the enemys second turn)

      if you activate "bool playaround = true;" the enemy will play some class-specific aoe-spells at the begin of his turn, if there are some conditions fullfilled (like he have to have enough mana, and the probability of having this aoe-spell in his hand, has to be above the given values (above the first one, to be non-deadly, above the second one, to be deadly))

      for your second turn, i have more settings for you:
      int nextturnsimDeep = 6; the deepness of the simulation (how many generations are generated) (in your first turn simulation, this value is set to 12), or better: the maximum amount of actions that are played in this turn. dont set it to high,because of the next settings, these deepness will never be reached in later, complex turns :D

      int nextturnsimMaxWidth = 10; same like mxwde (maxwide) in your mainturn, but only for your second turn.

      int nexttunsimMaxBoards = 50; the total amount of boards, that are generated in your second turn (in the first-turn-simulation, this value is infinite)


      bool secrets = true; this will simulate secrets for the enemy, but its not recommended yet (ai will be to careful). (so set it to false)

      the alpha = 50 is the wight how the value of the second phase will insult the total value ( total value = (100-alpha)/100 * value of the first phase + ( alpha / 100 * value of second phase) (second phase = calculations of enemys response + your second turn + enenys second turn)

      and i dont know if you just copied the default values (you use them if the creator of he dll didnt change the settings-file), these values that you guys will use them are VERY bad ( that are the dumb settings, because hrtbuddy dont allow (official) the use of silver.exe, which made the multiple turn simulations to slow).
      im going to post a new (recomended) settings.txt file this evening. (just copied the dumb ones fastly)
       
    15. gohan55555

      gohan55555 New Member

      Joined:
      Jul 21, 2015
      Messages:
      9
      Likes Received:
      0
      Trophy Points:
      0

      Unbelievable that our BEST source of information comes from someone who has many closed threads, that has done the work of dissecting the methodology of you bot logic so we the expanded user base can improve it.

      DEVELOPERS ~!~~~~!!~~~~
      IF you have this kind of community GIVE US TOOLS~!~~!!~
       

    Share This Page