GithubHelp home page GithubHelp logo

Comments (16)

ianfab avatar ianfab commented on May 22, 2024

Is there a specific reason (e.g., stable version, documentation of features/limitations, getting binaries, or the like) why you are asking for a release? If so, maybe that could be achieved without requiring a formal release.

So far I have not thought about a formal release, since the project still is relatively new and is changing a lot, although recently there have mostly been playing strength improvements without much changes in the basic functionality. There still are a couple of variants where the implemented rules are not fully reflecting the official rule set (e.g., fourfold repetition for shogi variants, 50-moves rule, etc.), though. Furthermore, for an official release, I would like to have the automated generation and upload of binaries via travis and appveyor in place, which I did not have time to implement yet.

from fairy-stockfish.

Nordlandia avatar Nordlandia commented on May 22, 2024

Maybe not urgent. I just needed a updated binary (.exe) for some testing with cutechess.

from fairy-stockfish.

ianfab avatar ianfab commented on May 22, 2024

Did you already have a look at https://github.com/ianfab/Fairy-Stockfish/wiki/Compiling-Fairy-Stockfish? If you have issues with getting compilers to work on windows, but require some new features for testing, I could also try to cross-compile a windows executable on linux and send it to you.

from fairy-stockfish.

ianfab avatar ianfab commented on May 22, 2024

@Nordlandia Today, I was anyway cross-compiling Fairy-Stockfish, so you can find windows 64-bit binaries for the normal and large-board version here: Fairy-Stockfish.zip

from fairy-stockfish.

Nordlandia avatar Nordlandia commented on May 22, 2024

Many thanks 😃

I'll thinking about contribute to variant framework again.

Considering i have many machines allocated for fishtest framework, i can assign one for variant framework.

One issue: I can't let fairy stockfish play TwoKings in cutechess gui.

from fairy-stockfish.

ianfab avatar ianfab commented on May 22, 2024

@Nordlandia Two Kings is not supported yet, since it would require special handling that can unfortunately not be reused for any other variant (in contrast to more general extinction rules or the like), which does not really fit well into this project. Although it therefore does not have a high priority (compared to much more popular games such as xiangqi, othello, etc.), I would of course still like to support it at some point, but most likely in a completely different way than I implemented it in MV-SF.

from fairy-stockfish.

Nordlandia avatar Nordlandia commented on May 22, 2024

Out of curiosity, what is the current piece values for Capablanca Chess (archbishop and chancellor)

We're discussing piece values on talkchess and i want to compare the values stockfish use for Capablanca variant.

See - http://www.talkchess.com/forum3/viewtopic.php?p=788525#p788525

from fairy-stockfish.

ianfab avatar ianfab commented on May 22, 2024

@Nordlandia The piece values of this fork are not tuned yet, but only some rough guesses by me (partly based on tuned piece values from my other SF forks for S-Chess, Makruk, etc.), partly because the same piece values are used for all variants, which makes tuning difficult. You can find the numbers here:
https://github.com/ianfab/Fairy-Stockfish/blob/19a744a3c64a1af1a046f36e3c6417b24b7fcac9/src/types.h#L218-L219

However, if it is only about comparing queen, chancellor, and archbishop, you might want to check out the tuned piece values of the S-Chess fork, which should be much closer to the "true" values.
https://github.com/ianfab/Seirawan-Stockfish/blob/dad6e2154ba48f2ff9427fc3923ea2282b74f9e1/src/types.h#L207-L209

from fairy-stockfish.

Nordlandia avatar Nordlandia commented on May 22, 2024

Many thanks again 😃

from fairy-stockfish.

HGMuller avatar HGMuller commented on May 22, 2024

As piece values were mentioned, perhaps my following observation can be helpful: in Capablanca Chess (and similar 10x8 variants) the value of the super-pieces appears to depend significantly on how many of those you have. In particular a Queen is a lot stronger (1-1.5 Pawn) than a Bishop + Rook (like in normal Chess) if the Archbishops and Chancellors are already out of the game. But if they are still on the board, R + B is significantly stronger than a Queen. A possible explanation for this is the 'leveling effect': if the A and C are still there the R + B interdicts their access to many squares, while they do not have to fear Q anywhere as long as they are protected. I understand that Stockfish has a general second-order material term, and it could be important to tune that simultaneously with the linear piece values. Otherwise you might end up with piece values that are a compromise that is always far from optimum.

from fairy-stockfish.

ianfab avatar ianfab commented on May 22, 2024

That makes sense to me. This observation is kind of confirmed by the piece values from the S-chess fork linked above, since the values of all super-pieces are a lot higher in the endgame compared to the middlegame, while for other pieces (excluding pawns) they are almost independent of the game phase.

The second-order terms might also help, but at least the tuning attempts we did for the S-chess fork failed to give any improvement using non-zero terms for archbishop and/or chancellor. However, since in S-chess they are introduced via gating and the board is quite small considering the amount of powerful pieces, the lifetime of the gated super-pieces usually is quite short, so maybe the effect is too small.

For capablanca chess the impact might be more significant, but I have not tried that yet, since in this fork not even a first tuning of the piece values was performed yet as this is quite some effort considering the large number of variants that could/should be tested, and the results from different variants can be contradictory.

from fairy-stockfish.

GothicChessInventor avatar GothicChessInventor commented on May 22, 2024

I published a paper in 2003 on how to compute the value of any chess piece on boards of any size. You can download as well as see the mathematical summary of it, with detailed explanations, here:

http://gothicchess.info/articles_02.shtml

from fairy-stockfish.

ianfab avatar ianfab commented on May 22, 2024

@GothicChessInventor Thanks for the info. Although the method seems to generate reasonable values, I think the ability to check the king is not really the main source of the value of a piece, especially in the context of this project, where checks or the existence of kings are not necessarily part of a variant. In the end the algorithm looks like a slight improvement on piece value estimates from naive mobility counting, where the relation to checks however is a bit artificial. To me it would be more natural and generic if the safe attacks to a piece on a square would be done for all piece types instead of just for the king, which would of course however be much more work (if not done computationally).

from fairy-stockfish.

GothicChessInventor avatar GothicChessInventor commented on May 22, 2024

My paper was an extension of the paper published by Henry Taylor from 1876.
Taylor, H (1876). On the Relative Value of the Pieces in Chess, Philosophical Magazine, Vol. 5, March 1876, pp. 221-229.

His paper was widely heralded as a remarkable achievement in using Deduction to quantify that which most people relate to using Intuition: namely "how much" are the pieces "worth" when it comes time to evaluate them for performing combinations.

Having said that, his paper was not a complete "evaluation function" to be used to determine what a chess position was worth.

Remember, at the time (1876) there was still a great deal of mystery in chess when compared with the knowledge explosion of our contemporary world.

Taylor's work dealt with a square board of dimensions "nxn" and just a standard set of pieces. My paper uses a three-dimensional function v(r,f) where r is the number of rows, f is the number of files, and v is the value of a chess piece on such a board. When you plug in r = f = 8 in my equations, you get the same exact numbers as Taylor did in 1876.

The concept of safely checking a king was used because, there is no such thing as, say, a Bishop safely attacking a Queen. The Queen can always counterattack it because if a Bishop can attack a queen, then a Queen can likewise attack the Bishop. In the case of Bishops of opposite colors, they could never attack one another, posing yet another problem for such a hypothetical model.

Both papers were peer-reviewed and both deemed worthy of publication by other academics. As required by all such institutions, opinions are put aside for the purpose of focussing on "just the math" and its link to the final conclusion. In my case, the two were harmonious and undeniably correct. I'm not saying I liked or did not like the piece values that precipitated out; I am just saying using this form of rigor produced those values, and they seem to work very well in the real world.

from fairy-stockfish.

ianfab avatar ianfab commented on May 22, 2024

By no means I wanted to say that the papers are not valuable, but just that the method is limited to variants where the (only) goal of the game is to checkmate the opponent's king. And although this already is a large variety of chess variants, there are many others that do not fall into this category, so personally I am mainly interested in more generic formulas/methods.

from fairy-stockfish.

ianfab avatar ianfab commented on May 22, 2024

A first release is available now: https://github.com/ianfab/Fairy-Stockfish/releases/tag/fairy_sf_10_2

from fairy-stockfish.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.