Announcement: Eden 0.0.12 released!

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

Announcement: Eden 0.0.12 released!

Postby Nicolai Czempin » 09 Aug 2007, 20:44

I have just put the latest version (0.0.12) of my engine Eden up for download:

Eden Chess Engine

It should be slightly stronger than version 0.0.11. However, I did not test this as thoroughly as I normally do, my focus was on resurrecting the source code and getting back to working on the engine.

Thanks again to Jim Ablett (You didn't send me all I needed, but I was able to go the rest of the way along the route you suggested).

Here's the readme.txt (incidentally, I do lurk around here too, just not as much :-):
================
Eden 0.0.12 (the "resurrection edition")


Hello there!
Have fun with my chess engine "Eden"!

Why is it called Eden? It's a tribute to a program called PARADISE. More on that in a later edition of this readme.txt
How to use it:
Use a program like "Arena" (www.playwitharena.com) to play against it, or let other engines play against it, even have tournaments, or let it solve problem test suites (usually contained in ".epd" files. I'd even say analyze your games, but Eden is far too weak for that for the moment.

Logos:
Three jpeg-Images are included if you want to give Eden a face to the name. The first one was done by David Dahlem, author of Pooky, the second one by Jim Ablett, chess engine compile-master extraordinaire (and art history connoisseur?), and the last one by myself. It's what you get when a programmer does the job of a graphic designer; but hopefully it's better than it would be the other way round. So consider my own black-and-white version to be the official logo, to be used if you want to display a logo on the Web etc. It is based on work by Albrecht Duerer, a German Renaissance artist. The Font used is called PRETEXT.


You can freely use it, but in the unlikely event that you make money off it you have to ask me first; I might even say yes.


Start it using "eden_0.0.12.bat" or configuring Arena to use that batch script.
Note that the script merely calls "java" to start the .jar file, so you need a Java Virtual Machine (JVM) installed (tested with versions 1.4 and 1.5) and in your path, for more info see http://java.sun.com.
If you know what you're doing, you can get a significant speedup by using a "server" JVM (add the option -server to the java call in the .bat). I haven't enabled it by default myself because it won't work for everyone. For the Server hotspot JVM I think you need the JDK version, but I haven't checked otherwise, as I always have a JDK on my machine. It would be nice if you would mention this setting if you use it in a published tournament, as the results will probably differ from using a regular version.



This is version 0.0.12, released 2007-08-09.

It has the following features:
- supports the very basics of the UCI protocol (for chess engines)
- supports the even more basic basics of the WB protocol (for chess engines)

- knows all rules of chess, including castling and en passant
- can sub-promote if necessary, i. e. take a knight instead of a queen on promotion
- knows about stalemate
- three-fold repetition rule recognized
- has an opening repertoire of over 880 positions


Some implementation notes:
- straightforward alpha-beta
- Iterative Deepening
- Simple time control: When the time limit is reached, it returns the best-so-far move.
- Quiescence Search, with "good or equal captures" examined "all the way"
- Basic Shannon-type (one-dimensional array) 10 x 8 board
- Three Zobrist-based Hashtables: Transpositions, Pawn Strucure, Opening Book

The playing strength:
Version 0.0.12 should be a slight improvement over version 0.0.11. However, I'm a bit skeptical whether my results are all that significant, as the changes have been minor.
- It plays similarly to a "weak club player", around 1450-1600 Elo/DWZ/USCF. Tactically, it is much stronger. I haven't tested it against humans, however.
- I (former Elo/DWZ ~1700-1800, "average club player", better than >99% of _all_ chess players, dintchawannaknowdat) think I still have a chance, but it is not my goal to find out.

Test suites I ran: SKIPPED for version 0.0.12!!! I no longer have the machine on which I originally ran these. Next release will hopfully include test results for versions 0.0.11-0.0.13.

UCI protocol features:
- go depth
- go wtime x winc y ...
- go movestogo
- go infinite (actually this is used by default whenever the "go" params are not understood)
- stop
- OwnBook option
- Hash option. Please note that by default, a Java Virtual Machine (and therefore Eden) is limited to a total of 64 MB. It is possible to increase the maximum size by the -Xmx option, e. g. java -server -Xmx256M -jar de.czempin.... if you know what you're doing. If you try to give it more hash size than is available, it will only use what is available, minus a safety margin. ****Note**** I didn't have the time to code the resizing part, so the previous comment is invalid. I'm leaving it there in preparation for version 0.1.0, where the comment will be valid.
-- only "id", "uciok", "readyok" and "bestmove" (without "ponder") is sent back
-- no "debug" command
-- no "ponder" or "ponderhit" command
-- no "go mate n"
-- no "go nodes n"


WinBoard (WB) protocol features:
- the basics of WB-2. Should be sufficient to play games.
-- UCI should be the default (it is much more stable and less bug-prone). I need feedback if you find any problems!
-- "level" command only recognizes integers, e.g. "level 0 2 6" or "level 0 120 0", but not "level 40 0:30 0". In fact, the second example will probably crash (or perhaps set the time to 0?)
-- no extended "level" command
-- "random" command is a no-op
-- "undo" and remove commands not supported
-- "nopost" command not supported; thinking output will always be displayed (hey, it's scarce enough as it is!)
-- "hard" & "easy" commands ignored (no pondering)
-- "bk" command ignored
-- "hint" command ignored
-- "st" command not supported
-- "sn" command not supported
-- "sd" command not supported
-- "rejected" command not supported, "accepted" simply ignored (whatever they are supposed to be for anyway)
-- which of the commands that can be deactivated are supported or not (analyze etc.) Eden will tell you when receiving "protover" in xboard mode


TODO LIST = Limitations/Known Bugs/Future Features (in no particular order):
- the hashtable size still can't be changed. Total memory usage is < 4MB, so consider that to be the hashtable size.
- 50-moves draw
- KBNK
- basic pawn endings
- backward pawns, as well as many other important positional factors, still not implemented
- null-move pruning
- pvs search
- pawn-to-seventh extension
- recapture extension
- pesky-attack extension
- sex (woohoo!)
- mobility
- trapped pieces
- good bishop/bad bishop
- good knight/bad knight
- good cop/bad cop
- connected passers
- promotion in QS
- contempt factor
- other things on my todo list that is as long as my arm (and as I'm 6'7"/2m tall, I have LONG arms)
- enhance eval
- local optimizations
- option setting for WB (traditionally, .ini file)

Probable focus for the next version:
- WB protocol compliance: undo/remove (WB) st (WB) sd
- UCI protocol compliance: movetime (UCI)
- more raw speed
- finish TT implementation (resize)
- insufficient material (done when true for both sides. TODO. One side insufficient->0 is upper bound for score)
- basic endgames: KPK
- whatever else it takes to beat this version!

There are compiled versions (with my blessing) of my previous engines on the Internet, and one will probably appear for this one. I'm not sure if it will play any differently, but having an .exe instead of jar files makes it easier to use for some peope.
If you test this, please let me know your results. It does help if you prefer an .exe to a .bat, but it is much bigger than the pure Java bytecode. An alternative if you are just concered with having an .exe would be to use jlaunch.exe, which you can find using your favourite search engine.
*Please note this when/if setting up the compiled version in tournaments, by appending "(compiled)" (or whatever you prefer that will make the distinction clear) to the name in results. The noncompiled version is intended to be the official version. *


I love feedback (criticism, questions, tournament reports, games played by Eden, ...)!
n.*mylastname*@gmx.de, replace *mylastname* by, well, ...)
I usually lurk in the "CCC" forums: www.talkchess.com. My username is nczempin.


Changes from 0.0.11->0.0.12
- "resurrection edition", based on the lost code of version 11
- only minor tweaks really: a few additional opening lines, plus inlining of the board array.

Changes in older versions:
See separate file "history.txt"

Other notes:
I'm not releasing the source code yet despite me normally being a proponent of open-source. I'm under the delusion that I have a professional reputation to lose :-). In addition, despite all the friendly help you get (and despite the fact that my engine is nowhere near competitive), chess engine programming is a bit like a competitive sport; let me keep my illusion that I have secrets to hide!


Nicolai Czempin

P. S. This chess engine is dedicated to Pavel and Janik.
Nicolai Czempin
 
Posts: 32
Joined: 11 Aug 2006, 15:05
Location: bouncing between Berlin, Munich and Bern

Return to Winboard and related Topics

Who is online

Users browsing this forum: No registered users and 35 guests