I don't want to say too much, but I have been getting a lot more motivated to work on computer chess again
I finally got around to testing a pull request made back in March (thanks again to Anurag Singh) which added support for Android. Support relies on an open source header file which I removed from the repository as it was too large for my taste and I didn't want to think about license implications. The patch author didn't have to change much code so I can recommend looking into the SSE2Neon headers for anyone looking to add Android support to their engines. The compilation instructions are pretty straightforward and if people need help I might upload a binary to google drive or something similar
The next step for Winter is Chess960 / Fischer Random support. This is something I have wanted to do for a while already, but have somehow hesitated. I also want to learn how to integrate network files into the binary without relying on a header file with all the weights. This approach has been fine so far as my networks have been very small, but there are ideas I have involving larger nets (eg some forms of policy nets).
The last point I have been thinking about is Summer; Winters alter ego. Current plan is for Summer to be an engine which is more general than Winter and almost certainly much weaker. Summer will start with a lot of the more boilerplate code from Winter: magic bitboards, bit level functions, etc. My thinking is I initially want to approach things as if I was unfamiliar with the game I am programming for and just relying on things I learned from computer chess that worked. This means I would implement things like LMR and null move pruning, as I would assume they could work in a wide variety of games, but perhaps not quiescent search, which seems more chess specific, even if fairly generalize-able.
My thinking here is for either Summer to become a general game playing agent that can play other games, such as Ataxx, or alternatively incrementally adding more Elo gaining features coming from a different angle than Winter. The idea is that depending on what features a program has, other search or evaluation features may be more or less effective. This means there is a risk programs end up in similar local optima.
I have to stress here not to have high expectations in Summer. I cannot even guarantee I will ever release it, and can almost guarantee it will never become stronger than my primary engine, Winter. It is more of a side-side-project where I feel I can be more experimental and playful. There is not even a guarantee the strength will not get worse between versions.
Winter
Moderators: hgm, Rebel, chrisw
-
- Posts: 361
- Joined: Thu Jan 22, 2015 3:21 pm
- Location: Zurich, Switzerland
- Full name: Jonathan Rosenthal
Re: Winter
-Jonathan
-
- Posts: 365
- Joined: Mon May 14, 2007 8:20 pm
- Full name: Boban Stanojević
Re: Winter
Keep on with the good work, Jonathan! I hope there will be a new version of Winter asap.
Jonathan Kreuzer (SlowChess) has shown that nets do not have to be huge to be efficient, and I am sure that you will be able to improve the positional aspects of Winter rapidly, combining several nets for different phases of the game. I still use Winter for analysis of certain types of positions (especially now when I am used to its idiosyncrasies, e.g. wait until depth 22/23 to get a reliable line, or to be careful in tactical positions, when it can miss some hidden possibilities; use it more in position with lot of pieces -- change engine in simple middlegames/endgames).
And, I would like to make something clear, if it was not already: I use engines for chess -- Rodent IV to play training games, Wasp, Winter or SlowChess to analyse openings, middlegames and endings. Since this epidemic started, I found time to play and learn chess again. I value originality a lot, and, from a practical standpoint, at my level (I am losing/barely winning against Rodent at 1350 elos), using Wasp, Winter or SF does not make a noticeable difference. And, this way, I show some support, and my sincere appreciation to the authors.
Jonathan Kreuzer (SlowChess) has shown that nets do not have to be huge to be efficient, and I am sure that you will be able to improve the positional aspects of Winter rapidly, combining several nets for different phases of the game. I still use Winter for analysis of certain types of positions (especially now when I am used to its idiosyncrasies, e.g. wait until depth 22/23 to get a reliable line, or to be careful in tactical positions, when it can miss some hidden possibilities; use it more in position with lot of pieces -- change engine in simple middlegames/endgames).
And, I would like to make something clear, if it was not already: I use engines for chess -- Rodent IV to play training games, Wasp, Winter or SlowChess to analyse openings, middlegames and endings. Since this epidemic started, I found time to play and learn chess again. I value originality a lot, and, from a practical standpoint, at my level (I am losing/barely winning against Rodent at 1350 elos), using Wasp, Winter or SF does not make a noticeable difference. And, this way, I show some support, and my sincere appreciation to the authors.
-
- Posts: 135
- Joined: Tue Mar 05, 2019 3:43 pm
- Full name: Archimedes
Re: Winter
The sse2neon header file works perfect. Engine is stable and there are no crashes during tournaments on Android so far. Thanks again to Anurag Singh for his research (few month ago, when there was no build in support for Android).
-
- Posts: 533
- Joined: Sun Sep 06, 2020 4:40 am
- Full name: Connor McMonigle
Re: Winter
Great news! I look forward to seeing what you come up with.jorose wrote: ↑Fri Jul 09, 2021 9:20 am I don't want to say too much, but I have been getting a lot more motivated to work on computer chess again
I finally got around to testing a pull request made back in March (thanks again to Anurag Singh) which added support for Android. Support relies on an open source header file which I removed from the repository as it was too large for my taste and I didn't want to think about license implications. The patch author didn't have to change much code so I can recommend looking into the SSE2Neon headers for anyone looking to add Android support to their engines. The compilation instructions are pretty straightforward and if people need help I might upload a binary to google drive or something similar
The next step for Winter is Chess960 / Fischer Random support. This is something I have wanted to do for a while already, but have somehow hesitated. I also want to learn how to integrate network files into the binary without relying on a header file with all the weights. This approach has been fine so far as my networks have been very small, but there are ideas I have involving larger nets (eg some forms of policy nets).
The last point I have been thinking about is Summer; Winters alter ego. Current plan is for Summer to be an engine which is more general than Winter and almost certainly much weaker. Summer will start with a lot of the more boilerplate code from Winter: magic bitboards, bit level functions, etc. My thinking is I initially want to approach things as if I was unfamiliar with the game I am programming for and just relying on things I learned from computer chess that worked. This means I would implement things like LMR and null move pruning, as I would assume they could work in a wide variety of games, but perhaps not quiescent search, which seems more chess specific, even if fairly generalize-able.
My thinking here is for either Summer to become a general game playing agent that can play other games, such as Ataxx, or alternatively incrementally adding more Elo gaining features coming from a different angle than Winter. The idea is that depending on what features a program has, other search or evaluation features may be more or less effective. This means there is a risk programs end up in similar local optima.
I have to stress here not to have high expectations in Summer. I cannot even guarantee I will ever release it, and can almost guarantee it will never become stronger than my primary engine, Winter. It is more of a side-side-project where I feel I can be more experimental and playful. There is not even a guarantee the strength will not get worse between versions.
-
- Posts: 361
- Joined: Thu Jan 22, 2015 3:21 pm
- Location: Zurich, Switzerland
- Full name: Jonathan Rosenthal
Re: Winter
I don't want to spam forum with every little patch, but version 0.9.5 adds support for Fischer Random / Chess960, which feels like a feature some people care about.
Winter's implementation should actually support positions with vertically asymmetric castling. So you could expand the starting positions to 960 * 960 positions by removing the constraint of vertical symmetry. Unfortunately, I don't know whether any GUIs support such a feature, but I would find it useful.
I can't really make any Windows compiles until at least the 25th, so if someone would like a binary, we would need some support. Probably I will release version 1.0 with less Elo gain than previous versions due to how long it has been since the last version. That being said, I will probably still make a couple patches before that point.
Winter's implementation should actually support positions with vertically asymmetric castling. So you could expand the starting positions to 960 * 960 positions by removing the constraint of vertical symmetry. Unfortunately, I don't know whether any GUIs support such a feature, but I would find it useful.
I can't really make any Windows compiles until at least the 25th, so if someone would like a binary, we would need some support. Probably I will release version 1.0 with less Elo gain than previous versions due to how long it has been since the last version. That being said, I will probably still make a couple patches before that point.
-Jonathan
-
- Posts: 1142
- Joined: Thu Dec 28, 2017 4:06 pm
- Location: Argentina
Re: Winter
Awesome, just when I started my FRC "Top 20" tournament. Will include Winter in it when you finally release it (waiting also for Minic, Ethereal and GUI bugfixes). It'll probably replace Rybka.
Follow my tournament and some Leela gauntlets live at http://twitch.tv/ccls
-
- Posts: 1365
- Joined: Sat Jul 21, 2018 7:43 am
- Location: Szentendre, Hungary
- Full name: Gabor Szots
Re: Winter
I have put two compiles here:
One is BMI2, the other is non-BMI2.
One is BMI2, the other is non-BMI2.
Gabor Szots
CCRL testing group
CCRL testing group
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: Winter
How much can you wait for Minic ? The pondering issue is fixed but I need time to generate the new net for the 3.09 release.CMCanavessi wrote: ↑Tue Jul 13, 2021 6:04 pmAwesome, just when I started my FRC "Top 20" tournament. Will include Winter in it when you finally release it (waiting also for Minic, Ethereal and GUI bugfixes). It'll probably replace Rybka.
-
- Posts: 1142
- Joined: Thu Dec 28, 2017 4:06 pm
- Location: Argentina
Re: Winter
No problem, as long as it takes. For now all the other engines are playing and I'm fiddling with the schedule to skip all minic and ethereal games. When 3.09 is released, it will play all the games until it catches up with the rest.
Follow my tournament and some Leela gauntlets live at http://twitch.tv/ccls
-
- Posts: 365
- Joined: Mon May 14, 2007 8:20 pm
- Full name: Boban Stanojević
Re: Winter
Thanks, Jonathan and Gabor.