Final Announcement On-Line Blitz Tourney

Discussion of chess software programming and technical issues.

Moderator: Ras

Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: Final Announcement On-Line Blitz Tourney

Post by Tord Romstad »

CThinker wrote:I'd like to first see if the ThinkerBoard ICS client interface works with your server.
You have written your own ICS client? That's interesting -- I also need to do that at some stage. How hard was it to implement? Do you have any useful links to documentation? All the documentation I have seen is meant for human users and not for writers of client software. In principle, all the information I need is there, but in practice the documentation is structured in such a way that it makes it frustrating to figure out exactly what I have to do.

For HGM's tournament this weekend (I'm not 100% sure I will be able to participate, but I think I will), I will have to cheat and use XBoard.
:(

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

Re: Final Announcement On-Line Blitz Tourney

Post by hgm »

FICS protocol is horrible, and apperently not formally described anywhere. I had to learn how it worked from looking at the WinBoard code, and trying out what the server reaction on the various sites would be by looking in the debug file.

The most essential things are to parse the style-12 board format (and switching to that style if you detect another board format), to ask for the move list, and parse it when it comes along (essential if you enter a game halfway, but also to know which variant is being played, as the board does not encode that), issue and accept challenges, and recognize starting messages for a game. In the latter cases it is important that you somehow peel the variant name out of the message, which seems to be hidden in it in a way that differs from server to server.

I did not change anything in what the Lasker server does for normal Chess, and WinBoard worked with it immediately. So I guess it was still pretty compatible with FICS. As long as you don't try to play variants llike Shogi or Xiangqi, (which use other board sizes), and reject challenges for them, you should be OK.
CThinker
Posts: 388
Joined: Wed Mar 08, 2006 10:08 pm

Re: Final Announcement On-Line Blitz Tourney

Post by CThinker »

Tord Romstad wrote:
CThinker wrote:I'd like to first see if the ThinkerBoard ICS client interface works with your server.
You have written your own ICS client? That's interesting -- I also need to do that at some stage. How hard was it to implement? Do you have any useful links to documentation? All the documentation I have seen is meant for human users and not for writers of client software. In principle, all the information I need is there, but in practice the documentation is structured in such a way that it makes it frustrating to figure out exactly what I have to do.

For HGM's tournament this weekend (I'm not 100% sure I will be able to participate, but I think I will), I will have to cheat and use XBoard.
:(

Tord
I have had the ICS client for a number of years now. It is for the Pocket PC. It is the most used client for Pocket PC on FICS. At one point, it was the only ICS client being used there. There were others, but those were unusable. Recently, there are at least two more usable Pocket PC ICS clients.

The same code has a Windows build, but its not pretty. I have not had the time to do a complete port. I use it to host the desktop Thinker engine at ICC and when participating in online tournaments (CCT, TACCL).

Developing it, I simply relied on the online help. Back when they still allowed guests to play at ICC, I would "telnet" and manually type the commands. I would then note the responses of the server, and then built the client accordingly. Because of that, the resulting client is very small (76K ARM binary). It only knows how to deal with the most commonly used commands. The Pocket PC Thinker still actively plays at FICS. When you notice it playing at FICS, it means that things are being tested.

Basically, the ICS client would have to parse these server responses that are intended for humans. For example, you would have to recognize things like: "Torre tells you hi there".

I did not have to time to write an efficient parser. I just ended up a "sscanf" statement for every server message that I expect.

The code looks something like this:

Code: Select all

ReadICSLine(s);
if (sscanf (s, "Creating: %s %s %s %s %s"), sName1, sRating1, sName2, sRating2, sMode) == 5) HandleCreating(s);
else if (sscanf (s, "Game: %i %s vs. %s %s", nID, sName1, sName2, sMode) == 4) HandleGame(s);
etc. etc.
Yeah, I know it looks ugly. I'm not proud of this code base.

Currently, around 12 server messages are recognized.

The desktop version is not yet available for public use. It has been in the shelf for a long time now. It is even smaller than the Pocket PC version. At 48K, it has a WinBoard-like look, allows you to play with engines, play/chat at ICC/FICS/Chess.net, and host engines for online play. But I want it to be skinnable (line the current desktop ThinkerBoard), but then the new skins library is on the back burner too. Man, I just can't find the spare time to complete them.

Like you, I believe that a true computer chess player should be the complete package - UI, engine, book.

Cheers...
Stan Arts

Re: Final Announcement On-Line Blitz Tourney

Post by Stan Arts »

hgm wrote:I have entered 19 accounts now:
Perhaps you could make it possible to login and choose a name, like guest login at FICS. So that everybody who wants to can join.

Stan
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: Final Announcement On-Line Blitz Tourney

Post by Tord Romstad »

hgm wrote:Wednesday 22:00 MET (4 pm EST) to Thursday 8:00 MET (2 am EST)
What time zone is MET? Is it the same as CET (that is, UTC+1)?

Tord
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: Final Announcement On-Line Blitz Tourney

Post by Tord Romstad »

Thanks for the information, Lance. It looks like there is no way to avoid boring and tedious work here. Sigh.

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

Re: Final Announcement On-Line Blitz Tourney

Post by hgm »

Stan Arts wrote:Perhaps you could make it possible to login and choose a name, like guest login at FICS. So that everybody who wants to can join.

Stan
This is already possible, but the problem is that the Tournament Manager softwar ("mamer") does not allow guests to join a tournament. This was not easy to fix, as the joining goes as an indirect chain of events: the user sends the join command to mamer ("tell mamer join 1"), and the only reaction by mamer is to ask the iCS for the player statistics (to determine if the rating of the player falls within the specified limit). It only adds a player to the tourney upon reception of the rating data for that player. But for non-registered players there is no such data, and the ICS simply ignores the request. So the causality chain breaks, and the join request is ignored.

I would very much like to use mamer, especially if we are going to do a Swiss tourney. (And it seems we will have too many players for a round robin.) This is why I want to have everyone play under a registered account.

It only takes a minute or so to add a player, btw. So if some people show up unexpectedly at the time of the tourney itself, they can login as a guest, and request me to make an account for them on the spot, and then login again under that account. But if I would have to do that for 30 participants, it would delay the start of the tourney by 30 minutes. So I like to do as much as I can in advance.

Remember: tonight is testing time!

Even if you don't have an account yet, you can still login as guest to try out your client software. Just don't try to all play Fairy-Max at the same time, and don't try long games against it, as it will be running on the same single-CPU laptop as the ICS. If you are the only one on the server, this is no problem. If there are others, try to play each other rather than Fairy-Max! It is OK if you leave a bot on for others to play against. But don't count on it that others will; initiate at least one game yourself, to make sure everything works.

And although I will be logged in as "admin" all the time, I will probably be sound asleep for most of the time the server will be up. So it won't do any good to send 'tells' to admin, or challenge him.
Last edited by hgm on Wed Feb 04, 2009 10:48 am, edited 1 time in total.
User avatar
hgm
Posts: 28329
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Final Announcement On-Line Blitz Tourney

Post by hgm »

Tord Romstad wrote:
hgm wrote:Wednesday 22:00 MET (4 pm EST) to Thursday 8:00 MET (2 am EST)
What time zone is MET? Is it the same as CET (that is, UTC+1)?

Tord
Oh, Sorry, I thought this was standard for Mid-European time, but I guess this is just translated Dutch, and the proper acronym would be CET. It is the time zone of Amsterdam, Brussels, Paris, Oslo, Madrid, Munich, etc.
User avatar
hgm
Posts: 28329
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Final Announcement On-Line Blitz Tourney

Post by hgm »

I just uploaded a new ICSclient package to my website, with a winboard.exe in it that fixes the bug that it did not probe the book on the first move for white in ICS zippy mode.
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: Final Announcement On-Line Blitz Tourney

Post by Tord Romstad »

hgm wrote:
Tord Romstad wrote:
hgm wrote:Wednesday 22:00 MET (4 pm EST) to Thursday 8:00 MET (2 am EST)
What time zone is MET? Is it the same as CET (that is, UTC+1)?

Tord
Oh, Sorry, I thought this was standard for Mid-European time, but I guess this is just translated Dutch, and the proper acronym would be CET. It is the time zone of Amsterdam, Brussels, Paris, Oslo, Madrid, Munich, etc.
Thanks!

I was 99% sure that was what you meant, but I wanted to be 100% sure. :)

I'll probably log on and play a quick test game tonight, but I won't stay long -- I have lots of work to do tonight.

Tord