As I mentioned earlier, I use it in my mobile chess apps, and since they include analysis, I wanted a stronger engine for that purpose.
So I made a few more meaningful improvements. Hopefully, it will be stronger not only in self-play but also in general.
Please read the README for instructions on how to use it.
- Fastest version: Latest Node.js + tomitankChess.js
- Slightly slower on Windows: tomitankChess_70_x64_node24.exe
- Focused on reducing memory lookups (arrays/functions), which are costly in JavaScript
- Replaced Rank/File/Mirror arrays with bit manipulation
- Switched to direct indexing instead of function calls on BitBoard arrays
- Bit faster NN index (~2% NPS gain). In this workload, optimized JS performs similarly to WASM SIMD, making SIMD unnecessary complexity
- TT optimizations: improved replacement scheme, faster access, fewer lookups
- Added a custom symmetry-safe evaluation cache (~5% NPS gain even with the main TT enabled)
- Optimized pawn eval, capture eval, and NN updates
- Added plain magic bitboards (~9% NPS gain)
- Minor time-management improvements
- Overall NPS gain: ~20% (compared to 6.0)
- Same eval (HCE + small NN), retrained with a better trainer
- Estimated strength: around 3050 elo
https://github.com/tomitank/tomitankChess
More links:
Web: https://tanky.hu
Android app: https://play.google.com/store/apps/deta ... k.tanky.hu
iOS app: https://itunes.apple.com/us/app/sakk-in ... &ls=1&mt=8
I welcome any feedback.
Have fun with tomitankChess!
-Tamás