Check out Grant Acedrex, our featured variant for April, 2024.


[ Help | Earliest Comments | Latest Comments ]
[ List All Subjects of Discussion | Create New Subject of Discussion ]
[ List Earliest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]

Comments/Ratings for a Single Item

Earlier Reverse Order Later
[Subject Thread] [Add Response]
H. G. Muller wrote on Sat, Jan 17, 2009 10:10 AM UTC:
I have nearly completed the first iteration of converting the 'chessd'
Internet Chess Server software to handling variants. I will probably leave
it on for testing overnight (i.e. starting from 18:00 EST). The server now
supports the following variants:

normal Chess
Crazyhouse (zh)
Bughouse (bh)
Chess960 (fr)
Xiangqi (xq)
Capablanca Chess (ca) in various sub-variants (bird, carrera, embassy)
CapaRandom
Shatranj (sj)
Courier
Superchess (su)
Great Shatranj
Knightmate (km)

(In parenthesis is the abbreviation you can use.)

You can download the needed WinBoard client from

http://home.hccnet.nl/h.g.muller/ICSclient.zip

The IP number of the server is 80.100.28.169 (but this is pre-programmed
in the shortcuts included in the ICSclient download)

I will try to leave some bots on the server, so you have automated
opponents (HoiXiangqi, Sunsetter (Crazyhouse), DanaSah (FRC), and FairyMax
(most other variants))

When on the server, type 'who' to see who is logged in. To start a game,
type:

match opponentName 5 1 u variant>

where 5 1 meand 5 minutes + 1 sec/move (you can pick any other time
control that suits you), and variant one of the names given above.

Have fun.

H. G. Muller wrote on Sat, Jan 17, 2009 09:57 PM UTC:
OK, I have been testing a bit, and most things seem to work. The following
details should be mentioned:

* Great Shatranj should be played with legality testing in the WinBoard
client switched off (through the 'Options->General...' menu; untick
'test Legality').

* If you play Courier Chess through the command 'match shamax 5 1 u
courier' it will play in the initial setup that Fairy-Max uses (with a
closed rank of Pawns). To play from the historic initial position with
some Pawns on 4th/5th rank, you should play the subvariant '1', through
the command 'match shamax 5 1 u courier 1'.

* I also added category 'fairy' for some minor 8x8 variants including
unorthodox pieces, the sub-variant indicating which initial setup will be
used. So far only 'fairy archbishop' and 'fairy chancellor' work
(where Q is replaced by A or C, respectively).

* The category 'great' without mentioning a sub-variant will start with
an initial position with a 'Sliding General' (= Mastodon = Q2 = FADW) on
d1/d8. This in deviation to the 'official' rules of Great Shatranj, which
has a 'General' (= Commoner = FW) there. For the logic of the variant I
actually like that better. (As it replaces every slider move of Capablanca
Chess by a jump of range 2.) To play with the 'General' on d1/d8 you
should use a subvariant specification 'great shatranj' (i.e. start the
game with the command 'match shamax 5 1 u great shatranj'.)

* Note that in the great' category promotion can be to 'General' or any
captured piece, even when the initial setup contained a Sliding General in
stead of a General. To this end the captured pieces are displayed next to
the board. When you promote, you should click the piece of your choice
from the available pieces in the holdings, to finish the move. (The ShaMax
bot always promotes to General, even if more valuable pieces were
available; This is a limitation of Fairy-Max.)

H. G. Muller wrote on Tue, Sep 29, 2009 08:34 AM UTC:
Last week I bought an Asus EeePC 1000 laptop, to serve as a dedicated
computer for running my ICS. Sunday I managed to install Linux on it, and
the Chessd server. So from now on the Variant-ICS will be up and running
24/7.

Variants that people can currently play there are:

Bughouse
Crazyhouse
Chess960
Capablanca Chess, with some sub-variants:
  Bird
  Carrera
  Embassy
  Sovereign
{unspeakable}
Capablanca Random Chess
Shatranj
Superchess
Great Shatranj (requires legality-testing to be off in WinBoard)
Fairy (some minor variants replacing Q on 8x8 by an unorthodox piece)
  Archbishop
  Chancellor
Orthodox Chess
Xiangqi
Shogi (might not fully work yet)

To connect, use IP address /icshost=80.100.28.169 in WinBoard. You can
login under any name, but if you want a registered account (so the server
will keep track of your rating), you must send me an e-mail (as per
instructions readable on the ICS).

Like with any starting ICS, when you login there, you will probably be
alone. So until it gets really busy (if it ever will), if you really want
to play, arrange an opponent by appointment. I have provided two computer
opponents that should be logged in permanently, FairyMax and MaxQi.

Have fun!

Nicholas Wolff wrote on Tue, Sep 29, 2009 10:22 AM UTC:
If you find a way to have support for Macs, you might see me on there :)

H. G. Muller wrote on Tue, Sep 29, 2009 12:16 PM UTC:
Well, XBoard 4.4.0 should be able to run on a Mac. Hans Aberg was even able
to compile it for a Power-PC Mac. And if you can't install from source:
there was a request on the WinBoard forum for a binary Mac version, and
perhaps some Mac user that is set up for compiling will make one available
for hosting there.

Sam Trenholme wrote on Tue, Sep 29, 2009 05:32 PM UTC:
I would like to quickly point out that the help files are out of date; there is no Capablanca setup of the pieces that is currently patented.

Also, can you combine 'wild' with 'board's like Capablanca?

Finally, is the source code to this server available?


H. G. Muller wrote on Tue, Sep 29, 2009 07:00 PM UTC:
Well, it says 'was patented', pasted tense. I think my strategy for
avoiding conflicts is a lot more sensible than censoring the occurrence of
a certain word in any context, like is done here on CVP...

The source code can be downloaded from:
http://home.hccnet.nl/h.g.muller/capablanca.tar.gz
To my dismay I found out that I can no longer compile it on Ubuntu 9.04
(which I had to run on the server because older versions did not recognize
my network card and left me without internet connection). I get an obscure
error in some script that generates C source files. So I have to compile it
on Ubuntu 8.04 (Hardy Heron), and then transfer the binaries to the EeePC laptop. (I just found out that the mentioned tarball contains a bug; in 
board.c it has swapped the 'A' and 'H' for indicators of Xiangqi Advisor 
and Knightrider, so that Xiangqi did not work.)

The way categories and boards are implemented is by directory and filenames. Each category is a directory name, and each file in that directory corresponds to a board name. So in the standard setup there were files wild/1, wild/2 etc. The contents of the files described the positon. I extended that to also specifying board size, castling type, holdings type, pawn type and of course having more piece types. So the files pretty much describe the game, no matter in which directory they are placed. But the problem is to convey that info to the WinBoard client. WinBoard derives the variant it is playing from the 'Issuing' message of the ICS, which contains as only clue about the variant 'loaded from category/board'. So the naming of categories and boards must be such that WinBoard recognizes the variant that belongs to the position and game rules described in the corresponding file. The WinBoard variant-name parser recognizes wild/# or w/# as the FICS or ICC wild types, but such naming is not very user friendly. It also looks for occurrence of a sub-string equal to a WinBoard variant name. This is why wild/crazyhouse does work as well. I make use of this mechanism by naming the directories after the variant that WinBoard should switch to, and then put all boards belonging to that variant in that directory. So capablanca/bird is recognized as variant capablanca, and the opening array is then taken from the file bird. When no board is mentioned, the filename for it defaults to '0', so capablanca/0 is a file that contains the Capablanca array. When playing on ICS the ICS sends a full board position for every move (even your own) so knowing the opening array is never a problem for WinBoard. There is no restriction on the type of position that can be in the board files.

Sam Trenholme wrote on Thu, Oct 1, 2009 06:09 PM UTC:
To my dismay I found out that I can no longer compile it on Ubuntu 9.04 (which I had to run on the server because older versions did not recognize my network card and left me without internet connection). I get an obscure error in some script that generates C source files. So I have to compile it on Ubuntu 8.04 (Hardy Heron), and then transfer the binaries to the EeePC laptop

You know, I used to be a Linux fanatic. Then I started using Ubuntu. Now my computer, which I bought as a Linux laptop, runs Windows XP. The problem with Ubuntu is that it’s, as you have observed too unstable: The drivers are too unstable, the software API is too unstable, etc. Since the majority of Linux developers are unpaid, there is no central command and control that can keep the programmers disciplined enough to make a commercial grade desktop product like Windows or MacOS.

The only version of Linux I use today is a free RedHat enterprise Linux clone called CentOS. Hardware support comes slowly; my laptop’s hardware is not fully supported in RHEL/CentOS 5 so I have to wait until CentOS 6 (should be early to mid 2010) before considering running Linux on my computer again [1].

The advantage of RHEL is that, once a given piece of hardware is supported, the OS is supported with bug fixes and security enhancments for a period of seven years. At the start of 2014 Windows XP will still be supported by Microsoft (at least in theory; there is a known bug with XP’s TCP/IP stack if you run a TCP server like Apache or FICS that Microsoft will not fix, since XP isn’t designed to run TCP/IP services); RHEL 5 will still be supported by RedHat. This kind of EOL schedule allows me to upgrade my OS on my timeframe, not the timeframe of some random Open-Source developer on the internet.

Looking at the server, it looks incomplete. Variants do not appear to have “Examine” support and the help files do not describe all of the supported variants.

I think the type of server people are looking for is a server where one can define their own rules (or, at least your own setup and have both players agree on the rules) and move pieces the way you want to. I think play-by-mail makes more sense for Chess variants because, since the game is new, people need more time to think about the next move they will make.

Most Chess variant players like making new Chess variant rules and trying out the new variant for only a few games before moving on to the next variant. I think we’re somewhat unusual in that we would probably be happy playing different Capablanca Chess and FIDE Chess opening setups for the rest of our lives. I even stay with a given variant long enough to develop opening theory for the variant—I think Schoolbook is unique in having an opening book.

[1] In the meantime, I do run CentOS 5 in a virtual machine, mainly for software development purposes.


H. G. Muller wrote on Fri, Oct 2, 2009 07:52 AM UTC:
You correctly noticed that the server is not finished. The help files are a
minor problem; it is just a matter of putting a text file with the
corresponding name in a certain directory. But so far I only had time for
making descriptions of the more common variants that were not so common
that I thought a description was not needed.

The examin support is something I would have to look in to. I don't even
know what examining a game is, on an ICS. There might be a problem with
restoring the variant; I also noticed that when you have an adjourned game
that is automatically resumed when you match the same opponent, it is not
announced as the correct variant, so WinBoard often thinks the moves are
illegal. I will definitely have to fix that.

I am not very happy with the way the game rules are implemented in this
server. For every piece type there is separate code. And not only one
routine, but two: one to determine if a given move is (pseudo-)legal, and
another one to generate all moves for that piece. This makes it hard to add
new pieces; I'd rather seen that the whole process is table-driven, the
table with piece definitions being read from an external file. The
flexibility suggested by having a dedicated routine for every piece is also
largely illusory. If you would want to use it to implement pieces with side
effects, such as Mats' Catapult pieces, it turns out checkmate testing
does not work anymore: it hinges on testing if any of the moves from an
opponent piece to the King is pseudo-legal, and would not notice if the
King is captured by a side effect. This part of the code should be
completely redesigned. Another inconveniece is that there is no
variant-dependent mapping of pieces to letters. This forces me to have
duplicates of the code to handle certain piece types just to make sure that
they can be used in one variant onder one name, and in another under
another name.

I think that an ICS of this type caters to a different kind of audience
than you describe. There are plenty of people that ar not interested in
designing variants, but just want to play one particular variant. And as a
consequence know it well enough that they want to play it as a blitz or
even bullet game, rather than as corresponcence chess. You won't find
those people here on CVP, of course, but they do exist. Especially for 10x8
Chess.

To experiment with new rules, it is questionable if a rule-enforcing
server is needed or even desirable. I think it should be easy enough to add
one 'free' variant where the ICS acts only as a passive chess board, not
unlike WinBoard edit-position mode, where each player can grab any piece
and move it wherever he wants. Even if it is an opponent piece, or when it
is not his turn. They should be able to set up an arbitrary opening
position on boards of various sizes, and then simply move the pieces
around.

Sam Trenholme wrote on Fri, Oct 2, 2009 05:57 PM UTC:
The examin support is something I would have to look in to. I don't even know what examining a game is, on an ICS.

Examining a game means you move pieces around on a board without the game being rated. It would be a great way for people to get a sense of what a variant is like without having to play a rated game with the variant.


H. G. Muller wrote on Tue, Oct 20, 2009 02:16 PM UTC:
I have made some more hacks to the server code, in an attempt to repair the
variant support for examining games. It seems to work better than before,
in particular because I improved reading and writing FENs (from which all
non-orthodox piees were deleated before, and which were used to store the
initial position of games stored on the server).

Could you have a look what the remaining problems are? I am not familiar
with this form of ICS usage at all, and that makes it difficult to judge if
thngs work as they should... :-(

The latest WinBoard is at http://home.hccnet.nl/h.g.muller/winboard.zip .

Sam Trenholme wrote on Tue, Oct 20, 2009 04:24 PM UTC:

Hey, it looks like you never telnetted in to a Chess server.

Basically, a client like xics or winboard is a pretty GUI front-end; one would telnet in to the Chess server (either with or without a GUI client). There, you could shout with other players, chat in channel 1 or any other channel, flirt with the few girls who would show up—or play chess.

It was possible to play chess on the server using crude ASCII graphics, with an ASCII diagram for the board (R=Rook, etc.) if you were using a simple telnet client and didn’t have a graphical client—I even played ICS chess using dumb terminals back in the day, before the big mid-1990s FICS-ICC split.

The clients came later, allowing people to have an attractive looking board to play chess on their screen. There was also an ICS-like server for people playing Chinese chess, one for people playing Go, and I think even one for Shogi.

If you have a telnet client around, telnet in to your server and see what it’s like. Some basic commands:

  • help RTFM is easy on the FICS server.
  • match player, where player is the player you wish to play
  • examine examine a game already played
To telnet in, telnet 80.100.28.169 5000 and take a look around. As an aside, the ASCII grpahics for Capa boards don’t look right. Also, I was unable to enter in any moves when telnetted in without it telling me the move was illegal.

H. G. Muller wrote on Tue, Oct 20, 2009 05:46 PM UTC:
Indeed, I never use telnet to play Chess. Only to manage my monthly on-line
computer blitz tourney, as admin (entering account names, and controlling the 'mamer' tournament manager. I supposed that no one does this anymore,
and did not even bother to adapt the boards style 1-10 to unorthodox
pieces. Only style 4 sort of works for Capablanca variants. (Problem is
that this is very cumbersome to adapt, as all these boards are built by a
table-driven routine that contains litteral strings tuned to an 8-wide
board for each style.) So I just used the ICS protocol as a low-level
carrier for communication with the graphical client, through board-style 12
(which is a machine style).

The clients also use only long algebraic notation (e2e4, b8c6, etc.), so I
never bothered to program the letter codes for unorthodox pieces into the
SAN parser of the ICS.

Should I?

Sam Trenholme wrote on Tue, Oct 20, 2009 06:23 PM UTC:
If a lot of old legacy stuff the FICS code has always had for people using dumb terminals to log in to the Chess server is disabled when adding variant support, this, I feel, needs to be properly documented.

The help command should summarize the changes done, or point to a help topic that explains stuff like the variant ICS server always using style 12, moves needing to always be entered in c2c4 format, examine being broken, and what not.

There’s a lot of cruft in the FICS client from the days when a lot of people didn’t have chess clients—this was back when a lot of people didn’t have computers at home (a decent computer cost $2000), and installing game software on shared lab computers was problematic. Cleaning up this cruft is understandable but should be documented to reset the expectations of us who do remember the old-school FICS client.


H. G. Muller wrote on Fri, Oct 23, 2009 04:10 PM UTC:
You were right, Sam! Your remark that it did no longer acept any move
puzzled me, but it turned out I had wrecked the SAN move parser: I shifted
the rank number somewhere by 1 on boards smaller than 10 ranks, but this
inadvertantly also shift the wildcard code for a non-given rank, so that it
was no longer recognized as a wildcard. :-(

I fixed it now, and also fixed the printing of the boards in styles < 12.
Even the Bishop-confusion resolution should work now for all fairy pieces:
if you type ab6 or axb6, it can either be interpreted as a Pawn or an
Archbishop move, and if both are possible, the pawn move is preferred if
you spelled it lower case.

So playing by telnet should work now.

Sam Trenholme wrote on Sun, Oct 25, 2009 07:02 PM UTC:
Thank you for the code update.

16 comments displayed

Earlier Reverse Order Later

Permalink to the exact comments currently displayed.