Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Looking for the best Chess960 starting position (amolas.dev)
27 points by alexmolas on Jan 22, 2023 | hide | past | favorite | 22 comments


Something I find fascinating is how a game can have a… I dunno… “Viability Curve” that isn’t just a line.

For example, my kids rarely draw in Tic Tac Toe. At their skill level, it’s a very winnable game and therefore fun game and therefore viable game. But it’s not even a viable game for two adults who have studied it for a bit. All draws all the time.

Less expert players of chess also don’t draw often. The game is sufficiently complex where practiced adults still win and lose a lot.

But then you get to grand masters and draws become common. The game, as designed, seemingly becomes less “viable.”

But I’m curious if there’s a U-shaped game out there: viable for beginners, viable for experts, tedious for intermediates.


> But then you get to grand masters and draws become common. The game, as designed, seemingly becomes less “viable.”

This is why Blizz/Rapid got popular in the chess world.

Btw: Magnus Carlsen has a life time win rate of 42%, draw rate 42% and losses at 15%

https://www.365chess.com/players/Magnus_Carlsen


I’d say many “grind” games today, such as Valorant, League of Legends, etc fit that U-shape as described. You get hooked with a fun game in the early weeks, then become addicted - while no longer enjoying the game nearly as much - as you futilely attempt to reach the upper echelons, where fame and glory (supposedly) await you.


Backgammon perhaps


Poker definitely seems to fit the bill here. There’s a lot of half decent players who never seem to stay up for long or for very much.

Might have less to do with the game and more to do with play style and discipline, though.


magic the gathering? or perhaps really most trading card 'games'.


There are some configurations where it's easy for black to blunder early on, I'm surprised they don't show white having an advantage. For example, sometimes there's an immediate diagonal threat from the queen or bishop. It could be that at the beginner level, white misses the attack and and the more advanced level black defends properly.


> In this post, I analyze all the available Chess960 games played in Lichess. With this information

> 1. I show, using bayesian AB testing, that there is not enough statistical significance to choose a variation over another. So white player could choose any variation without hindering their probabilities of winning;

That second sentence doesn’t follow at all from the first. There just could be insufficient information to uncover a difference that stil is huge.

Reading on, it also is in conflict with one of their conclusions:

> we can’t say that a variation is preferable for white than another;


"Stockfish evaluation do not predict actual winrates"

I think Stockfish evaluation gives the best answer here because people do not sit and study that very starting position. If starting position was always set to be what stockfish said to have the highest chance, there would be much more theory written on that start position hence more winrate.


> As it stands, the standard chess initial position gives white a slight edge, with white usually winning around 55% of game points

Could this be explained because this initial position has the most studied and memorized opening. And white has an advantage because he has one step ahead to choose what opening will be played.


The conventional wisdom is the opposite - study of this position has led to more draws and better performance by black.

It's not really borne out by the statistics here: White's advantage has slipped to 52-53% (can't see an overall figure for this but you can eyeball the centroid of the graph under "Past vs Future performances").

On the other hand the "draw death of chess" isn't really a thing at blitz games between 1800s. Perhaps 5% of games are drawn, compared to 80% of elite level classical games. So this is not a good data set to study this effect. It's still interesting for some of its other investigations, though, eg looking for whether some variations increase Whites advantage.


I would summarise the finding of this analysis as:

“Given current skill levels, and current levels of preparation, human players have very small differences in win rates for different 960 positions”

The general finding of computer chess is that draw rates asymptote to 100% as computer skill increases, unless you force them to play specific imbalanced starting positions.

Intermediate questions are hard to evaluate. If we made chess starting position always variation 27, how often would well prepared grandmasters win/lose?


Chess960 is such an intriguing game. Thanks for sharing!


I'd never heard of this either. I used to play something like it as a kid where each player got to secretly arrange their back row for each game. Maybe even up to 3 rows with pawns in front. We called it Chessterfield.


That sound really interesting! Did you follow any particular rules? Do you know if this is standardized some way?


Don't remember what rules we changed, I suspect there were some to deal with undesired consequences. Eventually we stopped playing chess altogether as there are many other things for kids to do.


They should post a link to the code. I’d love to explore further.


the repo with the analyses and scripts is here: https://github.com/alexmolas/chess-960


Here is another way to show that the there are not meaningful differences in the position winrates.

    # calculate cumulative black/white wins for each position
    # ignoring current result
    headers['cumul_white_points'] = headers.groupby('pos')['white_points'].cumsum().shift()
    headers['cumul_black_points'] = headers.groupby('pos')['black_points'].cumsum().shift()
    # calculate white's chance of winning given previous position results
    headers['position_prior'] = (headers.cumul_white_points +1) / (headers.cumul_black_points + headers.cumul_white_points + 2)
    # calulate difference in player ratings
    headers['rating_difference'] = headers.WhiteElo - headers.BlackElo
    headers[['white_points','position_prior','rating_difference']].corr()
    
- position_prior 0.000721 - rating_difference 0.401107


I like how you computed the correlation between positions priors and rating differences, it's simple and right to the point. Thanks for sharing :)


The link to the repo is in the first paragraph.


He linked to an earlier version of the article, but I couldn't see the actual code.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: