This thread is for feedback on the new and upcoming GUI. Starting with Beta #81 (coming soon), a new GUI will be tested based on feedback and re-evaluation of the initial version. This is also the first thread of many for community discussion about various aspects of the project. Please note that these threads are topic specific, and do not take away from work being done on the bot. E.g., we know the AI needs work, but time invested in threads like these or the changes made does not mean the AI still isn't being worked on, etc... About First, I'll explain why things were setup the way they were, and then some of the changes that will be tested in the next version to start moving us towards a more user friendly happy median. Please try to read it first before offering suggestions or other commentary on the GUI, because it's important to understand how we got to where we currently are. The initial GUI design was based on the need for more organization and easier development/maintenance. The old Exilebuddy GUI was never setup in the same way the old Hearthbuddy GUI was. Instead of having everything on the main GUI, we had a button users pressed to open the actual settings GUI. Each bot implementation had it's own GUI. Users had to close this window before being able to access anything in the main GUI, since we didn't want users to have a bunch of GUI windows open, and have to keep track of them and the changes they were trying to make. However, as more things needed to be added to this popup, there began issues with organization and user interactions. A TabControl helps solve those issues by giving more pages in a single control so things can be organized better. Here's a picture of the last major GUI design we used at the start of this year, before EB underwent numerous rewrites. We labeled the settings buttons since users were confused what they were before. In addition, we added a new settings window (shown) that held a lot of common bot settings, but they were not specific to the current bot you selected. Finally, we added more tabs for other useful stuff to help organize the GUI better. This design mostly worked, but I wasn't happy with it. For one, users now had 3 different GUIs to go though to change various things in the bot, and each of those GUIs had a different design and layout since they simply opened a new window (which once again, had to be closed before you can resume interacting with the main bot program). The actual main settings window used tabs to organize things, which added even more GUI depth users had to travel though to change something. At the time, this was an improvement to what we had before, but it still wasn't without it's own issues. After time and many EB rewrites, I arrived at the current design it currently uses, which was subsequently used as-is for HsB. Starting out, the buttons to launch various settings GUIs are gone. Instead, all settings are now integrated into a TabControl in one central location (Settings) that is accessible while the bot is running for instant runtime changes since the GUI is setup using WPF Binding now. I know that's a bit technical for most, but what it means is that you can change settings, and they are instantly updated, as opposed to previous designs where you manually have to update and save the settings each change. Next, various features to help users out were added to the Log display. The current path of the log file is in an easy to see place, and there are buttons to copy the path to the clipboard for easier forum attaching, a button to zip the log so users don't have to manually, and finally a means to clear the current visual display of the log, which is very nice to have. Additional information is provided though the Configuration, Global, and Main tabs, as opposed to not existing at all. One of the common requests we had in EB was for people to know which key they were using, so it was added to the GUI. Then, options like GUI size and position were added for quality of life improvements. The biggest takeaway is that the current vision is to have something that provides a seamless experience that doesn't require the user to have to open up a bunch of different windows to change things. Changes Now for the obvious issues users have brought up with the current design: 1. You can only start/stop the bot from the Main tab. This can be addressed in one of two ways: a.) That section can be moved to the bottom portion of the screen, above the log tab: screenshot (not so good imo). b.) That section can be moved to the top portion of the screen, above the tab control itself: screenshot (much better imo). The next Beta version will try (B). 2. Tab navigation doesn't seem intuitive. I.e., when starting up the bot, the user must click on the Settings tab, and then click on the settings for the bot/routine they want to configure, then click back to the Main tab, and then click Start. This can be addressed by providing a Config button that quick jumps the TabControl to the desired Settings tab. Screenshot. This now allows users to launch HsB, click one button to go to the settings for the bot, click another button to go to the settings for the routine, then click Start to begin. I do not believe the process can be streamlined or made any more simple than that! The next Beta will contain this functionality. 3. Settings are hard to understand. This is due to the fact the initial design simply uses the same name as the actual settings file uses to store the data. I.e., "AutoConcedeAfterRankedConstructedWin" is actually the name of the settings it refers to: DefaultBotSettings.Instance.AutoConcedeAfterRankedConstructedWin. This is useless for 99% of the people who use the bots, and a new naming convention will be used soon. In addition, we do want to support proper localization, but the GUI needs to be updated to do this correctly, and some other settings breaking changes need to be made (e.g., MAGE is not the English name, but rather the value of the enum used to designate the mage class in code). The next beta will make an effort to change the labels for settings, but localization support is not possible yet. 4. A lot of settings for each game type. This is unavoidable, because different game types need different settings. I opted to go for an unique option for each type. To make this process easier, hopefully, the way those settings are displayed will change. A TabControl is now going to be used. Each game mode (Arena, Constructed, Friendly, Practice) will have their own tab. When you switch the Game Mode, the settings tab will auto-change to the new mode. The vice versa will not happen; if you change the current tab's settings, the Game Mode will not change. In addition, to help clarify the difference between Custom/Basic deck settings and fields, the label now attempts to indicate which value applies for that setting. In the future, if it's possible to add things like Naxx or any other adventures, adding support though them will be easier with this setup in terms of the configuration, so that's why things are trying to be as organized as possible, even at the expense if seeming overboard now. The next beta will try this approach. 5. No more stats/run time on the main display. This was done in preparation for community driven development (even though we're not ready for it just yet). The idea behind this was simple: global wins / losses is just one small type of 'stat' that users want. By keeping it on the main gui, we're forcing users to use our stat tracking system, and anyone else who wants to make a more "customized" version now has to do so without access to the main gui controls. Hearthbuddy is no longer going to just be "one" bot that does things one specific way, but rather something that supports community development, as our other bots do. To come up with a solution that still allows the desired setup, but also provides users with the ability to have text set on the main gui, a new status bar has been added. It contains two labels, one for the left side and one for the right side. These can be set by plugins to control what gets shown on the main gui. The Stats plugin has been updated to demonstrate how this can be done though code, and here is a screenshot of a test of it (I don't set the left label yet). 6. This isn't a reported issue yet, but it's something that will be changing. Plugins are going to be handled in the GUI differently in terms of when the can be enabled/disabled. Currently, you must stop the bot first. I think those cover the biggest reported issues with the GUI for now. I do know the theme could use some improvement, and the new design needs contrast between all 3 sections to make them stand out better, but the actual visuals can be adjusted later as long as the functionality provided seems solid. The biggest thing is to not judge it solely on looks. At first glance, it does look more complicated, but hopefully once users start to try it, it feels much more intuitive. Change is never easy, but I think if people understand the reason why we're heading in a different direction for the GUI, they might give it more of a chance since the goal isn't to over-complicate things, but rather make sure we give users the features and ability to configure them as they need without having to modify files. Lastly, DefaultRoutine has not been changed yet, but will be updated to expose SF settings in the near future. A lot more work and testing is required to do that correctly first, as it involved, removing existing SF files. New Preview Album - Additional simplifications have been made based on feedback. Non-essential tabs are now hidden by default, and can be enabled though the Main settings tab.
It would be great to have an option where I could turn off the feature where the bot looks at your quests and changes the quest. I like doing quests and I want to choose whether or not to change the quest. Great job so far.
For general gui design, you may want to consider having all options/tabs exposed in a list on left hand side where each one can be easily seen and selected. The left hand pane can also have a scroll bar. This eliminates hidden options and gives you a lot of room for stuff in the right hand main pane. Keep the top pane that you currently have. Check this out for awesome ideas. https://goodui.org/
That will actually be an option and provided in DefaultRoutine. I guess I accidentally left in the code to cancel the "Beat Down" quest, and didn't think about users that might want to do it, as it was just an example to show users how quests can be processed. This is the actual code in DefaultRoutine that handles it: You need to register and have one post to see spoilers! I'll comment out the cancel part for the next version to avoid that issue. Thanks for bringing it up. Thanks for the feedback! That looks like a pretty good site, I'll give it a read over. Are you suggesting something like this (the theme really isn't that great)? The "Right side" would have the GUI contents loaded for whatever was selected. I do have comments about it, but I want to make sure I understood your suggestion correctly first.
One thing, is the "Logo" tab nessesary ? its only taking place and its not usable at all... Also with Window X, Window Y, WindowWidht, Windowheight, LastBot, Lastroutine, this is not used by "n00b" user at all you can all this fuction hide or remove to celan up code, or if you want them badly hide it and unhide by "Advenced" button, you should make this bot as simple as you can hiding all this "minor" functions wich dont have any impact on how bot play. Same with DefaultRoutine in arena it sould only occout when you select arena i think.
Yes something like that. You could even make it so the bottom pane with copy/zip/clear log could be removed from the bottom and place in the Right Side and made to be the default window. Then an option in left pane to click on when you want to see it. This would clean up the gui a bit and give you more room to display stuff when a user clicks on one of the links in left pane. You could highlight and lighten things up a bit too to make it easier on the eyes. Something like this: View image: 2014 12 25 12 45 50 great gui design examples As for the Logo that janusznazir mentioned, put a small version of it in top left like in the image I linked.
Why don't you guys have a GUI contest? Maybe some people around here are artsy, just give a detailed description of what tabs you need and etc. I'd certainly be interested
I didn't liked the login/password thing. I think just the key is very simple and fast and is the best option.
A contest won't be necessary. The idea is just get some more community feedback about things for moving forward. We do have our own visions in terms of what we want to provide, but we do understand a simpler and easier to use GUI goes a long way (not to mention users generally see things different than the devs do). Another thing to keep in mind is that we're not developing a single bot that works one specific way, and only has a set amount of features. We're moving towards a setup like our other bots where if someone wants to make their own Routine (AI, arena draft, mulligan, etc..) they can, and they'd have their own GUI to use for it as well. So for example, I do want to change the gui lib to something like MahApps, but right now, it's not justifiable with all the other stuff that needs to be done. There's nothing we can change for BuddyAuth, so that system will remain the same in terms of the Key entry. However, the process for the Key entry can certainly change, but the data cannot. There's certain things we can't do that you might otherwise be able to in other types of apps, such as being able to logout, then login with a new key. This is due to the way BuddyAuth works, so that also affects the process of things. I do think using MahApps and a theme change would make the current setup less as unappealing as it might be, but that's something we can look forward to in the future. Going though this process, I now see why EB has had some issues with people understanding things, as we never had as many users who could say what the issue was with the GUI as I've seen here. I do agree with most of the feedback on the way the old GUI was setup, so that's why I do want to move forward improving things, but I do think we're in an ok position where the bot isn't just unusable as a result (which is why we'll take some time, review feedback, and try to come up with something better). Thanks guys for all the feedback, and feel free to share anything else. I can't say we'll be able to use it all just yet, but it's good to have moving forward.
i love MahApps UI for example Hearthstone Deck Tracker its looks great tbh i would love to see it in buddy proucts.
the bot always plays cards that are playble and when you not killed him he can clear the board and im with one or 2 cards and he can do pressure is there a way to make the bot not always use cards when they can?
Please make a new thread and re-explain what you'd like, and we'll add it to all the considerations we're working with right now. This thread is just for some GUI stuff.
We've been checking out MahApps the past few days, and I think we'll be able to simplify a lot of things with this. This theme was for some EB testing, but it'll be changed for HsB. You need to register and have one post to see spoilers! What's not shown is the actual bot gui yet, because that will be redesigned. It will now most likely resemble the simple interface of our other bots (log, start button, settings buttons, plugins/tool button, and a status bar).
hi, I don't like having to manually write the deck name for playing constructed, can you please add an option so it plays with the selected one?
We'll look into this. I can understand the need for people wanting the bot to auto-quest and have the bot select a deck that fits it, which will be done in the near future, and I understand the reason why people would want the bot to select a random deck to play for more randomness (which will also be added in the near future), but I don't understand why people are having issues with telling the bot which deck they want to specifically bot with.
because my deck names are the name from the original deck I copied from the internet, some of them are quite long and with special characters, name is copied automatically when importing decks with hearthstone deck tracker
If that's the issue, you can go to "My Collection", click on the deck itself, and then click on the name to rename it, and make it something a lot easier to type. While that might seem like too much work, the alternative to get your decks and keep them updated requires a lot more inconvenience that can be avoided by just having users type the deck name they want. The reason comes down to how the HS client works, and what we're not doing in order to try and provide the safest bot implementation possible.