Winter

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

jorose
Posts: 361
Joined: Thu Jan 22, 2015 3:21 pm
Location: Zurich, Switzerland
Full name: Jonathan Rosenthal

Re: Winter

Post by jorose »

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.
-Jonathan
matejst
Posts: 365
Joined: Mon May 14, 2007 8:20 pm
Full name: Boban Stanojević

Re: Winter

Post by matejst »

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.
Archimedes
Posts: 135
Joined: Tue Mar 05, 2019 3:43 pm
Full name: Archimedes

Re: Winter

Post by Archimedes »

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).
connor_mcmonigle
Posts: 533
Joined: Sun Sep 06, 2020 4:40 am
Full name: Connor McMonigle

Re: Winter

Post by connor_mcmonigle »

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.
Great news! I look forward to seeing what you come up with.
jorose
Posts: 361
Joined: Thu Jan 22, 2015 3:21 pm
Location: Zurich, Switzerland
Full name: Jonathan Rosenthal

Re: Winter

Post by jorose »

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.
-Jonathan
User avatar
CMCanavessi
Posts: 1142
Joined: Thu Dec 28, 2017 4:06 pm
Location: Argentina

Re: Winter

Post by CMCanavessi »

jorose wrote: Tue Jul 13, 2021 5:27 pm 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.
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
Gabor Szots
Posts: 1365
Joined: Sat Jul 21, 2018 7:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: Winter

Post by Gabor Szots »

I have put two compiles here:

One is BMI2, the other is non-BMI2.
Gabor Szots
CCRL testing group
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: Winter

Post by xr_a_y »

CMCanavessi wrote: Tue Jul 13, 2021 6:04 pm
jorose wrote: Tue Jul 13, 2021 5:27 pm 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.
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.
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.
User avatar
CMCanavessi
Posts: 1142
Joined: Thu Dec 28, 2017 4:06 pm
Location: Argentina

Re: Winter

Post by CMCanavessi »

xr_a_y wrote: Tue Jul 13, 2021 6:24 pm 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.
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
matejst
Posts: 365
Joined: Mon May 14, 2007 8:20 pm
Full name: Boban Stanojević

Re: Winter

Post by matejst »

Thanks, Jonathan and Gabor.