The site has moved to a new server, and there are now some issues to fix. Please report anything needing fixing with a comment to the homepage.

The Chess Variant Pages

[ Help | Earliest Comments | Latest Comments ]
[ List All Subjects of Discussion | Create New Subject of Discussion ]
[ List Latest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]

Latest Ratings and Comments

Later Reverse Order EarlierEarliest
Setup graphics, piece sets[Subject Thread] [Add Response]
H. G. Muller wrote on 2022-10-03 UTC

There is a 'Restart' button in the AI panel (which would start a new game, but shuffle the pieces in case of a shuffle variant), as well as a |< navigation button for getting back to the initial position of the current game (undoing all manipuations that were made so far). But you would have to open the AI panel to see those buttons. I never payed much attention to this, because the browser refresh seems an alternative that works just as well.

Slowless in loading is in a sense a self-inflicted problem: I let the Diagram script intentionally delay 1 second before executing the code that creates it. This was to solve the problem that comment pages contain multiple Diagrams, each of the comments referring to the script (because at the time they were posted the user assumed he would have the only comment with a Diagram on that page). If the first Diagram then immediately starts executing the script, the other Diagrams might not have been loaded yet. Ideally the script should only execute after the page has completely loaded. I tried to do that using onload="Init()", but that never was executed. Probably I was doing something wrong, but I have no idea what.

In principle generating the Diagram with the script should be very fast, probably faster than loading a dedicated image. Because the JavaScript and piece images should all come from the browser cache, if you have viewed other pages with Interactive Diagrams and the same pieces from the same set before. A dedicated image would be specific for the page you are loading, and you would most likely not have seen it before.

Ben Reiniger wrote on 2022-10-03 UTC

I'm spinning off a discussion from Sac Chess around piece set images to a separate thread (moving the last two which didn't discuss Sac Chess at all, but leaving a couple that are split-subject).

what do you see as a disadvantage for using Interactive Diagrams as the main diagram? -- H.G. Muller

I see two minor downsides to the interactive diagram as the main/first/only setup display: it takes a little longer to load, and after making use of the interactivity it is no longer a setup diagram (requires a refresh, or is there a button for reset now?).

The interactive diagram has the benefit of also supplementing the Piece descriptions (position-specific and interaction-specific piece rules are needed in addition, and for accessibility a text move description should always appear) and giving some Playability.

What I think would be nice is to have buttons over the graphic which switch all page graphics between the options. -- Greg Strong

A graphics selection button would be nice, although of course it wouldn't apply to pages requiring (or otherwise using) custom images. Perhaps even better, we could take to setting some more user-specific configurations, and let a logged-in user automatically use their favored piece set when possible?

Fergus requested I use [abstract diagrams] Kevin Pacey

If I found the comments you're referring to, I wouldn't characterize it as a request, and I'm sorry if it came across as an editorial request. You should feel free to use whatever graphics you want. (I guess I should caveat that: we do strongly encourage using the site's tools when possible for consistency, and using piece graphics that are traditionally used for corresponding pieces.)

Looking for [Subject Thread] [Add Response]
Jean-Louis Cazaux wrote on 2022-10-03 UTC

I would find useful to have "What's New" appearing directly on the "Explore" menu of the top bar.

If I'm not wrong, it only appear under "Topic Index" in the "Explore" menu, which is a bit burried.

This is just a suggestion

Switching servers[Subject Thread] [Add Response]
Fergus Duniho wrote on 2022-10-01 UTC


Fergus Duniho wrote on 2022-10-01 UTC

Since the Hostslayer website remains down, I do not know whether the HostSlayer account will continue after today. It might auto-renew and automatically charge me like it did last year, or it might not. Since I have a backup server with RackNerd, I will backup everything there and switch the DNS for to point to the same place as It may take a while before this fully propagates.

I have been trying to get email to work there without success. I can send and receive internal email, but I have been having lots of trouble with external email. Once we start using the new server, I may need to fix some things.

Chess programs move making[Subject Thread] [Add Response]
Gerd Degens wrote on 2022-09-22 UTC

That sounds plausible.

Greg Strong wrote on 2022-09-20 UTC

By the way, details about programming are not clear for most people. How to deal with it?

I don't think there is any "fix" to this issue.  I am not sure there is any issue at all.  Some conversations are going to involve things other people don't understand.  That said, the talkchess forums are the usual place for these kinds of discussions, but I am happy to have some discussion here as well.  Some people who are not chess programmers may still be interested in whether the new neural-network techniques being applied to orthodox chess can be applied to chess variants.

Aurelian Florea wrote on 2022-09-20 UTC

I did not meant the typo!

Gerd Degens wrote on 2022-09-20 UTC

What is not understandable? Typo! What else.
By the way, details about programming are not clear for most people. How to deal with it?

Aurelian Florea wrote on 2022-09-20 UTC

I'm not sure I understand what you say, HG!

H. G. Muller wrote on 2022-09-20 UTC

Indeed. Hard to avoid typos on these virtual keyboards of Android devices... I corrected it.

Aurelian Florea wrote on 2022-09-20 UTC

I do not understand "tgat". You probably meant that.

H. G. Muller wrote on 2022-09-20 UTC

That describes the 'policy head' of the NN, which is used to bias the move choice (which is otherwise based  on the number of visits of the move and that of the total for the node, and the move scores) when walking the tree from root to leaf for finding the next  leaf to expand. But my understanding was that when the leaf is chosen and expanded, all daughters should receive a score from the 'evaluation head' of the NN in the position after the move, rather than just inheriting their policy weight from the position before the move. These scores are then back-propagated towards the root, by including them in the average score of all nodes in the path to the expanded leaf.

Aurelian Florea wrote on 2022-09-19 UTC

The NN outputs a probability distribution over all the possible moves (illegal moves are set to 0 and the probabilities sum to 1). The MTCS call for this distribution, combine it with an exploration coefficient and Dirichlet noise, to form a score, and choses a move to expand until a certain number (in chess is 6000) of nodes have been visited. Nodes are expanded until leaf nodes are explored. This link explains it better than I:

H. G. Muller wrote on 2022-09-19 UTC

I thought AlphaZero used the output of its NN for evaluating leaf nodes. That makes it different from 'normal' MCTS, which would randomly play out games until they satisfy a win or draw condition, and uses the statistics of such 'rollouts' as a measure for the winning probability in the leaf.

Aurelian Florea wrote on 2022-09-19 UTC

Thanks Greg, My conundrum comes from the definition of leaf nodes. In the traditional way you apply the evaluation function, but in the MCTS of Alpha zero are only when the endgame conditions apply.

Greg Strong wrote on 2022-09-18 UTC

A quick overview for those who are interested ... A traditional Chess program has 3 parts:

Move Generation - Given a position, find all legal moves for the side on the move.

Search - Recursively play out moves and counter-moves to find the best sequence (called the PV or Principal Variation.)

Evaluation - At the leaf nodes on the end of each search path, evaluate the position. This function returns a number - the more positive, the better for player 1, the more negative, the better for player 2.

Chess variants. To program a chess variant, you definitely need to change Move Generation. You probably also need to change the Evaluation function. If nothing else, at least give material values to the new piece types. This is the most pronounced of all the evaluation terms. But other things may need to be altered -- for example, pawn structure is important, but should not apply to Berolina Chess.

The Search is typically extended by something called a Quiescent Search. The Evaluation function cannot reliably detect pins, forks, hanging material, etc., which would all affect the evaluation a lot. So, the Evaluation function can only be used on "quiet" ("quiescent") positions. So after the search function searches all legal moves to the desired depth, it then hands off to Quiescent Search, which continues searching recursively, but searches only captures (and, in some programs, checking moves too, but this isn't common in chess variant engines.) This way, all exchanges in progress are played out and hanging pieces are captured before the position is evaluated.

So, with that background on Quiescent Search ... Remember how I said the Search function doesn't need to change for different variants? Well, that's not entirely true. For some variants, like Shogi (or other variants with drops), or double-move variants, there are no "quiet" positions. So traditional Quiescent Search doesn't work. Other approaches must be taken. ChessV doesn't modify the Search function for different variants at all. That's why it doesn't play Shogi. It does play Marseillais Chess, but I haven't modified the Search, I'm basically just sweeping the issues under the rug... I don't know how Zillions-of-Games works for certain, but I believe it has no Quiescent Search function at all. It modifies the Move Generator to support different games, but there is no variant-specific Search or Evaluation.

ChessV handles the Evaluation by building it from various elements that can be turned on, off, or configured. (Pawn structure, king safety, outposts, colorbinding, open file bonuses, castling rights, etc.) You can find out basically everything ChessV does for every game it plays by looking at the Game Reference:

H. G. Muller wrote on 2022-09-18 UTC

Well, it is a bit more subtle than that, because you would not know what line B leads to without searching it first. And after you have done that, it is too late to prune it. So what really happens if that after you have found the single reply to the first move of line B that leaves you stuck with the doubled Pawns, you consider the first move of B refuted, and you prune the remaining replies to it.

But you are right in the sense that positional characteristics can also be sufficient reason to reject a move. This is purely a matter of evaluation, though. Whatever search method you would use, it should in the end give you the line to the position with the best evaluation that you can force (the 'principle variation'). If there is no mate in view the evaluation of positions must be based on heuristics. Piece values are one such heuristic. In general one should base the evaluation only on features that are not easily changed. Otherwise it would be pretty meaningless, as you know the game must go on from there (even though it is beyond your capability to take into account what will happen then), and if the feature would in general not persist after the next move it is pointless to optimize it. But next to material composition pawn structure is definitely a persistent feature (with FIDE or Shatranj Pawns!). King safety as well, when the King is a slowly moving piece.

What you will have to consider in evaluation can indeed depend very much on the rules of the variant. Using a neural network for evaluation (as both AlphaZero and NNUE do) and training that on positions from games is a method to avoid having to think about that yourself; you hope the NN is clever enough to recognize the important features, and quantify their importance. Whether this leads to different pruning in alpha-beta search is of no importance; this kind of pruning is guaranteed to have no effect on the principal variation that will be found. With or without pruning this would be the same. The pruning is just an optimization to get that same result, which was fully specified by the evaluation of the tree leaves, without wasting time on lines that neither of the players would want to play.

From conventional chess engines it is known that pawns on the forelast rank, and king safety can have values comparable to the material value of a minor.

Kevin Pacey wrote on 2022-09-17 UTC

Hi H.G.

My memory/understanding may be off, but I thought if for a chess engine line A is at least = and line B results in doubled isolated pawns without compensation, then line B would be pruned out. It's not due to material loss (e.g. a pawn for nothing) but rather due to chess-specific knowledge (that doubled isolated pawns are bad if not compensated for). I could imagine a CV where the opposite might be true, depending on the rules of movement or topology of the board, i.e. where doubled pawns might be good (e.g. in a game of Berolina's Pawns).

H. G. Muller wrote on 2022-09-15 UTC

The only moves that are pruned in an alpha-beta search are those whose score could not possibly affect the move choice at the root, because they are in a branch that has already been refuted. E.g. if you find that in a position that is at least equal (i.e. you have already searched a move that does not lose anything), and an alternative move has a reply that loses a pawn without compensation, you would consider that alternative move refuted. It would be a waste of time to continue searching other replies to the move, in order to determine whether these make you lose even more. Because losing a Pawn is already bad enough to dissuade you from playing that alternative move.

This is purely determined from the scores of the moves; you don't need any variant-specific knowledge for it.

Aurelian Florea wrote on 2022-09-15 UTC

Ok, HG, I could have misconstrued something. But from what I understand I'd have to cut some moves while doing the alpha beta search. For example, after a certain number of plies. And then do the classification learning. Have you said something else? Anyway, I was saying that I can use handcrafted features at input to the neural network.

H. G. Muller wrote on 2022-09-15 UTC

What pruning? Alpha-beta search only prunes after a beta cutoff, and this does not require any knowledge about the variant.

Aurelian Florea wrote on 2022-09-15 UTC

I meant the pruning!

H. G. Muller wrote on 2022-09-14 UTC

What do you mean? Alpha-beta search is always the same, no matter what variant it is used for. It does not even have to be a chess variant. As long as it is a deterministic 2-player game with perfect information it should work the same.

Aurelian Florea wrote on 2022-09-14 UTC

Actually, when programming a new game it is not easy to do alpha beta search. I was thinking to add some positional features (like moving the central pawns) to the input of the neural network. This should speed thinks up a bit.

25 comments displayed

Later Reverse Order EarlierEarliest

Permalink to the exact comments currently displayed.