Banksia - Yet another Chess Tournament Manager

Discussion of chess software programming and technical issues.

Moderators: hgm, Harvey Williamson, bob

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
User avatar
phhnguyen
Posts: 338
Joined: Wed Apr 21, 2010 2:58 am
Location: Australia
Full name: Nguyen Hong Pham
Contact:

Banksia version 1.5

Post by phhnguyen » Wed Jul 10, 2019 1:33 am

I have just released version 1.5 to support WinBoard protocol and Polyglot opening books. So far all main/big chess functions are completed.

For coming versions I have been working on a special function to auto generate Json files which are mainly used to configure engines and control tournaments.

Hope to get some feedbacks / bug reports from you soon :D
https://github.com/nguyenpham/Banksia
An open source C++11 chess tournament manager

petero2
Posts: 575
Joined: Mon Apr 19, 2010 5:07 pm
Location: Sweden
Contact:

Re: Banksia - Yet another Chess Tournament Manager

Post by petero2 » Wed Jul 10, 2019 12:47 pm

Hi,

Interesting project.

I tested it in Linux and it worked fine except for one compile problem. I also added CMake build files to make compilation in Linux easier. I have created a pull request that you may want to review.

User avatar
phhnguyen
Posts: 338
Joined: Wed Apr 21, 2010 2:58 am
Location: Australia
Full name: Nguyen Hong Pham
Contact:

Re: Banksia - Yet another Chess Tournament Manager

Post by phhnguyen » Wed Jul 10, 2019 1:49 pm

Wow, thank you. I have never written a makefile myself before :D
https://github.com/nguyenpham/Banksia
An open source C++11 chess tournament manager

User avatar
phhnguyen
Posts: 338
Joined: Wed Apr 21, 2010 2:58 am
Location: Australia
Full name: Nguyen Hong Pham
Contact:

Banksia - version 2.0

Post by phhnguyen » Fri Jul 12, 2019 9:38 am

I have just released version 2.0. The new feature is to auto-generate JSON files which are used to play tournaments. Instead of spending hours or even days to create manually parameters for command line and/or JSON files, now all are auto-generated in few minutes.

Bellow is the introduction from the Readme:

Auto generate JSON files
------------------------------
A chess tournament may have tens or even hundreds of chess engines. Each engine has name, command line, working folder and may have tens parameters. Any wrong in data may cause engines to refuse to run, crash or run with wrong performances. However, writing down manually all information into a command line and/or some JSON files is so boring, hard job and easy to make mistake (from my experience, it is not easy to find and fix those mistakes). Defend on experience, it may take from hours to days to create a runnable configuration for a new tournament. Furthermore, new engines may frequently add or change parameters without notice to users.

Banksia can help to solve the above problems by generating/updating automatically all data needed for a tournament. If the old data exists, Banksia can update it without erasing nor modifying non-involving information. Thus users can update frequently their data.

What a user should do to generate or update JSON files:
- copy all engines into a folder (including their belonging files as well as all subfolders)
- run Banksia with that folder as a parameter and wait for few minutes. That all!

For example:

Code: Select all

banksia -u -c 4 -d c:\allenginefolder
Bankisa scans that given folder, including all subfolder for all executable files, then runs those files to detect if they are chess engines, what their chess protocols and options are. Bankisa can run and test concurrently those files (the parameter -c 4 means that is a concurrency of 4) to speed up the process (for a tournament within 20 engines, 4 concurrencies all may take about 1 - 5 minutes). All information is saved or updated into two key JSON files (if their paths are not specified, they will be created in the current working folder).

If users don't want Banksia to scan (or engines are not scannable, or located in different folders/drivers) or run not-involving executable files, they can create a simple and short JSON file (file engines.json) contains only commands of engines they need. Banksia will verify and fill all other information.

Code: Select all

[
    { "command" : "d:/stockfish/stockfish.exe" },
    { "command" : "c:/match/crafty25.3" }
]
Right after generating JSON files, users can start their tournaments:

Code: Select all

banksia -jsonpath c:\tour.json
Of course, users can edit those JSON files such as removing redundant, unused fields, re-order them to be easier to read! Some data fields are written down in empty forms (e.g. opening book folders) and need to fill in.
https://github.com/nguyenpham/Banksia
An open source C++11 chess tournament manager

User avatar
phhnguyen
Posts: 338
Joined: Wed Apr 21, 2010 2:58 am
Location: Australia
Full name: Nguyen Hong Pham
Contact:

Banksia 2.2

Post by phhnguyen » Sun Jul 14, 2019 5:16 am

Version 2.2! It supposes knockout (elimination) type and resumption last incomplete tournaments. There are also compiled binaries for Mac OS and Windows 64 bits you can quickly try.

Now Bansia has almost all features/functions I have dreamed for: small, fast, portable, easy to use, easy to integrate to other systems, resumable, able to automatically generate all configurations, files which are needed for tournaments.

Hope it could help users to create chess tournaments with much more ease and fun!

I will slowdown its development a bit, focusing on fixing bugs and small improvements.

All bug reports, suggestions, contributions are more than welcome!

/pham
https://github.com/nguyenpham/Banksia
An open source C++11 chess tournament manager

Post Reply