Scatha and Glaurung 0.2.3

Discussions about Winboard/Xboard. News about engines or programs to use with these GUIs (e.g. tournament managers or adapters) belong in this sub forum.

Moderator: Andres Valverde

Scatha and Glaurung 0.2.3

Postby Tord Romstad » 29 Apr 2005, 23:52

Hi all,

Version 0.2.3 of Scatha, my hexagonal chess program for Mac OS X, is now available from my Glaurung and Scatha page. This is probably the last version of Scatha which will run in Mac OS X 10.3 (Panther). A binary for the new Mac OS X 10.4 (Tiger) will probably be ready within a few days.

The new version should be a little bit stronger than 0.2.2, but the most interesting changes are the added features. Scatha's GUI now includes game clocks and user-configurable playing levels (including time handicap levels). There is also a tiny opening book. It is doubtful whether the book really improves the playing strength, but the added variety in the opening makes Scatha more fun to play against.

Many features are still missing. You cannot load or save games, or set up a position. There is no support for engine vs engine play. Engine configuration (including changing the hash table size from the default 32 MB) still does not work. All of this will, of course, be added in future versions.

I have also updated Glaurung to version 0.2.3. This isn't a very exciting update. During the last few months, I haven't done much chess programming, and the little work I have done has mostly been on Scatha. Compared to version 0.2.1, Glaurung 0.2.3 should be a little bit stronger in tactics and in the endgame, but I doubt that it makes much of a difference in practise.

There are also two new features worth mentioning: Asymmetric king safety (disabled by default) and configurable playing strength (still somewhat buggy, especially at the weakest levels). If you want Glaurung to emulate a reckless and aggressive coffee-house player, tune the playing strength down to around 2000 and set the "Aggressiveness" parameter somewhere in the range 150-200.

Finally, the source code for both engines are now available under the GPL license. Scatha's GUI is still closed-source, but will probably also get GPLed later on.

Tord
User avatar
Tord Romstad
 
Posts: 639
Joined: 09 Oct 2004, 12:49
Location: Oslo, Norway

Re: Scatha and Glaurung 0.2.3

Postby Fernando JP Vasquez » 30 Apr 2005, 00:46

Hi Tord Romstad

The link for Glaurung 0.2.3, source code, seems broken

Regards,
Fernando JP Vasquez
Fernando JP Vasquez
 
Posts: 18
Joined: 28 Sep 2004, 00:56
Location: Lisbon - Portugal

Re: Scatha and Glaurung 0.2.3

Postby Norm Pollock » 30 Apr 2005, 00:52

Hi Tord,

Is there a windows executable version available for the updated Glaurung?

-Norm
Norm Pollock
 
Posts: 217
Joined: 27 Sep 2004, 02:52

Re: Scatha and Glaurung 0.2.3

Postby Tord Romstad » 30 Apr 2005, 08:41

Fernando JP Vasquez wrote:The link for Glaurung 0.2.3, source code, seems broken

Thanks, you are right. A simple typo i my .html file. I should learn to test things like this when I do changes to my Web page. The link should work now.

Norm Polloc wrote:Is there a windows executable version available for the updated Glaurung?

No, there isn't - at least not yet. I cannot produce a Windows executable myself, because I don't have a Windows computer. Usually Dann or somebody else compiles a Windows executable rather quickly after a new release, so you will not have to wait very long.

Tord
User avatar
Tord Romstad
 
Posts: 639
Joined: 09 Oct 2004, 12:49
Location: Oslo, Norway

Re: Scatha and Glaurung 0.2.3

Postby Tord Romstad » 30 Apr 2005, 16:06

Hi all,

Unfortunately, Scatha 0.2.3 turned out to contain an opening book bug: After the opening moves 1. Ndf4 h6, Scatha would play the illegal move e7-e6. This bug is now fixed in the Scatha binary found on my home page. If you don't think you will ever play 1... h6 in reply to 1. Ndf4, there is no reason to download the new binary.

Tord
User avatar
Tord Romstad
 
Posts: 639
Joined: 09 Oct 2004, 12:49
Location: Oslo, Norway

Re: Scatha and Glaurung 0.2.3

Postby Tord Romstad » 01 May 2005, 11:31

Ouch, it turns out I have made yet another mistake. :(

I forgot to include the glaurung.h header file in the downloadable source code for Glaurung 0.2.3. Without this file, of course, Glaurung will not compile. It's no wonder that nobody has compiled a Windows binary yet.

I have now included the missing header file in the download. At the same time, I fixed a little typo in the source code. Since the beginning, Glaurung's data.c file has contained the following line:
Code: Select all
uint32 FileMask[8] = {1, 2, 3, 8, 16, 32, 64, 128};

The third entry of this array should, of course, have the value 4. Fixing this little typo may in fact have a tiny positive effect on the playing strength.

Tord
User avatar
Tord Romstad
 
Posts: 639
Joined: 09 Oct 2004, 12:49
Location: Oslo, Norway

Re: Scatha and Glaurung 0.2.3

Postby Jim Ablett » 01 May 2005, 18:06

Hello Tord,

I've compiled a Glaurung (MingW) Windows exe from your makefile, using just your optimizations. For those who can't wait for a super fast Corbit or Hoffmann one.

One thing I noticed, Glaurung shows as 0.21 when I run it in Arena.

http://homepages.tesco.net/henry.ablett ... g_0.23.rar

best,
Jim.
___________________________
http://jimablett.net63.net/
Jim Ablett
 
Posts: 721
Joined: 27 Sep 2004, 10:39
Location: Essex, England

Re: Scatha and Glaurung 0.2.3

Postby Tord Romstad » 01 May 2005, 18:30

Hi Jim!
Jim Ablett wrote:I've compiled a Glaurung (MingW) Windows exe from your makefile, using just your optimizations. For those who can't wait for a super fast Corbit or Hoffmann one.

Thanks! :D

One thing I noticed, Glaurung shows as 0.21 when I run it in Arena.

What? This is incredibly weird. I just downloaded my own source code and compiled it from scratch, and it correctly identifies itself as Glaurung 0.2.3 at startup:
Code: Select all
id name Glaurung 0.2.3
id author Tord Romstad
option name Hash type spin default 32 min 1 max 1024
option name Aggressiveness type spin default 100 min 0 max 200
option name Cowardice type spin default 100 min 0 max 200
option name Passed pawns type spin default 120 min 0 max 200
option name Pawn structure type spin default 150 min 0 max 200
option name Static pruning depth type spin default 3 min 0 max 6
option name UCI_LimitStrength type check default false
option name UCI_Elo type spin default 2200 min 1600 max 2200
option name OwnBook type check default true
uciok

Moreover, the string "0.2.1" (or "0.21") does not even occur anywhere in the source code. Are you sure you have the right version installed in Arena? The easiest way to check is to look at the engine configuration options. In 0.2.3, "King safety" is gone, replaced by "Aggressiveness" and "Cowardice".

Has anyone else observed that Glaurung 0.2.3 shows up as 0.2.1 in Arena (or other GUIs)?

Tord
User avatar
Tord Romstad
 
Posts: 639
Joined: 09 Oct 2004, 12:49
Location: Oslo, Norway

Re: Scatha and Glaurung 0.2.3

Postby Charles Smith » 01 May 2005, 19:29

Hi Tord,

Glaurung 0.2.3 shows up as Glaurung 0.2.1 in Arena 1.1 here also.

Best regards,
Charles
Charles Smith
 
Posts: 2
Joined: 28 Sep 2004, 05:26
Location: Chicago, Illinois USA

Re: Scatha and Glaurung 0.2.3

Postby Michael Yee » 01 May 2005, 21:09

I compiled with cygwin and the version number shows up fine under arena.

By the way, Jim how did you compile with mingw? I tried that too and got an error about a missing gettimeofday function:

io.c:147: undefined reference to `gettimeofday'

You didn't have to modify anything?

Michael
Michael Yee
 
Posts: 51
Joined: 26 Sep 2004, 19:49

Re: Scatha and Glaurung 0.2.3

Postby Tord Romstad » 01 May 2005, 21:23

Michael Yee wrote:I compiled with cygwin and the version number shows up fine under arena.

I just downloaded Jim's executable. Because I don't run Windows, I cannot test it, but when running 'strings' on it reveals that Jim's executable indeed is the old 0.2.1. I suppose Jim must simply have compiled the wrong sources.

By the way, Jim how did you compile with mingw? I tried that too and got an error about a missing gettimeofday function:

io.c:147: undefined reference to `gettimeofday'

You didn't have to modify anything?

This is just a guess, but: The gettimeofday function does not seem to exist in Windows. Dann found a replacement somewhere and placed it in the file 'timeoday.c' when he first ported Glaurung to Windows. This file is of course not needed on Unix systems, and is therefore not included in the default Makefile. Add timeoday.c (and perhaps also strcase.c) to the Makefile, and try compiling again with mingw.

Tord
User avatar
Tord Romstad
 
Posts: 639
Joined: 09 Oct 2004, 12:49
Location: Oslo, Norway

Re: Scatha and Glaurung 0.2.3

Postby Michael Yee » 01 May 2005, 22:25

Thanks, Tord! That did the trick. I had forgotten about Dann's initial port.

Michael
Michael Yee
 
Posts: 51
Joined: 26 Sep 2004, 19:49

Re: Scatha and Glaurung 0.2.3

Postby Jim Ablett » 01 May 2005, 22:42

I just downloaded Jim's executable. Because I don't run Windows, I cannot test it, but when running 'strings' on it reveals that Jim's executable indeed is the old 0.2.1. I suppose Jim must simply have compiled the wrong sources.


I know what happened. When you forgot to include glaurung.h in the
source distribution I started messing around with an older one. I must have left it in by mistake.

I've re-compiled it correctly - available here.

http://homepages.tesco.net/henry.ablett ... ng_023.rar

In order to compile successfully with MingW I had to add the line >

Code: Select all
#include "timeoday.c"


to "io.c".

Regards,
Jim.
___________________________
http://jimablett.net63.net/
Jim Ablett
 
Posts: 721
Joined: 27 Sep 2004, 10:39
Location: Essex, England

Re: Scatha and Glaurung 0.2.3

Postby Norm Pollock » 02 May 2005, 01:01

Jim Ablett wrote:
I just downloaded Jim's executable. Because I don't run Windows, I cannot test it, but when running 'strings' on it reveals that Jim's executable indeed is the old 0.2.1. I suppose Jim must simply have compiled the wrong sources.


I know what happened. When you forgot to include glaurung.h in the
source distribution I started messing around with an older one. I must have left it in by mistake.

I've re-compiled it correctly - available here.

http://homepages.tesco.net/henry.ablett ... ng_023.rar

In order to compile successfully with MingW I had to add the line >

Code: Select all
#include "timeoday.c"


to "io.c".

Regards,
Jim.


Hi Jim,

I could not get your compiled version to install into the fritz8 gui.

Regards,
Norm
Norm Pollock
 
Posts: 217
Joined: 27 Sep 2004, 02:52

Re: Scatha and Glaurung 0.2.3

Postby Jim Ablett » 02 May 2005, 07:30

I could not get your compiled version to install into the fritz8 gui.



Hi Norm,

I've just tested Glaurung 0.2.3 under Fritz 7 (I don't have Fritz 8) and
it's working ok. Did you remember to also copy over the 'kpk.bin'
file, it wont run without it.

Regards,
Jim.
___________________________
http://jimablett.net63.net/
Jim Ablett
 
Posts: 721
Joined: 27 Sep 2004, 10:39
Location: Essex, England

Re: Scatha and Glaurung 0.2.3

Postby Tord Romstad » 02 May 2005, 11:54

Hi Jim!

Jim Ablett wrote:
I just downloaded Jim's executable. Because I don't run Windows, I cannot test it, but when running 'strings' on it reveals that Jim's executable indeed is the old 0.2.1. I suppose Jim must simply have compiled the wrong sources.


I know what happened. When you forgot to include glaurung.h in the
source distribution I started messing around with an older one. I must have left it in by mistake.

Easy mistake to make, I suppose. Re-reading this thread from the beginning testifies that I constantly make mistakes of similar or higher magnitude myself. ;)

I've re-compiled it correctly - available here.

http://homepages.tesco.net/henry.ablett ... ng_023.rar

Thanks, this looks like the right version. There is only one little, entirely non-critical problem: The executable file is huge, at least 5-6 times bigger than it should be. My guess is that you forgot to strip the binary. This is, of course, not very important. I doubt that it has any effect on performance.

I've just tested Glaurung 0.2.3 under Fritz 7 (I don't have Fritz 8) and it's working ok. Did you remember to also copy over the 'kpk.bin' file, it wont run without it.

Yes, I forgot to mention this. The 'kpk.bin' file (a bitbase for KPK endgames) must always be placed in Glaurung's directory. If this file is not found, Glaurung will exit with an error message at startup.

Tord
User avatar
Tord Romstad
 
Posts: 639
Joined: 09 Oct 2004, 12:49
Location: Oslo, Norway

Re: Scatha and Glaurung 0.2.3

Postby Jim Ablett » 02 May 2005, 12:15

Hi Tord,

I've packed/stripped it down to 167kb. Please re-download it
if you want it - same link.

http://homepages.tesco.net/henry.ablett ... ng_023.rar

best,
Jim.
___________________________
http://jimablett.net63.net/
Jim Ablett
 
Posts: 721
Joined: 27 Sep 2004, 10:39
Location: Essex, England

Re: Scatha and Glaurung 0.2.3

Postby Michael Yee » 02 May 2005, 13:34

Hi Tord,

I have a quick question about glaurung's UCI support. When doing a constrained search (e.g., "go depth 12" or "go movetime 5000"), glaurung seems to always do a depth 2 search.

Am I doing something wrong here, or do you intend to support those "go" variations in the future?

The reason I ask is that I've been thinking about ways to use engines in a "training" or "coaching" mode (where they might deliberately try to allow a tactic at a certain depth). This extra adapter would need to get scores for particular depth searches.

Thanks,
Michael
Michael Yee
 
Posts: 51
Joined: 26 Sep 2004, 19:49

Re: Scatha and Glaurung 0.2.3

Postby Tord Romstad » 02 May 2005, 23:13

Jim Ablett wrote:Hi Tord,

I've packed/stripped it down to 167kb. Please re-download it
if you want it - same link.

http://homepages.tesco.net/henry.ablett ... ng_023.rar

Thanks again, Jim!

It's still rather big, but this seems to be normal for Windows programs. As a comparison, the Mac OS X executable is about 80 KB, while the Linux executable weighs in at 70 KB. I use gcc on both platforms, and if I recall correctly, mingw is also a variant of gcc. Does anybody know why Windows executables tend to be so much bigger?

If you permit, I'll add your executable to the download section of my Web page.

Michael Yee wrote:I have a quick question about glaurung's UCI support. When doing a constrained search (e.g., "go depth 12" or "go movetime 5000"), glaurung seems to always do a depth 2 search.

Am I doing something wrong here, or do you intend to support those "go" variations in the future?

No, you are not doing anything wrong. Glaurung does not understand "go depth", "go movetime" or "go nodes", and adding them would be somewhat messy because of the brain-damaged way I handle time control information. In fact, all the UCI code in Glaurung is very poorly written. When I finally clean up the mess, I will probably add support for these "go" variants.

The reason I ask is that I've been thinking about ways to use engines in a "training" or "coaching" mode (where they might deliberately try to allow a tactic at a certain depth). This extra adapter would need to get scores for particular depth searches.

If I undestand your idea correctly, it is similar to something I plan to include in future versions of Glaurung and Scatha. My current implementation of adjustable playing strength simply slows down the speed of thinking, and nothing else. I plan to replace this with a system moves are pruned randomly. The probability that a move is pruned will be rather low near the root of the search tree, but increase rapidly at the deeper levels of the tree. The pruning probability will also be higher for moves which looks counter-intuitive (for instance moves which appear to lose material). I hope such techniques will make it possible to emulate human tactical mistakes.

Tord
User avatar
Tord Romstad
 
Posts: 639
Joined: 09 Oct 2004, 12:49
Location: Oslo, Norway

Re: Scatha and Glaurung 0.2.3

Postby Michael Yee » 03 May 2005, 00:20

Hi Tord,
If I undestand your idea correctly, it is similar to something I plan to include in future versions of Glaurung and Scatha. My current implementation of adjustable playing strength simply slows down the speed of thinking, and nothing else. I plan to replace this with a system moves are pruned randomly. The probability that a move is pruned will be rather low near the root of the search tree, but increase rapidly at the deeper levels of the tree. The pruning probability will also be higher for moves which looks counter-intuitive (for instance moves which appear to lose material). I hope such techniques will make it possible to emulate human tactical mistakes.

That's not exactly what I was thinking... But you seem to have come up with a nice general approach--increasing selectivity/blindness with depth.

My idea was more along the lines of the following:

(1) get exact scores for all root moves for various depths
(2) play moves (with certain probability) that meet following criteria:

(a) score is "good" up to depth x
(b) score is "bad" for depths x+1 on

where "good" - "bad" is something large--possibly a minor piece.

The idea is to occasionally play a move that looks good with respect to a shallow search but allows a tactic at a certain depth. Also, the pv for this "special" move could be checked to make sure that the drop in score really is achievable/realizable by a tactic within a certain number of moves (and isn't just some "nebulous" positional gain).

This method might seem roundabout, but my initial motivation was to use an existing engine as sort of a black box. It should be much easier to just build in this kind of capability directly.

Michael
Michael Yee
 
Posts: 51
Joined: 26 Sep 2004, 19:49

Next

Return to Winboard and related Topics

Who is online

Users browsing this forum: No registered users and 27 guests