• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • HearthbuddyBeta Release/Discussion Thread

    Discussion in 'Hearthbuddy Forum' started by pushedx, Nov 21, 2014.

    Thread Status:
    Not open for further replies.
    1. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      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:

      1. 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.
      2. 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.
      3. 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.
      4. 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.
      5. 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.
      6. 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:
      You need to register and have one post to see spoilers!
      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: Nov 23, 2014
    2. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      Changelog

      #29
      • Initial version.
       
      Last edited: Nov 23, 2014
    3. runittwiice

      runittwiice New Member

      Joined:
      Mar 7, 2014
      Messages:
      310
      Likes Received:
      0
      Trophy Points:
      0
      Will give it a go and post back.

      Edit;

      - It muligans the right cards in casual play

      - Uses Threaten emote in casual play

      - Hoovers over cards in casual play

      - Randomly clicks around the field with mouse in casual play


      So far so good, just a bit laggy/stuttery, will see how it continues to go.

      (Also running in full screen mode)

      I think besides the flaws like battlecry's not being played right (which I think was posted that this would happen) it's running pretty well. I think you just have to run a deck as basic as possible.

      So far 3 wins 1 Loss on my warrior deck.


      - It's making some smart decisions like replacing my weapon with another one to deal the 1 dmg to all minions.

      - Also sometimes will end turn when there are still minions who can attack.



      Well, I've been watching the bot play a few games now and can't really complain for a beta version. It has it flaws, but we all know there would be some at the start as it is just a "hotfix" for the time beign.
      You can easily use it to get your wins for your quests, when I have some more time today I'll see if I can make a deck that's viable to use in ranked with this bot.
       
      Last edited: Nov 23, 2014
    4. janusznazir

      janusznazir New Member

      Joined:
      Jun 28, 2014
      Messages:
      108
      Likes Received:
      1
      Trophy Points:
      0
      I have a lot of random crashes now, even on stable .102 dont know why heres log:
       

      Attached Files:

      Last edited: Nov 23, 2014
    5. runittwiice

      runittwiice New Member

      Joined:
      Mar 7, 2014
      Messages:
      310
      Likes Received:
      0
      Trophy Points:
      0
      Well did you read the first post and used the wizard to make sure you have all the necessary codecs and whatnot?
       
    6. janusznazir

      janusznazir New Member

      Joined:
      Jun 28, 2014
      Messages:
      108
      Likes Received:
      1
      Trophy Points:
      0
      yep i run it and download all req files, the game/bot runs fine but on some moment it crash Hearthbuddy
       
    7. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      We'll check into this. If it's also happening on Release, then it's not a beta specific issue. I think more debug logging will help track down the issue, but thank you for attaching your logs.
       
    8. janusznazir

      janusznazir New Member

      Joined:
      Jun 28, 2014
      Messages:
      108
      Likes Received:
      1
      Trophy Points:
      0
      It might be something with this new directx relase dont know, till today Hearthbuddy never crash, starting today it crash everygame. Dont know why.
       
    9. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      Thanks for the extensive feedback! I think one of the issues with cards not getting played correctly comes down to a scenario such as this:
      1. Bot plays a card that summons a minion or causes an effect to take place that delays the time before you can perform your next action.
      2. Bot waits a fixed amount of time and then tries to perform an action. The client isn't in a state where it can perform the action, so nothing happens.
      3. Based on how I understand the AI works, it should re-evaluate the board, and play the move again, but sometimes it doesn't; it plays a different move. In that case, if the next move is to end the turn, I think that's why it skips them.

      To avoid that issue, the bot API itself will be changing to do more checks. For example, if you want to pickup a card, it'll make sure there's not a targeting arrow already, ensure there's not already a card on the cursor, and then make sure a card was actually picked up before returning. This should solve the issue of the client being unable to perform an input driven action due to the current client state not allowing it. Quite a lot of tweaking needs to be done in terms of handling card/action animations as well.

      For the issue about it clicking on the field, I've noticed that at times too, but I have no idea why it happens yet. I would assume the bot is trying to pickup a card, and the coordinates are wrong, but that shouldn't be happening because everything is built around that system. It's possible it's a flaw in the AI when trying to perform actions, but it'll be looked into as we make bigger non-AI changes to the current design pretty soon.

      As I've learned from Exilebuddy when it was undergoing a big transition and being updated, this current stage sees a lot of "weird things" just from old and new code conflicts, so hopefully as we transition into more new code, those issues will be solved or at least properly identified. For now, we just have to make note of them and move forward, and not try to spend too much time looking into things that just might be happening due to code incompatibilities.

      Lastly, the 'lag" that happens before the bot actually performs an action is due to the current AI implementation. There's quite a few things that can be optimized to help reduce it. There might be another type of lag present that seems to happen when the AI isn't doing anything, and that's the one that needs to be looked into more. I'm not quite sure the reason behind that one, but I have noticed it at times when not running the AI in builds where I'm stress testing stability.
       
    10. runittwiice

      runittwiice New Member

      Joined:
      Mar 7, 2014
      Messages:
      310
      Likes Received:
      0
      Trophy Points:
      0
      This is indeed exactly what's happening sometimes.

      As far as the random clicking goes, I thought it was part of the design, since that's something a regular player also does when he's bored you know, randomly start clicking stuff :p didn't know it was not supposed to happen!

      But besides the things I mentioned I think it's pretty good, I think users should just use simple decks right now and they should be able to get a good winrate.
      Althought the bot doesn't always make "dumb" decisions..sometimes it actually makes really smart ones, but you can't risk it in ranked yet if your goal is to climb the ladder, I suppose.
       
    11. so12345

      so12345 New Member

      Joined:
      Oct 31, 2014
      Messages:
      5
      Likes Received:
      0
      Trophy Points:
      0
      Same here. .101 was running fine and now my HB random crash. I am using window 7 and seems that the window update KB30000850 only apply to window 8. Not sure if this cause the issue.
       
    12. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      I think I understand what was happening now.

      A card is hovered over, and the "big" version of it is on screen. When the bot goes to play the card, it does not detect this, and calculates a point to interact with the card as if it were in your hand. When moving the cursor to the point to interact with the card, the client closes the big card view, and as a result, the destination point overlaps the game board, thus making the bot randomly click on the game board, the hero, or whatever else happens to be under it.

      This also can happen if the random card hovering logic tries to hover over the currently hovered card, but the effect isn't harmful as the cursor overlaps the board randomly, giving a somewhat random behavior.

      We should be able to handle this better with the bot API updates to do more checking before doing things.
       
    13. chyn

      chyn New Member

      Joined:
      Nov 23, 2014
      Messages:
      6
      Likes Received:
      0
      Trophy Points:
      0
      2 days with crashes since update i did everything i read on the forums to fixthe issue, but it never got fixed, i even formatted the machine i use for booting -.-
       
    14. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      Please make a Support thread and attach a full log from a session that crashed. We are trying to collect as much information as possible from users who are having crashing issues, to try and figure out why it's happening.
       
    15. canadianbacon

      canadianbacon New Member

      Joined:
      Nov 18, 2014
      Messages:
      7
      Likes Received:
      0
      Trophy Points:
      0
      Can we have the ability (or maybe I'm missing it) to randomize the time it takes to play a card. From what I can tell there is no randomness to it. Not a huge deal, but would make hiding better.

      I have not had any crashes.. Windows 8.. latest updates. No issues with the beta in Ranked and Arena mode.
       
    16. runittwiice

      runittwiice New Member

      Joined:
      Mar 7, 2014
      Messages:
      310
      Likes Received:
      0
      Trophy Points:
      0
      Another suggestion also is if you could maybe change up the time it takes to hover over cards, I mean, there is not a single player in the world that looks at his cards five times in a row,
      I know you want to make it look as human as possible, so, if I have five cards in my hand, if I take one look at them I know what I have, right now the bot is checking out every card like
      five seconds for multiple times even when it's not our turn. Just an idea.
       
    17. sugarworm

      sugarworm New Member

      Joined:
      Jul 24, 2014
      Messages:
      48
      Likes Received:
      0
      Trophy Points:
      0
      So now we have a beta of a beta of a final product?

      Laughing aside it's good to see you guys on this project.
       
    18. bobikson

      bobikson New Member

      Joined:
      Sep 26, 2014
      Messages:
      24
      Likes Received:
      0
      Trophy Points:
      0
      guys i can use silverfish ai for diz beta or not ?
       
    19. Mario27

      Mario27 Banned

      Joined:
      Jan 15, 2010
      Messages:
      6,336
      Likes Received:
      4
      Trophy Points:
      0
      arena is not working i have enough gold but it keeps spamming this but other then that its good i like the new red aim arrow option what u guys made

      Entrance bought.


      [IsClientInUsableState] SceneMgr.IsTransitioning.
      [Start] Now sleeping 1000 before the next tick.


      [IsClientInUsableState] SceneMgr.IsTransitioning.
      [Start] Now sleeping 1000 before the next tick.


      [IsClientInUsableState] Box.IsBusy.
      Bot has stopped.

      and it doesend buy the 150g arena
       
      Last edited: Nov 26, 2014
    20. janusznazir

      janusznazir New Member

      Joined:
      Jun 28, 2014
      Messages:
      108
      Likes Received:
      1
      Trophy Points:
      0
      Still no fix for crashing ?
       
    Thread Status:
    Not open for further replies.

    Share This Page