Comments/Ratings for a Single Item
I don't have Zillions, and I do not have the slightest interest in buying it, as it plays like cr*p.
Perhaps you are unaware that Andreas Kaufmann wrote a Winboard Adapter for Zillions of Games.
Rich, I think it is putting the cart before the horse to try to define software interoperability standards before there is any software using them. Software standards need to arise out of actual software, as Standard C arose from the original Unix C, or as ECMAScript arose from the original JavaScript. Software standards for integrating Game Courier with a GUI or a game engine would have to arise from an actual project of trying to integrate Game Courier with some actual piece of software, and I would have to work with the programmer on this, not with someone who is just spinning ideas and not doing any programming. Furthermore, my greater interest right now is in helping a GUI gain more of the capability of Game Courier, especially in graphics and in the capacity to handle more types of variants. Zillions of Games has a great interface, but it is too weak for many games, especially Shogi-like games. My special interest is in having a strong Shogi program that can use the graphics I have designed for Shogi and which can handle some of my Shogi variants, such as Kamikaze Mortal Shogi and the Hex Shogi games.
Hello Fergus. I want to comment here: 1. There ARE programs out there that can benefit from this, and websites. On the programming front, there is Axiom (and Zillions), ChessV, Cyberboard, and Winboard. 2. You are touching on a chicken and egg issue if you were to go with 'there is no software out there'. Well, unless there is standardized protocols, you aren't likely to see programs created specifically for that. And unless the programs are out there, then sites go they aren't going to bother. All this then becomes an excuse for not doing anything. 3. As for AIs being poor, well not sure what that has to do with providing a GUI for people to be able to play over a server against other people. What I will say is, if you develop the communication protocols to enable interoperability, using what is out there now (see names above), then you will provide a place for people to work on AIs that are stronger. They could even work with Axiom to be able to code up stronger AIs. So, things are out there now. What is needed is to get them to work, and not have people make excuses to justify the way things are today. Also, if you do want to work with a developer on this, please contact me at: rich [at] iagoworldtour.com or richardhutnik [at] optonline [dot] net. The developer of Axiom (Greg Schmidt) is working with Aaron Dalton of the SDG site to get Axiom to interface with his site. It is in discussions now. It would be helpful to email me, and I can get you the link to the forum, and also their email addresses, so this can come about. So, in a nutshell, there are things afoot now, and getting Game Courier to also tie in and work would helpful.
>>I don't have Zillions, and I do not have the slightest interest >> in buying it, as it plays like cr*p. Whoever said that isn't aware that there are tweaked Zillions chess variants programs that play a fine game of chess. The problem is, namely, that Zillions tends to move about with knights too much in the opening, and develops the queen too early. It also sometimes misjudges the value of the pieces. It moves the king to the corner too readily. But all this can be easily corrected by tweaking. I always do this in my implementations: http://tinyurl/chessvariants One example is my implementation of Chinese Chess. It plays much better than the standard implementation while the latter greatly overestimates the value of the cannon compared with the rook, and underestimates the Elephants and the Mandarins. It values them according to mobility, so they get a too low value. But in Chinese Chess their blocking capability, king protective capability, and their functionality as screen for the cannon, give them a higher value. So one must tweak them to give them a higher value, otherwise Zillions can't simply play correctly. That's why I asked Larry to tweak the pieces in his Xiang Hex. /Mats
Fergus: | How does that work? Does WinBoard allow the use of graphic images for | pieces? Game Courier allows the use of GIF images for pieces. Does it | allow any customization of the board's appearance? Game Courier allows | GIF, PNG, and JPG images for boards, and it can draw multiple kinds of | boards. If WinBoard can use images for boards and pieces, then I would | be happy to contribute some. WinBoard can use arbitrary bitmap files for the square coloring (through options /liteBackTextureFile=... and /darkBackTextureFile=... on the command-line or in the winbord.ini file. For some examples, see: http://usuarios.lycos.es/alexwbtm/Test/ or http://www.open-aurec.com/wbforum/viewtopic.php?t=49439 (bottom). The pieces cn be user-defined through the option /renderPiecesWithFont=... and /fontPieceToCharTable='...', which can be used to select any pictorial true-type font for piece rendering, and define the mapping of pieces to font symbols. A good example of this would be the Superchess font obtainable from http://www.superchess.nl.
Fergus: | Software standards for integrating Game Courier with a GUI or | a game engine would have to arise from an actual project of trying to | integrate Game Courier with some actual piece of software, and I would | have to work with the programmer on this, ... Well, so WinBoard is the GUI, and I am your man! :-) | Furthermore, my greater interest right now is in helping a GUI gain | moreof the capability of Game Courier, especially in graphics and in | the capacity to handle more types of variants. It has always been my aim to develop WinBoard in this direction, and I think I already made a very good start at this. | Zillions of Games has a great interface, but it is too weak for many | games, especially Shogi-like games. Agreed. The level of Zillions is probaby perfect for beginners, but it is no match for dedicated engines. And especially piece drops are a weak spot in its search algorithm. | My special interest is in having a strong Shogi program that can use | the graphics I have designed for Shogi and which can handle some of my | Shogi variants, such as Kamikaze Mortal Shogi and the Hex Shogi games. Building a Sogi engine is one of the things on my to-do list. I decided to re-write my Chess engine Joker (and have actualy started working on that) in such a way that it is more friendly to implementation of variants, e.g. using a 10x10 board as basis (so that 8x8, 10x8, 9x9 and 9x10 can be implemented as a subset, by filling a larger part of the internal 16x16 board with edge guards, besides the 3-wide guard band). Adding piece drops to that would be a very good basis for a strong Shogi engine.
M. Winther: | Whoever said that isn't aware that there are tweaked Zillions chess | variants programs that play a fine game of chess. Well, as I have no Zillions, I cannot test that. What (computer) rating do you think Zillions would have in (properly tweaked) normal Chess? Could it beat Fairy-Max / micro-Max? I doubt that very much, and Fairy-max is only a very mediocre engine, (what can you expect from a mere hundred lines of code?), about 500 Elo weaker than a good engine, and about 1000 Elo below the World top (=Rybka). From the unspeakable World Championship, where Fairy-Max beat Zillions, I got the impression that Zillions is tactically weak. It just doesn't search deep enough.
WinBoard can use arbitrary bitmap files for the square coloring
I once considered letting Game Courier use image tiles for making boards, but I eventually decided to just let it use a single image for the whole board. This is simpler to do, and it looks more natural than repeating the same pattern on multiple squares, especially when using marble and wood grains. Can Winboard specify an arbitrary image for each space, such that something like Smess or Storm the Ivory Tower would be possible?
The pieces cn be user-defined through the option /renderPiecesWithFont=... and /fontPieceToCharTable='...', which can be used to select any pictorial true-type font for piece rendering, and define the mapping of pieces to font symbols.
Using fonts is better than nothing, but it creates a stumbling block to developing images for use with Winboard. Although many piece sets are available, we don't have anyone ready to translate them into fonts, which leaves Winboard unable to use them. Also, I imagine that the fonts are normally greyscale line drawings, not full color images. This would prevent Winboard from using some of the nicer pieces I've designed.
I think WinBoard uses the bitmap for the entire board, or tiles it if the bitmap you have given is not big enough to cover the entire board. I did not code this part myself, so I cannot give you the details off hand. There are additional options /darkTextureMode and /liteTextureMode that control if some additional randomization is done in the process of cutting the squares out of the given bitmap. I am not sure how this works exactly, I hardly ever use the texture modes, as I like evenly colored squares better. Fonts are better than bitmaps, because the bitmaps cannot be scaled. So for every board size you would have to remake the bitmaps from scratch. The font can be rendered at any size. Fonts are indeed pure black/white constructs. The black defines the outline, and any internal areas are filled with another color to get a shading effect. The colors and shading are user-selectable. I am not so sure about the desirability of having multi-colored pieces (on top of outline and two colors for defining the filler shading gradient). It seems to me that this would only degrade the ease of recognizing which side the pieces belong to.
Muller, it's not always relevant to test a program against other programs. Most chess programs beat 99% of humans. Nevertheless, they are smashed by Rybka, and completely annihilated. Of course, Zillions loses against stronger programs. But is it fun and developing to play against it? Yes, it is. Zillions, on a modern computer, plays chess at, perhaps, Elo 2150-2200. It plays an entertaining game, too, advancing boldly with the pawns on the wing, etc. I always tweak it to make pawn moves in the opening, and discourage early queen excursion. Then it plays a rather mature game. I am a good judge, because I'm a quite strong club player. Moreover, Zillions understands all those strange new pieces better than humans do. So it often wins by utilizing them better. It takes longer time for a human to develop a grasp of a cannon or a catapult, etc. Zillions is clearly the best way of testing chess variants, whether they are fun, whether they are interesting strategically, etc. Zillions is a remarkable tool for chess variants. People in the chess community are often interested in which program has the highest rating, but who cares? Zillions is actually the best chess program because it plays most variants. /Mats
Gentlemen, let me jump in here. I've been following the discussions on standards with great interest and a greater lack of knowledge. But when I see something 'dangerous' to design, I will say something. Here, I'm very concerned about the idea of not using color for the pieces. I've already done a basic game design that requires multiple colors per side, have 2 games already using the pieces, and am working with another designer to create a range of games that use these and similar pieces. Honestly, I have been intending to add more and differently-colored pieces to the Alfaerie:Many piece set. Heh, if this site stays up, I hope to post some game pages over the next few days that will include large multi-move games, some with multi-square pieces defined by color, like Chesimals I. I appreciate programmers need cut-off points. But designers need freedom. [I have actually discovered the hard way that game courier 'only' accepts about 48 moves for one player in one turn.] The flexibility of Game Courier is a beautiful thing. Please don't take any of that flexibility away in the future. Expand it if possible.
'Zillions, on a modern computer, plays chess at, perhaps, Elo 2150-2200.' That might be true against Humans in 5-min games, but I have strong doubts that that has any bearing on how strong it is. Based on Zillions performance in Gothic Chess I estimate its rating more round 1800 Elo. When I had micro-Max play on the ICC server against Humans it also quickly converged on a rating of 2260, but it seems that almost any computer program, no matter how poorly it plays, does that. I once saw a report of Tord Romstad, about his attempts to reduce the playing strength of his engine Glaurung. At some point he had crippled it so much that it would litterally score 0% against TSCP (an extremely weak engine, which micro-Max would totally crush), and blundered away a piece or rook nearly every other move. It still kept beating 2100-rated players on ICC! Anyway, Zillions might suit your needs, it definitely does not suit mine. I need computer opponents to test my engines, so it is not really relevant how many variants Zillions plays, just that it plays the variants for which I have built engines. And if even the most basic engine I build totally crushes it, I can learn nothing from playing it against Zillions. My reason for playing engines against each other is to test which one of different versions is better. If all versions score close to 100%, I can learn nothing from it. And if I would want to play a variant against a computer myself, I might as well configure Fairy-Max to play that variant. Of course even if Zillions were strong enough, it would still be useless to me, as it cannot play automatically against other engines at all...
| Fergus: || Software standards for integrating Game Courier with a GUI or || a game engine would have to arise from an actual project of trying to || integrate Game Courier with some actual piece of software, and I would || have to work with the programmer on this, ... | Well, so WinBoard is the GUI, and I am your man! :-)
I would like to start with integrating Game Courier with a game engine. I have some ideas for how this can be done. First, Game Courier has its own programming language, GAME Code, and all calls to game engines would be done through lines of GAME Code. It would be coded into an individual preset whether it uses an external game engine.
The first thing a game engine would be used for is to check the legality of a move. When a player moves, a line of GAME Code would send the moves and any other information the engine needs to the external engine. Since this is done within the context of a GAME Code program written for a specific game, it would be easy to customize the information it gives to the engine, depending upon what the engine needs. An engine for one game only might just require the moves, while a more customizable engine might require more data. At the bare minimum, the engine would indicate whether all the moves passed to it are legal. With this confirmation from the engine, the GAME Code program could move the pieces around on the Game Courier board without checking the legality of the moves any further. Hopefully, the engine could give some detailed error messages when a move is illegal, such as mentioning the specific illegal move and explaining why it is illegal. If not, Game Courier could call the engine multiple times with longer sequences of moves, so that it can itself identify the specific illegal move. It's also possible that the engine could return FEN code, and some lines of GAME Code would just update the board to match the new FEN without actually performing the moves the player gave. This would allow the use of game specific notation that even Game Courier cannot understand.
The second thing a game engine would be used for is to play a game. As long as the engine moves fast enough, it could feed its moves directly to Game Courier when it gets called by the GAME Code. If its going to take longer, PHP might have a problem with the time it takes to get a response and stop execution before it returns a move. If so, another means will be needed to tell when the engine has moved, perhaps by using JavaScript.
Fonts are better than bitmaps, because the bitmaps cannot be scaled.
Game Courier uses bitmaps and rescales them for JPG, PNG, and GIF boards.
I am not so sure about the desirability of having multi-colored pieces (on top of outline and two colors for defining the filler shading gradient). It seems to me that this would only degrade the ease of recognizing which side the pieces belong to.
I will answer this with a picture:
This picture was created by Game Courier from multi-color pieces, and it was also rescaled. The use of multiple colors allows the pieces to look more realistic. Basically, allowing multi-color images allows photographic quality pieces.
Since Shogi pieces are all the same color, here is another image from Game Courier, this time of Xiang Qi, whose pieces are different colors.
Muller, which are the chess variants you are testing? Zillions is World Champion in several hundred chess variants. Rybka is only World Champion in one. Without Zillions, how would it be possible to test and try Hexagonal Chinese Chess, recently invented by L. Smith? It would take a century. And it beats me easily in Xiang Hex when I try it. Zillions is very appropriate for 99% of all chessplayers. It's beyond me how a person interested in boardgames can refrain from buying Zillions at $20. /Mats
M. Winther: | Muller, which are the chess variants you are testing? Zillions is World | Champion in several hundred chess variants. That does not really prove much about its strength if it was the only contender... I have been testing games like Shatranj, Knightmate, Capablanca, Superchess (as in Superchess & Monarch), Falcon Chess, Great Shatranj. And I am testing many 'unofficial' variants consisting of one or two unorthodox pieces embedded in a conventional setup, e.g. replacing Knights with Cannons, Modern Elephants or Dababbas, or (pairs of) Grasshoppers, Ferzes, Wazirs, Xiangqi Horses; Rooks with Nightriders, Queens with Centaurs or Amazons. Usually in setups with different Armies, on 8x8 or 10x8 boards. | Rybka is only World Champion in one. Without Zillions, how would it be | possible to test and try Hexagonal Chinese Chess, recently invented by | L. Smith? It would take a century. Well, the game does not seem listed here, so it is hard for me to comment on it. If I would be interested in it, I might configure Fairy-Max to play it. If very exotic pieces that defy Fairy-Max' piece-definition format would participate, and I was interested enough, I would hard-code the particular piece in Fairy-Max, or add general support for the property that made it impossible before. (I did this for the Falcon, for example.) In general I am not so much interested in entire variants, as in individual Chess pieces occurring in those variants. | And it beats me easily in Xiang Hex when I try it. Zillions is | very appropriate for 99% of all chessplayers. It's beyond me how | a person interested in boardgames can refrain from buying Zillions | at $20. This is because I am not interested in playing against engines, but in building them, and I already have developed engines that can do the things I am interested in (piece value measurements) which I consider highly superior to Zillions (w.r.t. playing strength). If I had teleport ability, why would I buy a Rolls Royce?
To Fergus: It seems that you have an application / need for the extra colors because you are not just displaying the piece symbols, but are actualy trying to create a realistic image of the game as it would be played with physical pieces. Personally I don't think this is very desirable; I would prefer to play Shogi without th pentagonal outlines and Xiangqi without the circles. The Linux version of Winboard, xboard, does have the possibility to have user-defined graphics called 'pixmaps', and I am not sure there is any limitation on the number of colors that can be used in them. (They have the undesirable property, however, that they represent square and piece together.) What software do you use to scale the GIF files? I always get excessively ugly reslults when I do that. Even when my browser scales a gif image of a Chess poition, separation lines between board squares are randomly disappearing, etc.
Muller, in Zillions there is, among the standard games, a variant called Fairy Chess. By right-clicking you can insert fairy pieces (e.g. grasshopper) in a standard piece context, on an 8x8, or a 10x10 board. So it's easy to create unequal armies this way. I have invented many interesting pieces of the catapult type, bifurcation, cannon variants, etc. You could always try to implement any of these pieces if you like them: http://hem.passagen.se/melki9/chessvar.htm There is also an implementation of diverse Capablanca variants there. Piece evaluation in Zillions can be corrected by a tweaking method which I always use. The result is very good, but it's hard to tell if it's perfect. The method has drastic positive results. I tested my implementations of Chinese Chess and Korean Chess against the standard Zillions versions. Almost the only difference was that I had tweaked the pieces so that their value was corrected. The result was that my versions won 6-0 in both matches. So it is possible to compensate for Zillions deficiencies in piece evaluation. Remember that it is still a programmin tool, and you can do much advanced programming. I bet you wouldn't be able to program certain of my most advanced pieces in Fairy-Max. /Mats
Thanks you everyone for discussing this. My interest in this is not in the minutia, or how everyone will get there, just that we get there. In this, my main interests is that everything everyone is working on, will be able to work with one another (of course, I have a bias towards things being easy to do, but complete, so that whatever is decided upon will get used and adopted). And, as we expand to cover more areas, everything together is able to handle it. From an IAGO perspective, the system would not only be able to handle chess variants, but also stacking games (as seen Focus, and a chess variant I saw where pieces were made up of a stack of pieces), and games with piles or areas, like the Mancala family. If we get interoperability right here, then you could have a case where the CV site and its members could play against people on the Scheming Mind site, for example. This is my concern here, and I hope whatever is reached is used. I am sure there are many paths to get to where one needs, the idea is to make sure the paths work together. In regards to Zillions, Zillions was an example of one program that could work. Something else could be used instead. However, if one uses open standards, someone may encode a plug in for Zillions to be able it to also work. The open standards approach would enable GC to be integrated with by a LOT of engines, if the makes of engines and client programs know what the specs are to code to. We can get one to work (say Axiom) and then others see it can. They would then make their programs work also, and the CV site could get more people involved and greater traffic. Just my 2 cents. And thanks again for the input.
M. Winther: | I bet you wouldn't be able to program certain of my most advanced | pieces in Fairy-Max. As Fairy-Max is written in C, and C is a recurive language, and recursive languages are equivalent to a Turing machine, and a Turing machine can calculate anything that is calculable, you would lose that bet with mathematical certainty! Moves of Catapult pieces, for instance, are akin to castling moves, and it would be fairly easy to built something into Fairy-Max that would allow this type of 'castling'. If I had the motivtion to do it. The Catapult pieces do not particularly appeal to me, as they violate what I consider to be one of the defining characteristics of a Chess variant: that it moves only one piece per turn. Note that am not in any way denying that what I do, could be done by Zillions. But the differences I want to measure do not result in 6-0 scores. A Pawn advantage in Chess results only in 18% advantage, and even less in Capablanca-type variants. I want to measure piece values to a precicion of at least a quarter Pawn, resulting in advantages of ~3%. To get the statistical noise below that I need 50-1000 games, so I cannot afford to let the engines spend half an hour on a game. They must play 1-min games, and play them at a sufficient high quality for the results to be meaningful. So I want the best engine I can get, and I doubt Zillions would qualify as such. But you can convince me by showing that Zillions can beat Fairy-Max in, say, Knightmate.
It seems that you have an application / need for the extra colors because you are not just displaying the piece symbols, but are actualy trying to create a realistic image of the game as it would be played with physical pieces.
Personally I don't think this is very desirable; I would prefer to play Shogi without th pentagonal outlines and Xiangqi without the circles.
We each have our preferences. In general, your program will appeal to a broader base when it can accommodate more preferences than just your own. For example, Game Courier uses some graphics I don't like and supports many games I have never become interested in, but it is more popular than it would otherwise be because I didn't limit it to my own preferences.
What software do you use to scale the GIF files? I always get excessively ugly reslults when I do that. Even when my browser scales a gif image of a Chess poition, separation lines between board squares are randomly disappearing, etc.
I use the GD library that comes with PHP. What I do is create a whole board image, then rescale that. I don't rescale individual pieces. The advantage to doing it this way is that I get in-context anti-aliasing of every piece with the space it occupies.
Fergus: | We each have our preferences. In general, your program will appeal to | a broader base when it can accommodate more preferences than just your | own. For example, Game Courier uses some graphics I don't like and | supports many games I have never become interested in, but it is more | popular than it would otherwise be because I didn't limit it to my own | preferences. Before I invest in that, I would want to be sure that there are actually people that want to use this feature at all. The user base of WinBoard seems to be far more interested in the games they use it for, and how well and reliably it supports the rules of those, than in having multi-colored pieces. They don't use WinBoard for generating artwork to hang on their walls... The way you scale the entire board, if I could find similar function in the Windows graphics library, does sound like it might be very expensive. Doesn't anti-aliasing involve Fourier transforming the image back and forth? You would have to do that every time the board changes (i.e. every move). Anything CPU-intensive is a no-no in a GUI that run on the same machine as the engines. There are already people that are complaining WinBoard currently uses more CPU time than they can afford fo their purpose (wich is playing sub-second games). Although there i a general truth in the things you say, I still think it is good to keep well-defined priorities. There is still so much that can be done. I think the risk that there are people that say: 'I am not going to play Shogi, as the pieces have only a single color' is very small. They are either interested to play Shogi, and would do no matter what to achieve that, or they don't. In fact there is a lot that can be done with just outline and inner color. The Xiangqi pieces you show are in fact just that. The outline and the (solid) piece symbol are one color, the inner regions another. The WinBoard system could easily handle that. You could have designed the Shogi pieces similarly.
25 comments displayed
Permalink to the exact comments currently displayed.
How does that work? Does WinBoard allow the use of graphic images for pieces? Game Courier allows the use of GIF images for pieces. Does it allow any customization of the board's appearance? Game Courier allows GIF, PNG, and JPG images for boards, and it can draw multiple kinds of boards. If WinBoard can use images for boards and pieces, then I would be happy to contribute some.