Nightrider chess

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
hgm
Posts: 27788
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Nightrider chess

Post by hgm »

PK wrote:hi,

I've got two questions:

- do I understand correctly that a nightrider is basically a sliding knight? does it slide in all directions?
- how strong is the beast - 6 pawns perhaps?
Yes, you understand correctly. The common technical term for a piece that repeats its step an indefinite number of times is rider, though. The term slider is reserved for the special case of a rider where the squares visited form a contiguous set (only the case for Rook and Bishop and their compounds).

A preliminary test I conducted long ago suggested that it was 60 cP more valuable than a Rook. (Replacing the Rooks of one side by Nightriders in the opening position.)

Note that I since learned that such tests tend to underestimate the Rook value (i.e. it measures the early opening value of the Rook, which is lower than the one we usually employ.)
User avatar
Jim Ablett
Posts: 1383
Joined: Fri Jul 14, 2006 7:56 am
Location: London, England
Full name: Jim Ablett

Re: Nightrider chess

Post by Jim Ablett »

Update to FaileNR.

FaileNR 1.4.5 by Adrien Regimbald

Fixed an error in Nightrider conversion.

http://www.zshare.net/download/144599891d72a5d9/

Jim.
User avatar
Jim Ablett
Posts: 1383
Joined: Fri Jul 14, 2006 7:56 am
Location: London, England
Full name: Jim Ablett

Re: Nightrider chess

Post by Jim Ablett »

hgm wrote:I am not sure how you configured WB and the engines to let them play a game of Nightrider Chess: WinBoard_F does not accept /variant=nightrider (yet?), so I suppose you play either as fairy or as normal (unlike what you write in the FaileNR readme).

Faile seems to be a protocol 1 engine, so it doesn't tell me which variants it supports when I run it from the console. I did type variant fairy, and used the edit menu to feed it a position, where I used the letter H for Nightrider. This seemed to work: when I then give a 'go'command it prints a number of PVs, amongst which I see the move b1d5. So it seems to understand the H as Nightrider.

But if I try Dabbaba from the console, (having set the Nightrider switch to 1 in dabbaba.ini), it chokes on the 'setboard' command containing the H pieces in the FEN. It is not even capable of echoing the 'go'command anymore (which I give later), and uses full CPU without producing any output ever. The same happens when I run under WB in /variant=fairy with the FEN position containing Nightriders (H), or even normal Knights (N).

So how should I use Dabbaba?
I'm running all engines (Dabbaba after select Nightrider switch 1 in dabbaba.ini) in Winboard-F normal mode. /variant=nightrider switch of
course means nothing in Winboard-F, but I made LimeNR use it just so it will complain if someone tries to play any other type of game as this is all it supports.

Jim.
User avatar
hgm
Posts: 27788
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Nightrider chess

Post by hgm »

Couldn't you let all protocol-2 engines have print variants="fairy" in stead? That would solve the problem of people trying to play other variants with it just as well.

I still was not able to run Dabbaba when I set the Nightrider switch in its .ini file to 1, not even from the console. It hangs using full CPU as soon as I send it a setboard command.

I also have a (very mysterious) problem with LimeNR: When I run it from WinBoard_F, WinBoard_F again running from PSWBTM, in stead of appearing as an engine process that communicates to WB through pipes, the LimeNR process pops up a console window (with no output), and the game hangs (until WB lets LimeNR forfeit on time). Strange thing is that when I start it from the 'launch engine' button in the engine manager of PSWBTM, it does run without problems, and I can play against it by hand. I have not studied the winboard.debug yet. It might be that this has to do with running as second engine, rather than first.
User avatar
Jim Ablett
Posts: 1383
Joined: Fri Jul 14, 2006 7:56 am
Location: London, England
Full name: Jim Ablett

Re: Nightrider chess

Post by Jim Ablett »

hgm wrote:Couldn't you let all protocol-2 engines have print variants="fairy" in stead? That would solve the problem of people trying to play other variants with it just as well.

I still was not able to run Dabbaba when I set the Nightrider switch in its .ini file to 1, not even from the console. It hangs using full CPU as soon as I send it a setboard command.

I also have a (very mysterious) problem with LimeNR: When I run it from WinBoard_F, WinBoard_F again running from PSWBTM, in stead of appearing as an engine process that communicates to WB through pipes, the LimeNR process pops up a console window (with no output), and the game hangs (until WB lets LimeNR forfeit on time). Strange thing is that when I start it from the 'launch engine' button in the engine manager of PSWBTM, it does run without problems, and I can play against it by hand. I have not studied the winboard.debug yet. It might be that this has to do with running as second engine, rather than first.
Ok Harm, I'll change them to /variant=fairy. I'll take a look at the other problems. Lime is both winboard/uci. Maybe adding the usual -xboard switch will solve it's problem.
User avatar
hgm
Posts: 27788
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Nightrider chess

Post by hgm »

OK, I made a debug file for the Lime problems:

Code: Select all

recognized 'fairy' (-1) as variant fairy
WinBoard 4.3.13 + ..\..\fairyengs\LimeNR_62_ja\limeNR
Reset(1, 0) from gameMode 0
recognized 'fairy' (-1) as variant fairy
GameEnds(0, (null), 2)
GameEnds(0, (null), 2) clock stopped
GameEnds(0, (null), 2) after test
StartChildProcess (dir="..\..\limeNR_62_ja") ..\..\fairyengs\LimeNR_62_ja\limeNR
639 >first : xboard
protover 2
639 <first &#58; 
639 <first &#58; numelem = 666666
639 <first &#58; Hash size 16000 kB
639 <first &#58; 
639 <first &#58; Lime by Richard Allbert
639 <first &#58; ------------
639 <first &#58; Version v62 JA
639 <first &#58; 28-06-08 Build
639 <first &#58; Lime Homepage&#58;
639 <first &#58; http&#58;//www.geocities.com/taciturn_lemon/index.htm
639 <first &#58; 
639 <first &#58; Nightrider variant version &#91;Jim Ablett 28-06-08&#93;
639 <first &#58; 
639 <first &#58; 
639 <first &#58; received protover
639 <first &#58; feature usermove=1
639 >first &#58; accepted usermove
639 <first &#58; feature ping=1
639 >first &#58; accepted ping
639 <first &#58; feature setboard=1
639 >first &#58; accepted setboard
639 <first &#58; feature reuse=1
639 >first &#58; accepted reuse
639 <first &#58; feature colors=0
639 >first &#58; accepted colors
639 <first &#58; feature variant=nightrider
639 >first &#58; rejected variant
639 <first &#58; feature name=0
639 >first &#58; accepted name
639 <first &#58; feature done=1
639 >first &#58; accepted done
655 <first &#58; received accepted
655 <first &#58; received accepted
655 <first &#58; received accepted
655 <first &#58; received accepted
655 <first &#58; received accepted
655 <first &#58; 
655 <first &#58; error rejected variant
655 <first &#58; received accepted
671 <first &#58; received accepted
733 >first &#58; new
random
733 >first &#58; variant fairy
733 >first &#58; level 40 1 0
733 >first &#58; post
733 >first &#58; hard
733 >first &#58; easy
733 >first &#58; ping 1
FEN castling rights&#58; 7 0 4 7 0 4
733 >first &#58; force
write FEN 50-move&#58; 0 0 0
e0. p=-4
733 >first &#58; setboard rhbqkbhr/pppppppp/8/8/8/8/PPPPPPPP/RHBQKBHR w KQkq - 0 1
Load Position
733 <first &#58; received new
733 <first &#58; received random
733 <first &#58; 
733 <first &#58; error variant fairy
733 <first &#58; received level
733 <first &#58; movestogo = 40
733 <first &#58; received post
733 <first &#58; received hard
733 <first &#58; received easy
733 <first &#58; received ping
733 <first &#58; pong 1
733 <first &#58; received force
733 <first &#58; 
32214 <first &#58;  FEN ILLEGAL NUM. Press a key to close me.Druk op een toets om door te gaan. . . 
Fatal Error&#58; Error&#58; first chess program (..\..\fairyengs\LimeNR_62_ja\limeNR&#41; exited unexpectedly
GameEnds&#40;0, &#40;null&#41;, 2&#41;
GameEnds&#40;0, &#40;null&#41;, 2&#41; clock stopped
GameEnds&#40;0, &#40;null&#41;, 2&#41; after test
39232 >first &#58; quit
It seems that Lime chokes on the FEN with the Nightrider Chess initial position that I send it. Most likely because it does not like the letter H for Nightrider in that FEN. So it seems we have to tune the protocol a little so that all engines can use the same.

Currently WB does not know a variant nightrider, and to set an engine to play Nightrider Chess, it sets it to variant fairy, and then sends it the FEN of an initial position containing nightriders, inicated by the letter H in the FEN of the setboard, or (for protocol 1 engines) the edit command.

It is essential for the protocol to use a different letter for Nightrider than for Knight, as other variants played as variant fairy will have initial positions with ordinary Knights (and then Chancellors in stead of Queens, or whatever). Furthermore, Knightriders and orthodox Knights must be able to appear together in some fairy variants.

I guess it would work with all current engines if I play them as variant normal, because then no FEN would be sent by WB, (and no variant command), and apparently all engines are rigged such that they automatically play Nightrider Chess if normal is requested. (Which in itself is a protocol violation). This has the disadvantage that you have to play it without legality testing, and that the Nightrider is displayed as a normal Knight. While WB_F does know about a Nightrider, has a special bitmap for it distinct from a Knight (at board size middling & bulky), and could test legality of its moves and thus get the check and checkmate suffixes in the pgn correct, do proper disambiguation of the SAN, etc.).

Furthermore, for engines that actually do support multiple variants in response to the variant command, (such as Fairy-Max) it is very inconvenient that I would have to make special versions that only play one variant and lie about its name.

I am not sure why Faile seems to work under variant fairy with the nightrider setup; perhaps it ignores the edit command altogether.

So my request:

please let all engines tell that they support vaiant fairy, and let them accept H in the edit menu or FEN reader for Nightrider. Even if internally they use the same representation for Knight and Knightrider, just make it that they understand both H and N as the same piece. Usually this would only require an extra case label in their FEN reader or edit menu.

Also note that WB protocol requires double quotes around the variants in the variant command, even if there is only one.


I try to develop the protocol with as little variants as possible, and group variants with identical rules but a different opening array under the same variant. For 10x8 variants, for instance, this means that variants like Bird, Embassy, Carrera, etc. all are played as variant capablanca, with a user-defined initial position. Similarly, I want variants like Nightrider Chess, Chancellor Chess, Janus Chess and the like on 8x8 boards played as variant fairy, with custom made setups. But to make that work, the different fairy pieces need to be represented by different letters.
User avatar
Jim Ablett
Posts: 1383
Joined: Fri Jul 14, 2006 7:56 am
Location: London, England
Full name: Jim Ablett

Re: Nightrider chess

Post by Jim Ablett »

Updates to the Nightrider engines now available:

FaileNR 1.4.6 JA by Adrien Regimbald
Changed Faile to use variant fairy and set knights
to use 'h' instead of 'n' piece representation internally.
http://www.zshare.net/download/1458805132b1b1bd/

LimeNR v62.1 JA by Richard Allbert
1. Changed LimeNR to use variant fairy and set knights
to use 'h' instead of 'n' piece representation internally.
2. Fixed starting as black problem by disabling 'setboard'
http://www.zshare.net/download/14587963b025139d/

I also fixed Dabbaba, but I'm waiting for a new src update
from Jens (he's started working on it again himself :) ).

Jim.
User avatar
Jim Ablett
Posts: 1383
Joined: Fri Jul 14, 2006 7:56 am
Location: London, England
Full name: Jim Ablett

Re: Nightrider chess

Post by Jim Ablett »

Dabbaba update:

Dabbaba 1.13wb JA by Jens B‘k Nielsen.
----------------
1. Time control & eval changes by Jens B‘k Nielsen.
2. Changed Nightrider to use variant fairy and set knights to use 'h' instead of 'n' piece representation internally.
3. Setboard is disabled when fairy variant is selected. (fixes playing as black problem)

http://mihd.net/4as8gvu

Jim.
User avatar
hgm
Posts: 27788
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Nightrider chess

Post by hgm »

When you say setboard is disabled, do you mean it is simply ignored? (So the engine always starts in the normal opening setup but with Nightriders replacing Knights?) Or does the engine tell WB that it does not know the setboard feature, so that WInBoard uses the 'edit' command to set up the position (and is this ignored?)

What was this 'playing as black' problem anyway? How can that be different in Nightrider Chess as in other variants?
User avatar
Jim Ablett
Posts: 1383
Joined: Fri Jul 14, 2006 7:56 am
Location: London, England
Full name: Jim Ablett

Re: Nightrider chess

Post by Jim Ablett »

hgm wrote:When you say setboard is disabled, do you mean it is simply ignored? (So the engine always starts in the normal opening setup but with Nightriders replacing Knights?) Or does the engine tell WB that it does not know the setboard feature, so that WInBoard uses the 'edit' command to set up the position (and is this ignored?)

What was this 'playing as black' problem anyway? How can that be different in Nightrider Chess as in other variants?

When playing variant fairy this command is sent only to black engine at start of game >

Code: Select all

setboard oheqkbnr/pppppppp/8/8/8/8/PPPPPPPP/OHEQKBNR w KQkq - 0 1
Both Dabbaba and LimeNR choke on this, so I just disabled setboard using feature command (setboard=0) when variant fairy is used.

Jim.