Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Opponent Deck Prediction #6

Closed
flipperbw opened this issue Jun 4, 2014 · 6 comments
Closed

Opponent Deck Prediction #6

flipperbw opened this issue Jun 4, 2014 · 6 comments

Comments

@flipperbw
Copy link

Officially logging this and assigning it to me, though anyone else can feel free to take.

Feature:
Depending on cards played, hero powers, and the hero class itself, use a database of known common deck archetypes to predict the most likely decklists for opponents.

Step 1:

  • Create decklists with alternative card choices based on most commonly played decks (not sure at the moment of the best source of this. Possible inclusions are aggregation sites like Hearthpwn, major tournament decklists, etc.)
  • This can be automated in the future for auto-meta adjustments.

Step 2:

  • Upon each opponent action (include the Power logger here to get hero powering), check against the database for each hero to determine what the most likely decklist is

Step 3:

  • Show the decklist below or in conjunction with the cards already played, somehow taking alternative card choices into account (i.e. Argent Commander vs. Leeroy Jenkins in some builds).
  • Differentiate between these cards and the cards common to basically every decklist (Swipe is always in a Druid deck).
  • Perhaps show all the class cards as well. (useful for arena)
  • On the topic of Arena, consider utilizing tools like Trump's Arena Value list to guess decklists (more difficult)

Step 4:

  • Parse each card and determine the maximum damage that one can expect from the opponent next turn (i.e. Swipe will be 4/1, but on turn 6, Thalnos + Swipe is 5/2).
  • This can be expanded to your own deck, including a lethal-o-meter (more difficult)
@azeier
Copy link
Member

azeier commented Jun 4, 2014

Somewhere in 2/3:

  • Display chances of the opponent having cards next turn (hand + next draw)

Somewhere in step 4 or later:

  • detect that the opponent probably does not have a certain card on hand if he did not play it on a turn where he would've gotten good value for it. So if we had a 4/4, a 3/1 and a 2/1 on the board on turn 4, but the opponent-druid did not swipe, chances are he does not have one in hand.

@flipperbw
Copy link
Author

That last one is very good, but I suspect extremely difficult to implement. It's pretty obvious in the Swipe example, but for it to apply across the spectrum of all cards we'd need to basically build a game state analyzer that determines the optimal play in a given scenario. I'd say that's much further down the line.

@scotchfist
Copy link

Sorry, I'm new to github, is there a beta version of this feature available for download?

@anonymous555
Copy link
Contributor

A paper came out describing how to predict cards. That's the way to go... predict cards, not entire decks.

https://cdn.elie.net/talks/I-am-a-legend-defcon-22-slides-final.pdf

@cleanunicorn
Copy link

I've read that paper and some of the materials associated to it and my understanding is that you can predict the next card while his turn is active. This means that you cannot do anything while he is playing that card and the n-gram makes sense only after he played a card. This looks more like an exercise than a useful feature.

https://www.elie.net/blog/hearthstone/predicting-hearthstone-opponent-deck-using-machine-learning#.VACASfmSx8E

@azeier
Copy link
Member

azeier commented Sep 2, 2014

http://www.elie.net/blog/hearthstone/i-am-a-legend-hacking-hearthstone-with-machine-learning-defcon-talk-wrap-up

Why we are not releasing our tool?
One thing you won’t see posted, however, is a software tool that we promised to release during our Defcon presentation. Following Defcon we had a series of conversations with the Hearthstone team about our research — apparently the email that I sent prior to Defcon didn’t reach the right person. They like our research on game/cards balance and are very enthusiastic and supportive about it.

On the other hand, they were very concerned that our real time dashboard that can predict your opponent’s deck will break the game balance by giving that person (that is, whoever has the tool) an unfair advantage. They also expressed concern that such a tool makes the game less fun by taking away some of the decision-making from the player. It was a difficult decision — I invested a lot of our time building our real-time dashboard tool with Celine — but we agree with the Hearthstone team and will not release the tool publicly.

So this is probably no longer a good idea (for this project).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

5 participants