Comments/Ratings for a Single Item
In regards to standards, I see these arguments against them, in various forms (this represents the way I remember them being stated. They don't necessarily belong to any one person): 1. They aren't needed. I am curious upon what basis this is stated. Is it that we should have dozens of names for the exact same piece, and have the same name refer to multiple pieces? Is it that we shouldn't even consider mutators? Should every slight variation in board configuration be considered a new form of chess, and Chess960 should be considered 960 different chess games each with different entries (We will have Chess1, Chess2, Chess3, all the way up to Chess960 which is considered the 960th position now in Fischer Random Chess). 2. It is impossible to obtain them, because no one will ever agree to them. Ok, this may be a valid point. But why should we consider this to be so, because there has been no luck in the past obtaining them? My understandings of standards is what they are agreed to and acknowledged. Also, can I comment here that I see people reaching conventional names for pieces on here, the Ferz and the Wazir are two that come to mind. Same with the Knightrider. Would people here say a Knightrider refers to anything else BUT the Knight which gets to repeat its Knight move? Even now, I do see standards about, even if not thought of as such. 3. Using standards hinders creativity. Aren't standards merely agreed to labels and parameters that enable different equipment and procedures to work with one another? On the label front, is this really much of an expression of creativity? The fact that 10 people can name a piece that does the same thing different names show meaningful creativity how? In the case of language, which is used to express creativity (fiction and computer programs), would works of fiction be more creative if no words in the language had a stable meaning? 4. Use of standards means that you are being a bullying dictator and forcing people against their will to accept things they won't accept. Can I ask people here if Linux and Internet technology are set up and run by some bullying dictator somewhere? Is the Internet based on standards? One can think of Microsoft, for example, when you think of bullying standards, but is open-source run by bullies? By the way, if no one accepts the standards, then how would they be considered standards? 5. Things are fine the way they are now. Why should we bother doing this, it is just a bunch of work? Are they really that fine, or is it that one doesn't believe after you do all this work nothing will change. 6. We don't need standards, because we can always play over the Internet. Ok, can I ask that when you do decide to play over the Internet, is having recognizable symbols for the pieces when you play helpful or not? Can anyone argue that having standard recognizable symbols is NOT a standard? 7. We don't need to make this a formal project and officially label the work as standards. How about that be reframed as we officially recognize what the community has done so far, and get it out in the open so new people can understand things, and work to end up having some entry point for them into the chess variant world? If I have missed any, please let me know. And feel free to add any that may be missed.
With regards to naming, you can set up something or simply extend the literature on these pages so that if Variant A calls the chancellor Piece Y, most people know what the piece is. Even a simple comment by another user on the variant will point to the original name. And regarding open source bullies. Yes, they are bullies which is why Microsoft has been smart in not fully implementing standards for their browser. Same for Firefox - they end up having to cater to code not following standards or else their browser would have been useless. And here we are talking about something NOT very creative inherently - writing HTML code/programming. So its apples vs oranges anyway. The standards you are proposing actually dictate what the designer should create. For example you are against pawn promotion to multiple queens even though this is quite standard in most chess variants.
OK, let us continue the discussion about FEN here, then. To Fergus: What you use in Game Courier is indeed very close to what I had in mind. In particular allowing a multi-character representation of a piece by parenthesizng it. You use braces {}, I proposed normal parentheses, but the idea is the same. You also allow for variant-dependent meaning of the single-letter codes. The main question that arises when defining a FEN format that can be applied as universally as possible over all variants, is which letters should have predefined meanings under which conditions. And in how far these conditions should be recognizable from the FEN itself. I would be inclined to pre-define as few characters as possible, using only the board size as an indication of which default assignments are in force. For 8x8 these would be the standard Chess pieces, for 10x8 A and C would be added for Archbishop and Chancelor. For 9x9 we would have the Shogi pieces (S=Silver, G=Gold, L=Lance next to PNBRK, where the latter would now refer to the Shogi version of P and N, while B & R would be subject to Shogi promotion rules), and for 9x10 Xiangqi pieces. Crazyhaue and Shogi would use the postfix-'~' and prefix-'+' conventions for promoted pieces. This covers the most common variants. Perhaps Shatranj is a bit short-changed, because it shares 8x8 with Chess. To fix that we could add E and F for Alfil and Ferz to the 8x8 default set. I tend to think that it would be unwise to try pre-defining pices for other variants, as it would not be possible to do it for all. So I would prefer treating all other variants symmetrically, and do it for none of them. This would mean that all other pieces would have to be described by a multi-letter code. Some variant of Betza notation could be well suited to this, as for the more common fairy pieces this results in quite short names.
Ok, I figure it is best to chime in with a few things here: 1. Regarding pawn promotion: In a nutshell, I want there to be an agreement that whomever creates variants or complete new chess games, be able to account for all the needed game equipment to be able to handle all game states that arise, and have the game rules be able to explain how they are handled. My preference would be in a common standard towards this. This means, if you are going to allow for promotion to a large number of the same kind of pieces, you explain where the material to have this will happen. You make sure the game rules aren't broken. Go on Boardgamegeek, for example, and look at what the opinion is of games that don't provide enough equipment to be able to meet a game state that arises. That is considered a flawed condition. Why not consider it the same with chess variants? I am of the belief that, if you will have a reserve and a large number of Queen level pieces, then it makes sense to restrict how pawns promote. So here, I will go 'Fine' to having the possibility of 9 queens running around on a board at the same time. But is not explaining where the material for gameplay will come from to account for this better than having a standard to explain where the equipment comes from to do this? 2. Regarding standards and creativity. Is writing fiction not a creative activity? How effective would it be, if there wasn't standards for language and grammar? Also, if there wasn't a defined ZRF language for Zillions, would we have much in the way of creativity expressed in this area? 3. Open-source bullies? Exactly how do these bullies cause there to be problems? Do they point a gun at people's heads, or do their Internet equipment not work? Looks like I may have to do a case for standards post.
Rich Hutnik: 'Why not consider it the same with chess variants?' Because multiple promotions are only a theoretical possibility, which never happens in practice. I don't see why you keep dwelling on this. What are you trying to achieve? Find an explanation why no one plays the Mad Queen game, and Chaturanga dominates the World? Lack of multiple Queens in piece sets for Chess-type games have ZERO effect on their popularity. End of story, problem solved. Now let us concentrate on aspects that DO have an effect.
One of the difficulties(or the prime difficulty) with establishing standards is enforcing them. Who will take this responsibility? Or better yet, who do we trust with this? And improving the categorization of elements in a new game may also prove difficult. For example: a game may have a Ferz-like piece, one that moves like a Ferz, but its effect on the field may be entirely unique(such as capture form or its specific inter-relationship with another piece on the field). So classifying it simply as a Ferz would be insufficient. As to 'standards for language and grammar', check out 'A Clockwork Orange' or 'Flowers For Algernon'. These two definitely 'threw the book out'.
Standards cannot be enforced, but they could be encouraged more than they are now. We should not underestimate the impact of this website on the variant community. With respect to piece naming we could list 'recommended' names, and in the description of all variants we could in the setup description use recommended names only. If the names given to those pieces originally does deviate from the standard names, we could mention that in a footnote. We could conspire to have most variant-playing software use the standard names, and standard letter-codes derived from those standard names. I certainly could do that for WinBoard, which is currently the only free general variant-supporting GUI in existence. As to piece symbols: We could decide on standard symbols, and make a true-type font available. WinBoard could then use this font to represent the pieces, and create diagrams containing these pieces. We could replace the wide variety of diagram styles present in TCVP all by diagrams using the standard symbols.
I don't know if this has been mentioned, but some might want to check out the Generic Chess Piece Creation System by Guilherme S. Töws on this site. It offers a nice form to identify pieces about halfway down the page. And it can be expanded on. Rather than utilizing descriptive names which may change from one game to the next or evolve over the years, a quasi-mathematical description could be applied. For example: the Queen could be referred to as DnOn, meaning Diagonal for n or Orthogonal for n. Or the Knight could be L(2,3), meaning a 2 by 3 area leap.
Ok, on to the latest round of comments regarding what was posted: 1. I am NOT the one who unilaterally decides the standards, nor should anyone else be the one to decide his. My suggestion for dealing with the the potential for 8 Queens is a PREFERENCE of mine, that I believe is relevant when you start adding a wider arrange of pieces. One can go 'well it is theoretically possible, but you never see it'. You NEVER see it? When you are dealing with chess variants, where you can bend the rules left and right, then the 'never' becomes more likely. This is NOT a big deal, just an observation I made, particularly when I ended up looking at Seirawan Chess and saw that the use of reserves can lead to a game where you could have issues when dealing with reserves and the possibility of a wide range of pieces getting introduced to a game via reserves. 2. I do agree the standards can't be enforced, unless it is in an IAGO, FIDE, etc... setting where you have tournament rules. I will say the lack of having influence by associations has resulted in checkers having red and black pieces on a red and black board (board and pieces have the same colors). The standards are tradition that is followed. No one knows why, but they do. Standards can end up saving time for everyone and lay a level of expectation. By encouraging standards, we can accelerate the adoption process of variants. The also lend to knowing which side of the road to walk on, for example. 3. Joe may be onto something with 'Tracks'. We likely need to rework it, but the idea of categories (aka Tracks) for variants, would be helpful. 4. And this community has had an impact on the world of chess variants. May I suggest this community get in touch with the British Chess Variants Society and see if we can begin discussions for recommendations for naming conventions, and other things like mutators? Get everyone involved with this, and not just this side of the ocean. Of course, if they refuse, then that is their issue. I know my discussing things with them broke down when I had attempted this in relation to IAGO. I am up for whatever is come up with. I would also have IAGO adopt whatever the findings were. 5. There is no guarantee the findings would be perfect, or never change, but I see it as a start. We could end up doing a variation on the Internet's Request for Comments system, for having recommendations. Ok, enough for now. I have food and some TV to get to here in a bit.
Since FEN has come up recently, I would like to propose a Forsythe code standard. Let's call it V-FEN for Variant Forsythe-Edwards Notation. One goal I have for this is that it should completely describe the configuration of spaces. The FEN code used by Game Courier does not do this, because it relies on an extra parameter for the width of a rank. So here is what I propose.
Normally use individual letters for Chess pieces. Allow for the use of expanded names, using a pair of parentheses, brackets or braces. Use lowercase for black and uppercase for white (or whoever goes first if different colors are used). Reserve the letters KQRBNP/kqrbnp for Chess pieces. Refer to a game-specific legend for the meanings of other letters or longer labels. If we wish to reserve letters for some common fairy pieces, I recommend against reserving C for Chancellor, as the Knight-Rook is called in Capablanca's Chess. C could just as well be used for Cardinal, as the Knight-Bishop is called in Grand Chess. I would favor C for Cannon and suggest the use of two letter abbreviations of RN and BN for the pieces known in Grand Chess as Marshal and Cardinal. These are more unambiguous labels that would clearly identify these pieces no matter what they are called in a game. Similar labels could be used for other compounds. We could use some conventions from Betza's notation, but I wouldn't recommend replacing all abbreviations with some kind of movement notation, because abbreviations should be kept simple and easy to remember. Mainly, I would recommend adopting the convention of doubling the letter for a rider piece, such as NN for a Nightrider.
Use base ten numbers to identify a number of empty spaces. Require a / to come at the end of each rank except the last. Making no assumption about the length of a rank, the / will be required to tell when the rank ends. Use a - to indicate a space in the grid that doesn't exist on the board.
Using this standard, the FEN code currently used by default in Game Courier, rnbqkbnrpppppppp32PPPPPPPPRNBQKBNR, would not be well-formed. Instead, it would have to look like this: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR.
Other information about the game would have to come from the game rules. There should be no need to identify a game from its V-FEN code alone. A legend should be provided for the specific piece labels used by a game. The V-FEN code would not be able to tell whether a board is composed of squares, hexagons, or circles, but the game rules would indicate this easily enough. Here are some examples of how the same V-FEN code would look with different board types:
+---+---+---+---+---+---+---+---+ 3 | t |:o:| p |:::| r |:a:| n |:k:| +---+---+---+---+---+---+---+---+---+ 2 |:n:| e |:x:| t |:::| r |:a:| n |:k:| +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 1 | t |:h:| i |:r:| d |:::| r |:a:| n |:k:| |:d:| o |:w:| n | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ a b c d e f g h i j k l m n o / \ /:\ /!\ / \ /:\ /!\ / \ /:\ 3 | t |:o:|!p!| |:r:|!a!| n |:k:| /:\ /!\:/ \!/:\ /!\:/ \!/:\ /!\:/ \ 2 |:n:|!e!| x |:t:|!!!| r |:a:|!n!| k | / \:/:\!/!\ / \:/:\!/!\ / \:/:\!/!\ / \ /:\ /!\ / \ /:\ /!\ 1 | t |:h:|!i!| r |:d:|!!!| r |:a:|!n!| k |:::|!d!| o |:w:|!n!| \ / \:/ \!/ \ / \:/ \!/ \ / \:/ \!/ \ / \:/ \!/ \ / \:/ \!/ a b c d e f g h i j k l m n o a b c d e f g h i j k l m n o ___ 1 ___/!n!\ ___/:w:\___/ ___ ___/ o \___/ ___/:k:\___ ___/!d!\___/ ___/ n \___/ k \___/:::\___/ ___/!a!\___/!n!\___/ k \___/ ___/:r:\___/:a:\___/!n!\___/ ___/ \___/ r \___/:a:\___/ ___/!p!\___/!!!\___/ r \___/ ___/:o:\___/:t:\___/!!!\___/ / t \___/ x \___/:d:\___/ 3 \___/!e!\___/ r \___/ /:n:\___/!i!\___/ 2 \___/:h:\___/ / t \___/ 1 \___/ a b c d e f g h i j k l m n o
On the standards issue again, maybe we can come up with an XML schema for data transfer for Chess Variants or abstract strategy games in general. For Chess Variants, call it CVML (Chess Variants Markup Language). For abstract strategy games in general, we can go with something like IML (IAGO Markup Language) or IASML (IAGO Abstract Strategy Markup Language). We then can use that format with this site. Imagine someone comes up with a PC game that plays chess variants, and acts as an interface. With CVML/IML/IASML you could have them connect into the Game Courier system and give people a GUI to enter in their moves and get their moves off here. A CVML file could record all moves, all pieces involved, and so on. Again, some agreed to standards would help out a lot here.
I haven't even learned XML yet. What are you proposing that CVML would be used for? Would it have any use outside of the web?
CVML could be used by computer programs for saving data. It also enables that a PC GUI program that can interface with the Courier system here.
That's really vague. I'm asking for specifics. Since I wrote Game Courier, I would probably be the one to program this, and I know I won't program it if I don't have a very clear, specific, and detailed idea of what it is supposed to do.
What you need is the Courier program to receive a file with the move someone that someone wants to make, and output the results of the move to the file. The format it is in would matter. CVML or IML/IAGML would define the format. Do this right, and the likes of ChessV and others could interact with the Courier program. As for specifics (aka how to implement), we need to discuss this further, and agree that it would be a good idea.
One of the main problems with having Game Courier communicate with another program is that Game Courier is mainly just a toolbox for creating play-by-mail versions of Chess variants. Game Courier itself does not have the rules for any game encoded into it. It is mainly an interpreted programming language that interfaces with a visual board display.
Well, at this point, maybe rules reffing could be done via the GUI interface that would log in. However, even outside of that, there may not be a need now for it, just a program that can act as an easier to use interface, and allow entering of moves, without needing to type.
About FEN standardization: I agree with most of what Fergus says. The purpose of a FEN is to express the game state, not describe the game. I would not be against having the FEN unambiguously desrcibe the board, though. So I would like to outlaw 'sloppy' FENs, which do not fill out the ranks completely, and use the rank-separator '/' to imply the rest of the rank is empty. This would only invite undetectable errors. Preferably a FEN reader should be able, once it knows the variant, to detect omissions or spurious characters in the FEN. I would also like to fix the use of various types of parentheses: The brackets [] should preferably be reserved for delimiting an optional holdings field in the FEN, for games with piece drops like Crazyhouse and Shogi. For delimiting multi-character piece names, we coud use braces {} to delimit arbitrary names referring to the legend, like {griffon} or {Griffon}. The first letter decides if the piece is white or black, through being upper or lower case, respectively. Upper and lower case in the rest of the name are at the disposal the creator of the legend to enhance readaility, e.g. {MurrayLion}, {highPriestess}. Normal parentheses () I would like to reserve for delimiting fully descriptive piece indications, like (BN), according to some nearly universal (variant-independent) notation similar to Betza notation. The Cannon indeed seems to have the strongest claim on the letter C (altough most people call it Pao...). But we should not be blind to reality. Any 'standard' that will not allow Chancellor to be indicated by C in Capablanca-type variants is still-born. Too many people and too much software World wide is already using the FENs with the C in it. So a standard that outlaws this might as well be referred to the garbage bin immediately. The most reasonable compromise that makes the standard viable seems to be the use of board-width dependent defaults, and predefine A=(BN) and C=(RN) on a 10-wide board. This hurts no one: variants that name these pieces differently can simply use (BN) and (RN), and are off no worse than they would have been when A and C were not predefined. Actually we might even go a step further, and allow the variant-specific legend to define any one-letter code as it pleases, just as it can define multi-letter piece names. I am not even sure if there would be any reason to protect the letters for the orthodox Chess pieces from redefinition. The FEN reader could always look in the legend first to see what a letter means. If the letter is not listed, the defaut meaning (if any) would apply. If there is also no default in force, we have a FEN syntax error.
The CVML discussion is hard to follow for me, as I don't know Game Courier. When I play Chess Variants, I use the WinBoard GUI. WinBoard supports local play against a computer opponent (if you have an AI available that can play the variant), play on an Internet Chess Server against any other entity that is logged in on that server, play of an AI against the ICS, local play between two AIs, or can be used as a game viewer/editor. Now ICS (like FICS and ICC) only support a very limited number of variants, and the protocol with which they operate is not suitable for variants in general. There is a server where you can play the unspeakable 10x8 variant, but it uses and entirely different protocol. I have written a back-end to WinBoard to communicate in this protocol, so WinBoard can be used as a GUI to play or have computer AIs play on that server. In cases like these, the communication channel is a TCP link to a dedicated port of the server. What is the underlying medium that Game Courier uses to connect players with each other? Is there a specialized server somewhere, or can any POP server act as such (and would a dedicated account be needed on the POP server, in that case)? What communication channel is used, and what is the protocol on this channel? If I new that, it might be possible to directly connect WinBoard to the system, so that people can play through a regular GUI.
Game Courier is a server-side PHP program. It communicates with the user by means of webpages. It also sends out email. The email is just a reminder that it is your turn in a game, showing you the latest move and giving you a link back to Game Courier. It is not a true play-by-mail system in the sense of playing games entirely through email. It is actually a play-by-web system with email notifications, the email being entirely inessential if you check the website regularly.
Ok, several questions and comments: 1. When using Winboard, how do you use it? Do you use it to log into the CV websites, or enter in the current move manually, enter in your own move, have it spit it back and then type it in here? 2. If Winboard works as I am thinking with chess, anyone know if it could be expanded to cover other games, like checkers or Go? 3. CVML is merely a data structure for formatting data files so different systems can understand them. The format also makes these files easy to understand. The format explains what data should be where in the file. They also use XML stuff (CVML would be derived from XML) to also handle formatting of web pages. 4. In regards to FEN, CVML could be used as a way to extend FEN and handle more than FEN does. Anyhow, these are my latest thoughts on this. Thanks for the comments. Is it time that we break off a separate topic to discuss CVML?
Anyone know anything about the Universal Chess Interface? http://en.wikipedia.org/wiki/Universal_Chess_Interface Or the Chess Engine Communication Protocol? http://en.wikipedia.org/wiki/Chess_Engine_Communication_Protocol I am curious if we can find answers here. I am asking about this, because I saw it on Wikipedia when looking up Winboard.
Another perspective on this Standards discussion is the Rosetta Stone comes to mind: http://en.wikipedia.org/wiki/Rosetta_Stone What is agreed to on regarding the FEN, data transfer protocols, and other things can act like a Rosetta Stone allowing a diverse community to communicate with one another.
To Rich: WinBoard is an application that runs locally on your PC, and displays a Chess board there. You can enter moves by typing them, but the more common way is to just drag the displayed pieces with the mouse to the square where you want to move. You can put WinBoard in a mode where it accepts every move (of the side that is to move) or where it checks if the move is allowed. The latter of course only works for variants WinBoard knows the rules of. WinBoard is limited to rectangular boards, knows 22 piece type, can handle variants with piece drops. Amongst the fully supported variants are Chess, Shatranj, Xiangqi and Shogi. WinBoard merely is a GUI, i.e. an I/O device for Chess moves, and it takes care of such tasks as saving the game on a file in standard (Human-readable) format, loading saved games for viewing, copying and pasting games and positions to and from the clipboard. It communicates the moves to entities that play the game. Locally this might be other processes that think up the moves, with which it communicates in a text-based standard language known as 'WinBoard protocol'. (The 'Chess-Engine communication protocol you found the link for) This protocol is the current 'market leader', and there are litterally hundreds of engines that understand it. The 'Universal Chess Interface' is a recent competitor of WB protocol. Adapters between UCI and WB protocol exist in both directions. UCI is rather limited in its support for variants: It does go as far as Chess960, but I believe Crazyhouse is already 'a bridge too far'. WinBoard can also act as a 'client' to communicate with a Chess Server over the internet (e.g. FICS, ICC). For this it uses a different protocol (ICS protocol), which does supports 'variants' like losers and atomic, and even Shatranj. But nothing beyond 8x8 boards. Currently WB cannot be used to login on the CV pages. But if I knew the protocol needed to play on the CV pages, I could make WinBoard support that too. I have done the same thing for the Unspeakable-Variant server. What I understand from Fergus, playing on the CV pages involves polling html pages until you see a change, and then uploading your own move over a TCP link. (Correct me if I am wrong, Fergus!) Well, as they say, one program paints a thousand words, so if you really want to get an idea what WinBoard is, you can try it out by downloading from http://home.hccnet.nl/h.g.muller/WinBoard_F.zip , and clicking the 'Fairy-Max' icon in the downloaded folder. You can then immediately start playing the Mad-Queen game, or select one of the variants in the menu that the Fairy-Max engine (included in the download) plays, like Knightmate, Capablanca, Shatranj, Falcon, Superchess, Courier. (Note it does not nearly play all variants supported by WinBoard. If you want to play Xiangqi, Shogi, Crazyhouse or Losers you would have to download other engines for this.)
25 comments displayed
Permalink to the exact comments currently displayed.