Skip to content
New issue

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

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

Already on GitHub? # to your account

Add different arrows for two engines #33

Open
trashpro7 opened this issue Nov 16, 2024 · 8 comments
Open

Add different arrows for two engines #33

trashpro7 opened this issue Nov 16, 2024 · 8 comments

Comments

@trashpro7
Copy link

trashpro7 commented Nov 16, 2024

It would be very useful if it were possible to configure an arrow color for a strong engine, for example Stockfish 16, and an arrow of another color for a more "human" engine like Maia 1900, to simulate a human when the strongest engine's move is very weird, counterintuitive or impractical.

Just a suggestion

@Hakorr
Copy link
Collaborator

Hakorr commented Nov 22, 2024

This is already possible, no?

@mattt720
Copy link

This is already possible, no?

Yes, inherantly.

I'm a big fan of what you've made, so far I just have some questions;

  1. Has your opinion changed of Lc0 since implementing Maia-1100? What do you think of it in terms of human-likeness?
  2. Is there any combination of engines / settings you've found particularly favourable in terms of human-like performance?
  3. Are there any other engines you might plan on adding in the future?

Thank you again for what you do, it's a great learning tool for someone like me who struggles to map things out in my head.

@Hakorr
Copy link
Collaborator

Hakorr commented Nov 24, 2024

  1. It's more realistic than Stockfish, however relying solely on engine moves regardless of Lc0 or Stockfish is detectable as far as I know. There doesn't seem to be an engine out there which can imitate a human perfectly. Maybe with heavy modifications and making sure correct move times are followed, one could automate a certain ELO playstyle quite accurately.
  2. There is no config which wouldn't get you banned if you used the moves the engine suggested too much. Just keep the engine's skill levels low and keep your playing style consistent across games.
  3. I'll add more engines as I discover them. They need to be built for WASM/JavaScript, be open source and licensed in a way I can use them. For example I could add the Chess.com Komodo engine and such however that would break their license, so I won't.

Thank you again for what you do, it's a great learning tool for someone like me who struggles to map things out in my head.

Thanks, do you have any feature suggestions that would help with your learning?

@mattt720
Copy link

mattt720 commented Dec 1, 2024

  1. It's more realistic than Stockfish, however relying solely on engine moves regardless of Lc0 or Stockfish is detectable as far as I know. There doesn't seem to be an engine out there which can imitate a human perfectly. Maybe with heavy modifications and making sure correct move times are followed, one could automate a certain ELO playstyle quite accurately.
  2. There is no config which wouldn't get you banned if you used the moves the engine suggested too much. Just keep the engine's skill levels low and keep your playing style consistent across games.
  3. I'll add more engines as I discover them. They need to be built for WASM/JavaScript, be open source and licensed in a way I can use them. For example I could add the Chess.com Komodo engine and such however that would break their license, so I won't.

Thank you again for what you do, it's a great learning tool for someone like me who struggles to map things out in my head.

Thanks, do you have any feature suggestions that would help with your learning?

I agree in relying on any engine is pointless, but rather being able to play the most human-like engine infinitely helps, given stockfish's repitoire of strange non-human moves and pointless blunders.

In terms of features, I have nothing specific but can happily try contribute some value:

  • An [opening / endgame] feature that could highlight how to, according to chess literature, respond to detected [openings / endgames] or execute them when specific positions are aligned.
  • Blunder detection (e.g. highlight arrow red if blunder) & feedback or Move explaination (not sure how these would be done - perhaps feeding the FEN to something like an LLM or via API?): A low-level player like me would love to further understand the moves of higher up players, rather than having to figure them out on my own board. The blunder detection would be good so users can know what engine suggested non-top move options would and wouldn't be blunders?
  • Heatmap feature or pattern recognition feature? Heatmap could be post-game whilst pattern recognition could be real-time in identifying known piece formations and possibly their pros & cons.
  • Lastly, top-engine / high-engine move detection. I'd like to know which players require reporting easily given I'm unsure how to distinguish a cheater who mixes in human moves with engine ones. Repeating highlighted top/high-engine moves could go towards a counter, or simply notify the player. (though I can easily imagine how difficult this would be given endless engine variations so maybe just something that flags a number of stockfish moves?)

I acknowledge and apologise for how large / difficult they may be to implement as I'm unsure of your restrictions given I'm not an experienced coder either. Hope these might be of some use or inspiration and would definitely help beginners such as myself.

@trashpro7
Copy link
Author

trashpro7 commented Dec 13, 2024

  1. It's more realistic than Stockfish, however relying solely on engine moves regardless of Lc0 or Stockfish is detectable as far as I know. There doesn't seem to be an engine out there which can imitate a human perfectly. Maybe with heavy modifications and making sure correct move times are followed, one could automate a certain ELO playstyle quite accurately.
  2. There is no config which wouldn't get you banned if you used the moves the engine suggested too much. Just keep the engine's skill levels low and keep your playing style consistent across games.
  3. I'll add more engines as I discover them. They need to be built for WASM/JavaScript, be open source and licensed in a way I can use them. For example I could add the Chess.com Komodo engine and such however that would break their license, so I won't.

Thank you again for what you do, it's a great learning tool for someone like me who struggles to map things out in my head.

Thanks, do you have any feature suggestions that would help with your learning?

The best way to learn chess is with pattern recognition, and playing with Maia 1900 has helped me a lot. The developers have released "Maia Individual" (https://github.com/CSSLab/maia-individual) which allows you to train Maia on games played by a specific player, and it can guess 65% of the moves that particular player would make, while playing like a human. It would be very useful if it were possible to load lc0 weights in A.C.A.S from the computer, but I don't know how challenging that would be. With that, it would be possible to train Maia (locally) on games from a specific rating range, or from a specific Grandmaster, and then load the weight file in A.C.A.S as external assistance.

@Hakorr
Copy link
Collaborator

Hakorr commented Dec 14, 2024

With that, it would be possible to train Maia (locally) on games from a specific rating range, or from a specific Grandmaster, and then load the weight file in A.C.A.S as external assistance.

Very good idea, I like that it could mimic the player's own playing style.

@trashpro7
Copy link
Author

trashpro7 commented Dec 24, 2024

With that, it would be possible to train Maia (locally) on games from a specific rating range, or from a specific Grandmaster, and then load the weight file in A.C.A.S as external assistance.

Very good idea, I like that it could mimic the player's own playing style.

Thank you. Do you have any plans to add what I suggested, about "Maia Individual", or is it not a realistic goal? I intend to close the issue. Although the original issue has already been answered, I thought it would be better to present my proposal in this same issue, instead of opening another one, so as not to be annoying.

Regarding the "move time", it would be interesting to be able to set a time until the arrow appears in the screen, in a range, for example, 3.0 to 5.0 seconds, estimating a human average in each format (bullet, blitz, rapid), so the player would avoid playing too fast (suspicious). The engine move time setting sets a maximum, not a minimum. Even setting it to 2000ms often results in the arrow appearing instantly.

@Hakorr
Copy link
Collaborator

Hakorr commented Dec 24, 2024

Your original suggestion is a bit harder to add so it's a feature for the future, I didn't want to close this issue since it has great conversation and ideas I want to come back to.

The idea of a minimum move time is good, and easy to add. I'll probably add it along the next update.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants