Comments/Ratings for a Single Item
I will try to test this soon.
A non-royal King seems a good idea.
Crowned rook and crowned bishop could be good candidate as they are used also in the shogi inspired variants.
Most of the pieces in Cavalier Chess are currently being represented by substitute images in the Jocly version of the game. The Cavalier King (or Eques Rex) is currently represented by a King instead of a piece combining the King with a Knight. Some kind of mounted King or crowned horse head might be appropriate for this piece. It would also be useful to have this for Fusion Chess, where a player could have either a King or a Cavalier King. The Nightrider is represented by a Unicorn instead of a dedicated Nightrider image. A masked person riding a horse would be appropriate. Or maybe some variation on 2D images for the piece, such as a horse head with a more flowing mane or a masked horse head. The Marshall and Paladin are using the Camaratta designs for Chancellor and Archbishop, but I would like to use images that show the compound nature of the pieces better, such as a horse head on an inverted Rook for the Marshall and some kind of mounted Bishop or religiously decorated horse head for the Paladin. The Cavaliers are represented by Knight images. This works in a game without any actual Knights, but it would be good to have somewhat different images for these pieces in a game that might include both.
For the I, I vote for the Man, non-royal King. Actually I have often used I for my Prince (Man+Pawn) which is not far from that.
I have a different point of view on this issue. For me the Camaratta designs are excellent, very elegant. I appreciate that Marshall and Cardinal have their own shape and not a "Frankenstein" design. After all, the Queen is not represented by a Bishop's miter over an inverted Rook.
I hope that the Camaratta's design will not disappear on Jocly.
@Fergus: Well, you choose the pieces when you implement the game. If unusual pieces are required, I guess the only option is to create those yourself. It should be considered part of the work implementing the game. Most people seem to prefer the Camaratta pieces.
I think the Knights for the Cavaliers are a good choice, BTW, as they are demagnified Knights. They would not be easily confused with a normal Knight, if both were on the board. If you already consider it confusing to represent Cavaliers by Knights, imagine how it would be if the Camaratta piece would also be replaced by Knightlike shapes...
I did make a dedicated Nightrider, as a Horse that seems to run rather than prance; it is also on a taller pedestal, and is available as fr-nightrider in the fairy-set-view. That board also shows pieces fr-ferz-knight and fr-wazir-knight, where I made the shape of the pedestal indicate the enhancement. As these are diagonal and orthogonal enhancements, they could also be taken to hint at added Bishop and Rook motion. So you could use these instead of the Camaratta pieces.
If unusual pieces are required, I guess the only option is to create those yourself.
Since I don't know how to make 3D pieces, I can only use the ones others are making available. I just brought up some examples of other pieces it would be good to have 3D images of, and I used Cavalier Chess as a context for mentioning them.
I did make a dedicated Nightrider, as a Horse that seems to run rather than prance; it is also on a taller pedestal, and is available as fr-nightrider in the fairy-set-view.
I had a hard time telling it from Knights. I had to figure out which it was by clicking on pieces to see how they move.
That board also shows pieces fr-ferz-knight and fr-wazir-knight, where I made the shape of the pedestal indicate the enhancement. As these are diagonal and orthogonal enhancements, they could also be taken to hint at added Bishop and Rook motion. So you could use these instead of the Camaratta pieces.
I would rather not. The Camaratta pieces are easier to tell apart.
Since I don't know how to make 3D pieces, I can only use the ones others are making available. I just brought up some examples of other pieces it would be good to have 3D images of, and I used Cavalier Chess as a context for mentioning them.
Well, you know what they say, beggars can't be choosers. ;-) None of us here really knows how to make 3D pieces. I now have a way to generate pieces that consist of cylindical or conical sections, possibly reoriented, but that is all. Making something like the Knight is totally out of the question. The Knight-like pieces shown in that display were all created by distorting the existing Knight with the aid of a computer program that read in the list of vertex coordinates and then applied a geometrical transform to it. (Like shifting it upward, or in the case of the Nightrider applying a shear transformation.) And then distort the pedestal by hand-editing some of the vertex coordinates at the base. So of course they look very similar.
I will probably upload the tool I made for creating the tube-like pieces, so everyone can use it. It is not difficult to use. Just tedious. You have to edit a list of ring heights and diameters that defines the shapes, generate the piece, copy the files to the Jocly library (for which I use a small shell script), make the browser running Jocly with a game that uses the piece reload the new files and the game, so you can see how it looks. And then tweek it to remove the things you don't like. Rinse and repeat, ad nauseam. If you started drawing the cross section of the piece on millimeter paper it probably doesn't need too many iterations before you get it right. It helps to create a Jocly game that shows the piece in a place where you can easily zoom in on it, without first having to move pieces around to get it there.
I extended the cbPiecesFromFEN function to also propose a description of the castlings. That means it basically returns a complete game definition, which could be directly returned by the cbDefine function describing the game.
This means the implementation of, say, Capablanca Chess can be reduced to
(function(){ var geometry=Model.Game.cbBoardGeometryGrid(10,8); Model.Game.cbDefine=function(){ return this.cbPiecesFromFEN(geometry, "rnabqkbmnr/pppppppppp/10/10/10/10/PPPPPPPPPP/RNABQKBMNR"); } })();
The description of this new feature is this:
The returned object might also contain a property 'castle', if a King
and Rooks were present in the FEN and on the same rank. The default
displacement of the King is calculated by subtracting 3 from the
board width, and dividing that by 2, rounding down. That makes 2 on
8-wide boards, 3 on 9- and 10-wide boards, etc. The distance of the
left Rook from the edge is subtracted from this, though.As castlings are highly variable it is likely that this is not what
you need. Therefore the returned object also has a methodp.setCastling(kstep,partnerName)
which you can use to force the King step you want, and let it castle
with other pieces than the Rook. If the second argument is omitted
it will default to 'rook', though. When you don't want any castling
at all, you simply do not copy p.castle to the castle property
in the object your cbDefine function returns.
Thanks for the explanation, it will simplify the creation of variants. I'll have a look next week. I'll keep you posted.
I started testing cbPiecesFromFEN with grand chess to get a 10x10 example. It worked like a charm. I was able to reuse the existing method for promotion. I'm going to do a test on a 12x12 variant: wild babur to be able to leave a code example. I'll have a chance to test addPiece.
I think the addition of a prince would be interesting for MakePiece in the fairy-move-model.
For the move : man + pawn, as we might fast move on large chessboards (>10*10).
For visualization, we'll have a choice between fr-prince, fr-admiral and fr-man. I know that fr-prince doesn't get unanimous approval. For my part, I can get used to all three.
Note that michel will be leaving for several months from 15/01, it might be a good idea to send him a partial merge request containing the variants ready beforehand to give him time to integrate them (elven ...). We'll be able to uncomment the rest afterwards for a smaller 2nd pull request.
He's understood the value of fairy-move-model and I think he'll be following it closely, even from a distance.
I am thinking now of whether we can also provide help on the view part. There the routine cbMoveMidZ usually requires a non-trivial custom definition, to decide which moves should jump and which slide. In orthodox Chess this is easy: only the Knight jumps, and it always jumps. For pieces like the Archbishop it already gets more tricky: you want its Knight moves to jump, but the Bishop moves to slide.
In principle it should be possible to examine all piece graphs, to determine which destinations of a piece can be blocked (so that the move to those must slide), and which can be reached directly. The latter must jump, unless they are adjacent, in which case it is more natural to slide.
Pieces like a Dababbarider preferably should use a kangaroo bouncing motion to reach there destination, but I guess Jocly doesn't support that. ;-)
Indeed, being able to animate the pieces according to their movements would be the icing on the cake.
I think the addition of a prince would be interesting for MakePiece in the fairy-move-model.
Well, I added the Crowned Rook and Bishop, for letters 'D' and 'H', to correspond with their usual Shogi designation Dragon(-King) and (Dragon-)Horse. To make the H available for this I moved the Champion to 'O' (for Omega Champion, just as I used X for Xiangqi Cannon).
This leaves 'F', 'I', 'J' and 'Y' still unused. I am in doubt about the Prince; I know Jean-Louis uses it a lot, but otherwise it is not a very well-known piece. So I am not sure whether I should prefer it over a normal Commoner (or perhaps include both).
As to Michel's leaving: it would be nice to push something before that, but we should be careful to not do things in a rush, so that we have regrets, and have to alter them later. For instance, now that I have made new pieces, I might want to use those in variants I made earlier (e.g. a real Phoenix in Team-Mate Chess, and the 2d icons for the generals in Chu Shogi). I am also pretty sure that there are more elegant ways to rescale pieces than keeping around a duplicat of their .js fil with an altered scale property in it.
Perhaps I should create a new branch, initially a copy of 'trial', in which I would then reorganize all commits such that those applying to the same feature become sequential, and then squash those into a single commit. And only then send Michel a pull request for it. E.g. the development of fairy-move-model now involves many commits (some still to come?), and it would be nice if it was committed as a single completed module to the master branch.
I agree that we need to take the time to finalize the variants with the right icons and not act in haste. An elegant squashed commit of a coherent subset when it's ready is still a good idea.
By the way, is there a simple way of retrieving the piece type id (piece.t) from a string to facilitate the creation of custom promote functions when using cbPiecesFromFEN?
For example, Can we find out whether a piece parameter corresponds to a tower or a rider or a pawn more easily than logging this.pieces[i]?
By the way, is there a simple way of retrieving the piece type id (piece.t) from a string
Yest, there is. The returned object p contains an array p.name2nr[], which you can index with the name (like 'rook').
This leaves 'F', 'I', 'J' and 'Y' still unused.
Falcon, Immobilizer, Jester?
For the Y, I'd be prone to putting in something completely out of left field, like Pyramid, Frog, or Kangaroo, but I'm probably (and understandably) the only one. Do you have an Archer and a Squirrel already?
I have not followed your list. Have you included a Centaur (NK)? Sometimes I use J for it (=Judge).
Thanks
I have merged our change in wikipedia-fairy-sprites.png (hawk and terror) and fairy-set-view.js (+ res/fairy/terror/) If you can, you should retrieve at least that from : https://github.com/fhoudebert/jocly/tree/trial
Have you included a Centaur (NK)?
You can easily fulfill the unused Y by Yaguar (Jaguar), name of Centaur in Chak. I agree with that name and notation because it’s difficult to find another candidate for it.
Falcon, Immobilizer, Jester?
As Jocly currently does not support Immobilizers or Jesters, it is pointless to create an opportunity for selecting those more easily...
The question is not "Do you know a piecename that starts with ...?". The question is: "which piece with a move that is supported by the standard version of Jocly (so that no custom code is needed to handle it) and no side effects (for which Jocly never has standard support) would occur in variants so often that it pays to define a shortcut for including it?".
That excludes Immobilizers (side effect), Jesters (no fixed move), Grasshoppers & Korean Cannons (non-capture hopping is not supported), Falcons (virtually never used in any variant).
The Centaur is a good suggestion. Perhaps the Steward (omni-directional Pawn).
The idea of the steward seems relevant. Would this be the same behavior as the soldier used in some variants?
Would this include the Steward Chess promotion rules?
@HG: maybe a same letter could support 2 pieces that share a lot in common and that are unlikely used in the same variant? If yes, I would think to Prince and Man for one hand, and to Buffalo (NCZ) and Wildebeest (NC) in the other hand.
I need to look at what is proposed for the other letters to see what is missing. The Steward is found in some 19th variants indeed.
Last point, have you seen my message on the png icon for the Badger? It is not at the right size nor the right color (for both w and b). It shouldn't be difficult to fix that. Thank you.
I hadn't seen this message before, I was wondering if the "piece-creator tool" was a home-made command-line tool?
It sounds magical to me, could it be used by other people?
25 comments displayed
Permalink to the exact comments currently displayed.
No I don't think there is an issue in this case.