HearthbuddyBeta
This thread is the first release/discussion thread for the temporary Beta. A changelog will be maintained in the second post of this thread, so be sure to check that time to time.
Requirements
In order to use HearthbuddyBeta (Beta #29+) users must download and install the Microsoft Visual C++ 2013 Redistributable Package (x86). In addition, .Net 4.5.1 will be required soon, but is not required for this version.
Please use the Buddy Dependency Wizard to install all current and planed dependencies for Hearthbuddy.
Please make sure to re-run the installer if you think you have them installed, but are still having issues. .Net runs into some issues at times and requires reinstalls.
Lastly, some users might also need to run Hearthbuddy as Administrator. If you are having issues, make sure you run as Administrator to see if your problem is solved first, before requesting support.
Feedback
If you have actual crashes or things don't work for you, please attach a full log for us to go though and try and determine the issue.
As always, we welcome constructive criticism, and do value our users' feedback, but there's no need for me to beat a dead horse responding to known issues. If there's something you genuinely don't understand, I'll try my best to explain it, but right now, the biggest focus is making sure things simply work. Making them work better, is a totally different issue, but one that we're looking forward to once all the necessary pieces are in place.
Please try to stay on topic, and be civil to each other, as always.
About
This Beta version is a modified Release version, with emphasis on changing the way the bot interacts with the client. The bot will now click, move, and drag the mouse like a normal user would while in game. The purpose of this Beta is to test a new method of interaction with the game, and help us move forward in designing a system that allows automation of the game in a more human-like way.
The current Release version of Hearthbuddy will be replaced with this version after testing is completed. From there, work on the previously announced new Beta will resume.
This Beta version is not the new Beta planned for Hearthbuddy, but rather the start of a short term fix for the most important issues that make Hearthbuddy stand out as an obvious bot.
Lastly, this Beta version is not fine-tuned. There's a lot of things that need to be tweaked differently, but in order to avoid delaying the release even longer, we're going with what we currently have. I already know there will be a lot of complaints about the way this Beta works right out of the box, but users will just have to be patient until those issues can get properly resolved. Rest assured, we'll do our best to get everything taken care of in a timely manner.
Changes
This Beta version is a modified Release version. All existing limitations, problems, lack of features, etc... still exist except for:
Guide
To select practice mode, change the "Game mode" combobox at the top to "PracticeNormal" or "PracticeExpert".
The Hearthbuddy GUI now has a new section for practice only settings:
Use Basic Deck: When checked, the bot will use the selected deck on the right. The default value is the Hunter class.
Custom Deck Name: When "Use Basic Deck" is unchecked, the bot will use the custom deck with this name. Case insensitive, but spaces and other characters matter.
AI Opponent: The opponent you want to face in practice mode. The default value is the Hunter class.
Other than that, the rest of the GUI and using the bot is the same as before.
Download
The Beta version is available to all customers who have an active Hearthbuddy key. Simply click here to download the latest Beta version from BuddyAuth.
Please bookmark the URL for easy future access to download "clean copies" of the Beta. At times, our Updater might cause issues, and we ask users to perform a "clean install" to diagnose a problem.
NOTE: Custom AIs (implemented via ICustomDeck) will be broken with Beta due to some API changes. There is no guide for the changes required yet, because the current API has only changed enough to support the new input system. Many more changes will be made soon, but for now, the API is in a very volatile state. We'll help devs update their work for Hearthbuddy as needed as soon as we have something a little more stable to go by. Please see the Roadmap section at the bottom for more information.
F.A.Q.
Q. Why is the first minion / spells played on the hero rather than randomly in the middle of the board?
A. This is just temporary until a more realistic action can be determined. Randomly playing cards too far away is more suspicious than lazily playing them on your hero.
Q. Why does the bot start practice games so slowly?
A. The code is not tuned to be smooth yet. The primary focus is getting code that works first, and then making it better.
Q. Why does the bot move the cursor so slowly when performing actions in game?
A. The current logic is not properly tuned yet. Achieving "smooth and fluid" actions requires running the bot at high tick rate, while not degrading overall performance.
Q. Why doesn't the bot respond to player emotes?
A. There's no logic in place to do that, even though they are processed internally. Contrary to what people believe, making the bot respond to emotes is more dangerous than simply ignoring them. The complexity of responding to emotes properly, is no simple task. E.g., if the opponent uses a random "Well Played" emote in the middle of the match for no reason, why would the bot respond with "Thanks"? The context in which an emote is used by an opponent matters, so simply responding to emotes would be a new give-away that a bot is being used, even if you limited them.
Q. Why does the bot auto-greet/taunt then Innkeeper then?
A. To show they work. An option to disable them will be added later on if users want to BM the Innkeeper.
Q. Can the bot use an emote before fatal?
A. This is actually an AI specific thing. It has to be coded in to detect the current move will result in fatal damage, and then use that emote. It will be looked into, and most likely will be tested though practice mode first. There's certain cases where it might just be easier to kill the opponent and then use the emote. For example, killing an Abomination, which results in fatal to the opponent vs attacking face. All combinations of fatal from triggered effects would have to be processed.
Q. Why does the AI play a card, wait a little, play a card, wait a little, etc...?
A. The current AI design evaluates the board, then performs an action. It does this until there are no more actions left. The concept of pre-planning a series of actions to perform, and then performing them in rapid succession is very complex, and simply not supported in the current model. While there are certain speed settings that can be tweaked, such as the delay after picking up a card or choosing a target, the current design can only be configured to play slower, but not that much faster.
Q. Will "feature X" be added or will "feature Y" be improved?
A. Most likely. Time, and the complexity of finding ways to overcome certain obstacles are the only things that are standing in the way now. With enough of it, we should be able to get most things addressed. It's hard to give specifics though, as we'll just try to get things updated as we go along. All users have different needs, so there's no way we can satisfy everyone with our progress.
Q. What will be updated next?
A. Please see the Roadmap section.
Roadmap
This is roughly the plan for this Beta test.
1. Address any issues that make the bot unusable from a technical standpoint. E.g., crash on startup, instability for short periods of time, issues of that nature that prevent testing.
2. Update the project infrastructure to what it'll resemble in the future, so users are used to the new requirements. E.g., like our other bots, using .Net 4.5.1, Visual Studio 2013 (x86) redist, log4net, etc... All this has been done in another branch, but the current code needs to be updated to be compatible.
3. Improve the timings and smoothness of the actions being performed. This is being done after #2, rather than before, simply because the time we spend now on the old version, will have to be thrown away in the near future, due to changes in infrastructure and what that actually means for the code being used. We should also be able to help devs update to the latest API if necessary.
4. At this point, we should have a version to replace Release. This should allow us to handle the Goblins and Gnomes expansion without any serious issues when it comes to updating the underlying API, since a lot of things have been improved under the hood. That is all assuming no major changes are made to the way the game is structured, but we'll have to wait and see when it's released.
The primary focus for the project is non-AI changes. As mentioned in the Hearthbuddy Project Update #1 thread, we want to have the bot setup similarly to our other bots, and prepare for community development. Once all of that is taken care of, we can start looking at new ways to do AI, which is no simple task, but the nature of this type of work.
This thread is the first release/discussion thread for the temporary Beta. A changelog will be maintained in the second post of this thread, so be sure to check that time to time.
Requirements
In order to use HearthbuddyBeta (Beta #29+) users must download and install the Microsoft Visual C++ 2013 Redistributable Package (x86). In addition, .Net 4.5.1 will be required soon, but is not required for this version.
Please use the Buddy Dependency Wizard to install all current and planed dependencies for Hearthbuddy.
Please make sure to re-run the installer if you think you have them installed, but are still having issues. .Net runs into some issues at times and requires reinstalls.
Lastly, some users might also need to run Hearthbuddy as Administrator. If you are having issues, make sure you run as Administrator to see if your problem is solved first, before requesting support.
Feedback
If you have actual crashes or things don't work for you, please attach a full log for us to go though and try and determine the issue.
As always, we welcome constructive criticism, and do value our users' feedback, but there's no need for me to beat a dead horse responding to known issues. If there's something you genuinely don't understand, I'll try my best to explain it, but right now, the biggest focus is making sure things simply work. Making them work better, is a totally different issue, but one that we're looking forward to once all the necessary pieces are in place.
Please try to stay on topic, and be civil to each other, as always.
About
This Beta version is a modified Release version, with emphasis on changing the way the bot interacts with the client. The bot will now click, move, and drag the mouse like a normal user would while in game. The purpose of this Beta is to test a new method of interaction with the game, and help us move forward in designing a system that allows automation of the game in a more human-like way.
The current Release version of Hearthbuddy will be replaced with this version after testing is completed. From there, work on the previously announced new Beta will resume.
This Beta version is not the new Beta planned for Hearthbuddy, but rather the start of a short term fix for the most important issues that make Hearthbuddy stand out as an obvious bot.
Lastly, this Beta version is not fine-tuned. There's a lot of things that need to be tweaked differently, but in order to avoid delaying the release even longer, we're going with what we currently have. I already know there will be a lot of complaints about the way this Beta works right out of the box, but users will just have to be patient until those issues can get properly resolved. Rest assured, we'll do our best to get everything taken care of in a timely manner.
Changes
This Beta version is a modified Release version. All existing limitations, problems, lack of features, etc... still exist except for:
- The bot now uses an input driven method to interact with the client while in a match. It will move the cursor around (rather slowly sometimes) to click on cards, use the targeting arrow, hover over your hand, and things of that nature.
- Normal/Expert practice mode support has been added for users who want to help us test the Beta without playing Arena/Constructed against real players. We'll be extensively using Practice mode to test new features in the future.
- The core API has been updated to allow us to access more data from the client. This finally gives us the means to implement highly demanded features. The practice mode with custom/basic deck support is just one example. That system will be applied to Constructed play in the near future as well. A lot of various bugs have been fixed that should lead towards a more stable bot for the future.
- The bot will (hopefully) auto-greet/threaten in Practice mode at startup correctly. Arena/Constructed play has not been tested and might not work correctly yet. There's not much to do about that, because larger design changes need to be made first, which there simply isn't time for in this version without delaying it even longer.
- The bot will hover over cards when you have at least 3 in your hand during your opponents turn. As with the previous change, there's some bleed though at the start of your turn due to the current design of the bot that is unavoidable for now.
- In game, the bot should work at any resolution, and calculates the position of where things are at runtime. Starting practice games was built from the ground up, using the new API, but Arena/Constructed logic has not been updated to use the new system yet. Issues with those modes will still persist if they happened before.
Guide
To select practice mode, change the "Game mode" combobox at the top to "PracticeNormal" or "PracticeExpert".
The Hearthbuddy GUI now has a new section for practice only settings:
Use Basic Deck: When checked, the bot will use the selected deck on the right. The default value is the Hunter class.
Custom Deck Name: When "Use Basic Deck" is unchecked, the bot will use the custom deck with this name. Case insensitive, but spaces and other characters matter.
AI Opponent: The opponent you want to face in practice mode. The default value is the Hunter class.
Other than that, the rest of the GUI and using the bot is the same as before.
Download
The Beta version is available to all customers who have an active Hearthbuddy key. Simply click here to download the latest Beta version from BuddyAuth.
Please bookmark the URL for easy future access to download "clean copies" of the Beta. At times, our Updater might cause issues, and we ask users to perform a "clean install" to diagnose a problem.
NOTE: Custom AIs (implemented via ICustomDeck) will be broken with Beta due to some API changes. There is no guide for the changes required yet, because the current API has only changed enough to support the new input system. Many more changes will be made soon, but for now, the API is in a very volatile state. We'll help devs update their work for Hearthbuddy as needed as soon as we have something a little more stable to go by. Please see the Roadmap section at the bottom for more information.
F.A.Q.
Q. Why is the first minion / spells played on the hero rather than randomly in the middle of the board?
A. This is just temporary until a more realistic action can be determined. Randomly playing cards too far away is more suspicious than lazily playing them on your hero.
Q. Why does the bot start practice games so slowly?
A. The code is not tuned to be smooth yet. The primary focus is getting code that works first, and then making it better.
Q. Why does the bot move the cursor so slowly when performing actions in game?
A. The current logic is not properly tuned yet. Achieving "smooth and fluid" actions requires running the bot at high tick rate, while not degrading overall performance.
Q. Why doesn't the bot respond to player emotes?
A. There's no logic in place to do that, even though they are processed internally. Contrary to what people believe, making the bot respond to emotes is more dangerous than simply ignoring them. The complexity of responding to emotes properly, is no simple task. E.g., if the opponent uses a random "Well Played" emote in the middle of the match for no reason, why would the bot respond with "Thanks"? The context in which an emote is used by an opponent matters, so simply responding to emotes would be a new give-away that a bot is being used, even if you limited them.
Q. Why does the bot auto-greet/taunt then Innkeeper then?
A. To show they work. An option to disable them will be added later on if users want to BM the Innkeeper.
Q. Can the bot use an emote before fatal?
A. This is actually an AI specific thing. It has to be coded in to detect the current move will result in fatal damage, and then use that emote. It will be looked into, and most likely will be tested though practice mode first. There's certain cases where it might just be easier to kill the opponent and then use the emote. For example, killing an Abomination, which results in fatal to the opponent vs attacking face. All combinations of fatal from triggered effects would have to be processed.
Q. Why does the AI play a card, wait a little, play a card, wait a little, etc...?
A. The current AI design evaluates the board, then performs an action. It does this until there are no more actions left. The concept of pre-planning a series of actions to perform, and then performing them in rapid succession is very complex, and simply not supported in the current model. While there are certain speed settings that can be tweaked, such as the delay after picking up a card or choosing a target, the current design can only be configured to play slower, but not that much faster.
Q. Will "feature X" be added or will "feature Y" be improved?
A. Most likely. Time, and the complexity of finding ways to overcome certain obstacles are the only things that are standing in the way now. With enough of it, we should be able to get most things addressed. It's hard to give specifics though, as we'll just try to get things updated as we go along. All users have different needs, so there's no way we can satisfy everyone with our progress.
Q. What will be updated next?
A. Please see the Roadmap section.
Roadmap
This is roughly the plan for this Beta test.
1. Address any issues that make the bot unusable from a technical standpoint. E.g., crash on startup, instability for short periods of time, issues of that nature that prevent testing.
2. Update the project infrastructure to what it'll resemble in the future, so users are used to the new requirements. E.g., like our other bots, using .Net 4.5.1, Visual Studio 2013 (x86) redist, log4net, etc... All this has been done in another branch, but the current code needs to be updated to be compatible.
3. Improve the timings and smoothness of the actions being performed. This is being done after #2, rather than before, simply because the time we spend now on the old version, will have to be thrown away in the near future, due to changes in infrastructure and what that actually means for the code being used. We should also be able to help devs update to the latest API if necessary.
4. At this point, we should have a version to replace Release. This should allow us to handle the Goblins and Gnomes expansion without any serious issues when it comes to updating the underlying API, since a lot of things have been improved under the hood. That is all assuming no major changes are made to the way the game is structured, but we'll have to wait and see when it's released.
The primary focus for the project is non-AI changes. As mentioned in the Hearthbuddy Project Update #1 thread, we want to have the bot setup similarly to our other bots, and prepare for community development. Once all of that is taken care of, we can start looking at new ways to do AI, which is no simple task, but the nature of this type of work.
Last edited:






