WandererXII / lishogi

☗ lishogi.org: the forever free, adless and open source shogi server forked from lichess.org ☗
https://lishogi.org
GNU Affero General Public License v3.0
263 stars 40 forks source link

Lishogi level 1 AI should be easier for beginners #755

Closed killerducky closed 5 months ago

killerducky commented 8 months ago

The lishogi level 1 AI is too hard, beginners cannot beat it even after hundreds of tries. Here are just a few quotes from frustrated beginners at the beginning of this video: https://www.youtube.com/watch?v=S4QLDdLWwoM&ab_channel=ShogiHouse

I think YaneuraOu doesn't have a good way to provide a reasonable experience for beginners. Can we get a different bot for the lowest levels?

Maybe another option is to make it so "level 1" is actually a handicap game. I know users can already pick handicap games but they naturally assume an even game with "level 1" should be beatable (but evidence shows it is not beatable by beginners). So if it's not easy to get a better even game level 1, handicap against level 1 could be a quick fix.

WandererXII commented 8 months ago

When testing this originally I remember Yane lvl 1 being strong first few moves, but then blundering rather severely, but something probably changed. Making level 1 a handicap game could work, but it might be confusing for beginners - why are there missing pieces. I could try giving yane lvl 1 even less thinking time, or making lvl 1 be fairy, where we can maybe limit the strength better.

Yokai-2510 commented 7 months ago

The way the the engine works at level 1 is too difficult to grasp for new players. I am a beginner and I havent won a single game with Engine 1 so far. Whenever The player is close to winning , it seems like the AI switches from level 1 to level 10 .

ianfab commented 7 months ago

I could try giving yane lvl 1 even less thinking time, or making lvl 1 be fairy, where we can maybe limit the strength better.

I don't think reducing thinking time would help or even be possible, since the lower levels AFAIK already use depth 1. Essentially already depth 1 is way too strong, so only intentional mistakes rather than handicapping search can help.

As far as I could see in the code YaneuraOu just like Fairy-SF also simply took over the skill level mechanism from Stockfish, which is very restricted in terms of reaching low Elo. In Fairy-SF I simply extended the scale of this mechanism a bit on the low end to allow more beginner friendly settings. This change could likely fairly easily be taken over to YaneuraOu if desired, or Fairy-SF could be used directly. If someone wants to try, level 0 on pychess is relatively close to the weakest settings in Fairy-SF, although even that still doesn't use the absolute minimum skill setting, but the difference likely wouldn't be too big.

Yokai-2510 commented 7 months ago

I could try giving yane lvl 1 even less thinking time, or making lvl 1 be fairy, where we can maybe limit the strength better.

I don't think reducing thinking time would help or even be possible, since the lower levels AFAIK already use depth 1. Essentially already depth 1 is way too strong, so only intentional mistakes rather than handicapping search can help.

As far as I could see in the code YaneuraOu just like Fairy-SF also simply took over the skill level mechanism from Stockfish, which is very restricted in terms of reaching low Elo. In Fairy-SF I simply extended the scale of this mechanism a bit on the low end to allow more beginner friendly settings. This change could likely fairly easily be taken over to YaneuraOu if desired, or Fairy-SF could be used directly. If someone wants to try, level 0 on pychess is relatively close to the weakest settings in Fairy-SF, although even that still doesn't use the absolute minimum skill setting, but the difference likely wouldn't be too big.

I finally beat level 1 , I think the main issue is like I already said , the AI tries to win as effeciently as possible whenever the player is about to close to winning (I have observed it to be mate in 4-5 moves or when the player has gained significant material advantage and promotions ) . And I think this should be rectified ASAP as new players starting shogi will eventually most likely leave if they're not able to beat level 1. I have played shogi on multiple apps , all of the level 1 engine (even level 5 ) is much easier than level 1 of lichess. A bit of tweaking of the engine is required though to make level 1 actually level 1 .

WandererXII commented 7 months ago

Thanks for the detailed reply. I will change the first level to fairy and move the other difficulties around. I will push the changes to shoginet when I update lishogi.

WandererXII commented 5 months ago

Done - https://lishogi.org/blog/post/ZcQjlRAAACMAgvrF