(Hub engine) GUI for International Draughts

Discussion about development of draughts in the time of computer and Internet.
Post Reply
gwiesenekker
Posts: 82
Joined: Sun Feb 20, 2011 21:04
Real name: Gijsbert Wiesenekker

Re: (Hub engine) GUI for International Draughts

Post by gwiesenekker »

Hi,

Version 2.2 coming up with lots of new features:
ksnip_20260612-091329.png
Support for DXP Fisher time-control controlled by the gui-dxp-supports-fischer boolean parameter.
Continuous database lookup of the current position showing moves played and associated statistics and games in which the position occurred. Building a database from a PDN file with 500K games takes about half-an hour, the database size will be around 9GB. Positions are indexed with an exact 128-bit key (5^50 plus side to move), duplicate games are detected using a 128-bit hash-key of the player names, the event, the result and the game moves.
The annotator now annotates the game move with the score if the PV move is the same as the game move, but with a variation if the PV move is different from the game move.
If you have duplicated and configured GWD as an MCTS engine, you can load GWD as an MCTS annotator and it will show the shoot-out statistics including Wilson lower-confidence bounds for wins and upper-confidence bounds for losses.
A game can be shown as a tree with attributes such as move, engine score, engine PV, annotator score, annotator PV etc.

GW
BertTuyt
Posts: 1628
Joined: Wed Sep 01, 2004 19:42

Re: (Hub engine) GUI for International Draughts

Post by BertTuyt »

Gijsbert, did you use the (well known) TurboDambase Database?
As this is most likely not something you can share.
Not sure if this database is possible to share if you convert it, and use for another purpose?

Bert
gwiesenekker
Posts: 82
Joined: Sun Feb 20, 2011 21:04
Real name: Gijsbert Wiesenekker

Re: (Hub engine) GUI for International Draughts

Post by gwiesenekker »

Hi Bert,

Correct, I used TD as the well known source for testing but clearly I cannot distribute the PDN (or the database).

GW
gwiesenekker
Posts: 82
Joined: Sun Feb 20, 2011 21:04
Real name: Gijsbert Wiesenekker

Re: (Hub engine) GUI for International Draughts

Post by gwiesenekker »

Hi,

Version 2.2 is working, but Codex is really struggling adding Autoplay. It turns out that without you noticing it the code has become quite messy: you click on a move in the game, the GUI registers that you clicked 'somewhere', the annotator is instructed to think about the position 'over there', in the meantime you click on another game that is running but the annotator returns a result that does not belong 'over here'. The GUI tracks all that but it has become a house of cards.
1 + 1 = 3: 'we' have now added a 'game tree' in which all data of the game is tracked. I realized that a much better design is to have the 'game tree' as the source of truth also for the GUI. With each position a 'game-tree-id' and a 'node-id' is associated. The GUI can query the game-tree for 'the list of moves including variations'. The GUI can only mutate the game-tree through a message-queue, so the GUI post messages such as 'This position is being searched by the annotator', 'The user deleted that position'. The game-tree 'knows' that it should first wait until it received a PV or a cancel from the annotator before it can move on to the next request. That also makes it much easier to 'click around' in the lists of running/stopped/finished games without risking data corruption.
I am now trying to have Codex factor that into the current project, but perhaps it is easier to start from scratch again.

GW
gwiesenekker
Posts: 82
Joined: Sun Feb 20, 2011 21:04
Real name: Gijsbert Wiesenekker

Re: (Hub engine) GUI for International Draughts

Post by gwiesenekker »

Hi,

The Mac port is also working. clang on MacOS is quite tolerant of GWD's Linux source code, I only had to change getrandom(). I can disable AVX2 support but ChatGPT can of course convert AVX2 to ARM NEON easily. I had to change one line of code in a Lazarus unit and add -WM10.15 as a custom project option and it worked:
ksnip_20260614-110545.png
GW
Post Reply