• Visit Rebornbuddy
  • Hearthbuddy Project Update #1

    Discussion in 'Hearthbuddy Forum' started by pushedx, Oct 28, 2014.

    1. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      This post will provide the first detailed update for what's been going on behind the scenes with Hearthbuddy, as well as what's on the horizon.

      To get started, a bot like Hearthbuddy is made up of three distinct layers. Picture a pyramid, for example. The bottom layer is made up of the client API. This API allows us to read information from the game and perform actions in the client in numerous ways. The middle layer is made up of various systems that are used to implement a game specific bot. This ranges from things like our coroutines library, a logging system, runtime code execution, and so on. The top layer is made up of the game specific logic that is implemented from the previous two layers. This is simply the AI and actual bot implementation for automating the game at hand.

      Since the layers are built up on top of each other, changes in one layer will affect all the layers above it. In the ideal scenario, the bottom and middle layer will hardly ever change. The top layer will change as much as the game does in order to keep up to date and relevant. However, since it's the top layer, these changes do not affect the lower layers, and are relatively "cheap" to make in terms of time and effort. When changes are needed at the middle layer, more often than not, moderate to large changes are needed at the top layer to maintain comparability with the new design. Changes made at the bottom layer are by far the most "expensive" to make, as they cause a cascade effect of work that needs to be done throughout all layers.

      For a little over the past 3 weeks, Hearthbuddy has been undergoing changes to the bottom and middle layers. The top layer will be re-addressed once these two layers are completed.

      When looking at the majority of the big issues reported from users, we've found that almost all of them stem from problems with the client API or another middle layer system. These directly affect the top layer logic, and manifest themselves as random issues such as crashes, the bot not doing what it's supposed to (e.g., unable to play certain druid cards, mis-clicking on cards, or just not doing anything), and the inability to support common things users expect. While there are certain AI aspects that could be improved, having a perfect AI is irrelevant if the the layers upon which it is built is flawed to the point where it's unable to do the things it needs to. Considering our AI is far from perfect, the problem is magnified greatly.

      A new Beta build of Hearthbuddy is being worked on that incorporates the new changes to not affect the current users of the Release version. These changes are so vast and sweeping that there's no way to work them into the current Release version while maintaining an usable bot. This new Beta version is not ready for users to test out yet, but the goal is to get everything setup and running as soon as possible. If I had to venture a guess before a usable Beta, I'd roughly say less than a month, to be on the safe side. However, things are subject to change as needed, as what is being done is pretty extensive. It should also be noted, the new Beta will be very feature limited at first, and not compare with what the Release version currently has, but it should provide us the foundation for the future to build and evolve the bot from.

      Now, I'll go over some details about what has actually been changed with Hearthbuddy in the Beta version and what the current plans are for addressing a lot of user concerns.

      First, our client API has been greatly expanded to support reading more information from the game. The current version used in Release has a modest set of functionality, but it is limited to the most basic types, and is missing a lot of things required to drastically improve the bot. For example, in the current API, client functions that return lists or arrays are not supported. This prevents us from implementing new functionality that relies on data only obtainable though those types of client functions. There have been a ton of other improvements in this regards to other types as well, but I can't get into the specific details because it's the core of the actual bot we're providing. Rest assured, we'll no longer be limited by being unable to read important information from the client like we currently are.

      Second, we're updating the common libraries and setup of the bot. Hearthbuddy will update to .Net 4.5.1 and make use of several commonly used components our other bots do. This includes our new Coroutines library, log4net for logging, and IronPython for .Net Python support. In addition, the design of Hearthbuddy will be more in line with our other products to allow user development and customization, as opposed to the current setup where we provide one bot that is the entirety of Hearthbuddy. While I do not have details on the new setup for AI, the current goal is to work in a profile system to control the non-game play specific logic for automating the game. The idea is that if users want the ability to play a certain number of games of a type, then easily switch to another, they should be able to do so with a profile, which saves us a whole bunch of dev time as opposed to trying to code something that supports it.

      Third, new methods for interacting with the client are being worked into the project. The single biggest giveaway for a bot being a bot is the lack of the client actions that are generated using normal input methods. We all know what these are, and how a lot of people have been bringing them up as being the primary means of identifying bots. These issues should be fully resolved when we're done with the rewrite, as the way we perform actions will be drastically changing. The bot will play the game like a human would, although, it might not always make the best decisions. However, identifying a bot based on good or bad decisions, is a lot harder than the obvious give-away currently from bot generated actions.

      Those represent the three biggest points of interest that summarize what's being done with the Beta. In short, Hearthbuddy will perform actions like a human, will be able to read/process more relevant information, and will have a stable and reliable Buddybot setup that promotes community development. There's no need to get into the smaller specific issues yet, because those will fall into place once the big things are taken care of.

      A point of emphasis needs to be made now. This thread is being made because we finally have the answers (or working solutions) to the majority of the problems that need to be solved (in terms of bottom/middle layer issues). Three weeks ago, it was known Hearthbuddy was in need of some updating, but the extent was unknown. Two weeks ago, a large number of core problems were identified and tracked down, but it was mostly research and hypothetical solutions. One week ago, working solutions and massive design changes were translated into reality, giving us something concrete to work from. At this point, we're ready to finish up that process and start moving into putting everything back together again.

      That wraps up this first project update to inform users of the current project status. We'd like to thank users for their patience and continued support as we revamp to better suit their expectations and needs. We are paying attention to the forums and evaluating what we can do better in the future to successfully grow and provide a quality bot. I'm sure a lot of people are anxious to see new and exciting stuff, so please continue to be patient as we make all the preparations needed to move forward.

      I'm sure there'll be a lot of questions about "if feature X will be added" or "can functionality Y be supported". The Beta version is not at that stage yet to respond to those types of questions yet, but the following points are relevant to those types of questions:
      • Hearthbuddy will be receiving Buddystore support.
      • "Solo Adventures" will be supported in phases (Normal/Expert Practice is the first priority, Naxx will come later)
      • More emphasis on QoL features and extended functionality though profiles will be made once possible.
      • New bot/development guides will be made once the design is finished and tested.
      Thanks for reading. :)
       
    2. sugarworm

      sugarworm New Member

      Joined:
      Jul 24, 2014
      Messages:
      48
      Likes Received:
      0
      Trophy Points:
      0
      Finally some information! I don't care if it will take you 1 month or 2 months as long as you post something like this and say you are actually doing something to move this bot forward! I am really happy to see more people on board this project and that you are working on it. Thank you.
       
    3. Impala

      Impala Member

      Joined:
      Feb 19, 2011
      Messages:
      363
      Likes Received:
      0
      Trophy Points:
      16
      I agree with this
       
    4. Gentoo

      Gentoo Active Member

      Joined:
      Apr 29, 2011
      Messages:
      1,364
      Likes Received:
      24
      Trophy Points:
      38
      Haven't played HS in about 6 months. Reinstalled it today, downloaded newest Hearthbuddy.. And it still misclicks/not playing any cards like it did 6 months ago when i quit playing it. I think i see why blizz focused that other bot maker, theirs worked.
       
    5. NiklasNikke

      NiklasNikke New Member

      Joined:
      Jul 15, 2010
      Messages:
      129
      Likes Received:
      1
      Trophy Points:
      0
      You can never make a post again. Look at your glorious post counter.

      On topic:
      I'm very glad you guys are updating us on the project. I am still a bit mad seeing the bot being updated so slowly - and the fact that there has been a lot of silence.
      BUT, thank you very much for updating on the situation. I look forward to see what this will bring.
       
    6. jacks

      jacks Member

      Joined:
      Nov 3, 2012
      Messages:
      50
      Likes Received:
      0
      Trophy Points:
      6
      Keep up the good work .
       
    7. SIL3N7

      SIL3N7 Active Member

      Joined:
      Jun 12, 2012
      Messages:
      1,119
      Likes Received:
      11
      Trophy Points:
      38
      Not sure why normal / expert practice is wanted. but if its wanted so be it some one just going to need to fill me in as to why. Like whats the benefit?
      I understand Naxx so the bot can unlock all the cards it self.

      Anyway Thanks for keeping us updated. Cant wait
       
    8. Apoc

      Apoc Moderator Staff Member Moderator

      Joined:
      Jan 16, 2010
      Messages:
      2,790
      Likes Received:
      94
      Trophy Points:
      48
      Practice lets us tune the AI, and iron out bugs related to gameplay. All without being in front of other players. Please re-read his explanation. This will all be done in a "beta" set of builds.
       
    9. jotd

      jotd Member

      Joined:
      Sep 27, 2010
      Messages:
      745
      Likes Received:
      1
      Trophy Points:
      18
      Although I can't really retrace some of the problems mentioned I'm glad that hearthbuddy is not dead and is being worked on.
      To me the current version of the bot is stable and does what it needs to. Only the play-logic could be better, but thats something that is being adressed with silverfish.
      Nevertheless I'm awaiting the new version. :)
       
    10. SIL3N7

      SIL3N7 Active Member

      Joined:
      Jun 12, 2012
      Messages:
      1,119
      Likes Received:
      11
      Trophy Points:
      38
      Apoc <3
      I botted hearthstone for months and like how people asked why they should use concede after win. And that its usefull to help farm portraits. I just felt like I was. Missing out on something that I did not know. thanks for filling me in.
       
      Last edited: Oct 29, 2014
    11. Impala

      Impala Member

      Joined:
      Feb 19, 2011
      Messages:
      363
      Likes Received:
      0
      Trophy Points:
      16
      Whoa Apoc is working on Hearthbuddy now?
       
    12. Granis

      Granis Member

      Joined:
      Feb 24, 2011
      Messages:
      213
      Likes Received:
      4
      Trophy Points:
      18
      Will there ever be a option to have Hearthbuddy in tray?

      And i cant wait untill the Solo adventure gets built in !!!
       
    13. sugarworm

      sugarworm New Member

      Joined:
      Jul 24, 2014
      Messages:
      48
      Likes Received:
      0
      Trophy Points:
      0
      You probably know that but please remember to enable us to make custom combos with our decks. For example to be able to code bot so that he keeps Rockbiter weapon and uses it on al'akir or to tell bot to keep both power overwhelming until there is lethal in range and not to use them at any cost, etc.
       
    14. layg1990

      layg1990 New Member

      Joined:
      Dec 1, 2012
      Messages:
      93
      Likes Received:
      2
      Trophy Points:
      0
      I honestly think that you should not have people pay to use this bot right now the way it is. It should be free for people to use until it is update and can actually win games. Paid for a couple days to try it out and seemed to work well, bought lifetime and have a 30% win rate. Just hope that when it is updated it makes this time worth it.
       
    15. i3luem4gic

      i3luem4gic New Member

      Joined:
      Nov 7, 2014
      Messages:
      5
      Likes Received:
      0
      Trophy Points:
      0
      You just need Silverfish and the right decks which u can find in this forum.

      I easily get around 82-85% wins
       
    16. layg1990

      layg1990 New Member

      Joined:
      Dec 1, 2012
      Messages:
      93
      Likes Received:
      2
      Trophy Points:
      0
      See I don't really find much around the forum because it is so empty. Not sure what silverfish is, but I will look for it.
       
    17. DBXion

      DBXion New Member

      Joined:
      Nov 7, 2012
      Messages:
      13
      Likes Received:
      0
      Trophy Points:
      0
      Yeah, win rate is highly dependent on the decks you have.. and the decks are dependent on the cards. In my personal experience, using the "free" default decks you get for each Hero type, you can win 50% of the time at rank 20 running silverfish.
       
    18. layg1990

      layg1990 New Member

      Joined:
      Dec 1, 2012
      Messages:
      93
      Likes Received:
      2
      Trophy Points:
      0
      I am using silverfish right now, with a regular deck, but I am losing nearly every game now. I watch it sometimes and see moments where the bot could win a game my next move but it attacks a minion instead of the hero and then lose the game even though I have it on Rush and not Control.

      Any sort of advice for how to build a deck? Which class to use?
       
    19. DBXion

      DBXion New Member

      Joined:
      Nov 7, 2012
      Messages:
      13
      Likes Received:
      0
      Trophy Points:
      0
      I just run whatever "free" deck is for the hero I am trying to level and set Silverfish to control. Like I said, I get about a 50% win rate doing that. Since the win rate is 50% I also turn OFF concede after win, as there is no point in having it on unless you have a high win rate. (Occasionally I get a streak and manage to rank up to 19, but the get ranked back down to 20 shortly thereafter).

      Its not the "Fastest" way to grind.. but considering it's going on in the background with 0 input from me.. its fine being "slow". Granted a "high win %" deck is only slightly faster..

      Really, what we should be aiming for in decks for "Grinding" IMO is:
      1. Decks that can finish a match in under 8 turns.
      2. Super High win rates

      I would love to see Hearthbuddy to be updated to maintain its own internal database of win % based on Hero, Cards, etc.. a "learning" AI that will track individual decks so it "knows" what cards are in the deck and then counts and plans ahead based on what it has drawn/discarded and what it knows is still in the deck...

      Right now it only seems to look at whats in the hand and on the table with no real "planning ahead"
       
    20. alvinma

      alvinma New Member

      Joined:
      Sep 12, 2014
      Messages:
      38
      Likes Received:
      0
      Trophy Points:
      0
      hm....two weeks since the OP now.....I'm expecting the new bot to be somewhat usable(testable) in 2-3 weeks from now on
       

    Share This Page