-
Notifications
You must be signed in to change notification settings - Fork 8
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
🍼 Provide easier / faster modes of playing against bots #322
Comments
If this is what it sounds like, it’s exactly what I need. I’ve never played Go before but would love to get started (big bonus to be playing an open source Rust game at the same time!) if the AI can go a bit easy on (I.e have an “easy” difficulty mode) me in the beginning. |
Yeah, I'm in the same boat. I don't think I'll ever be able to beat this AI. So I want to eventually try running the AI using a time-constrained search as mentioned (which will also be a nice option because the player won't need to wait as long for the move to be computed). And if THAT doesn't make it easy enough for newer players, there is another fallback option which would involve a bit more plumbing: I could potentially run a copy of GnuGo https://www.gnu.org/software/gnugo/ in the AWS instance and turn its difficulty way down. Unlike KataGo AI, which is analogous in design to the AlphaGo/AlphaZero AIs that have received so much popular press coverage, GnuGo is a simpler, rule-based system that doesn't involve neural nets or any of that newfangled magic. For beginners, it's still quite challenging to play |
This config for KataGo looks like what we want. Having a 2 second search time would be an interesting start. Maybe I could win a game 😂 |
Work is under way in #429 |
Constraining the KataGo search space to two moves still yields a relatively difficult opponent. At least for me (a rank novice). I'm considering how to advance this issue: potentially by only offering two modes of play, "hard" and "impossible". 😁 The alternative, which will take more time to implement, but which is probably a better path: use GnuGo on a low difficulty setting for our "easy mode", and use KataGo AI for "hard" and "impossible" modes. |
One good thing to note about the recently merged work : KataGo is much faster to play with the search space limited |
Just received a report that a friend was able to beat KataGo instant play! We are considering adding an intermediate difficulty. Instant play currently looks at the board TWICE, but full strength looks at it 500 times. Since my skill level is low, it's hard to personally gauge the difference between these two settings - - but my friend might be a good Guinea pig! |
Raised #454 |
KataGo is faster now. #440 will track easier modes of play |
Description
Constrain KataGo play time to provide an easier mode of play.
Implementation plan (first pass, KataGo only)
You only use one instance of tinybrain for this plan.
botlink/bot-model
(Upgrade shared structs in botlink #429)maxVisits
param as JSON for the request to KataGo. /~https://github.com/lightvector/KataGo/blob/master/docs/Analysis_Engine.mddifficulty
tomax_visits
asconst EASY_MAX_VISITS: u16 = 20;
etc, pass to tinybrain; replace use ofconst DEFAULT_MAX_VISITS
Evaluation (first pass, KataGo only)
We hope this approach works. In botlink/src/max_visits.rs we picked arbitrary values for the difficulty levels. Is the AI considered easy with even tiny values passed?
maxVisits
is tied to what is cached. You'll get a diff search using two differentmaxVisits
Release plan (first pass, KataGo only)
Long-term plan: add easier modes of play using an alternative bot
The text was updated successfully, but these errors were encountered: