Gaia 4.2.3 — embedded pixel-art GUI, 20 human-like levels, play it in your browser

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

j_romang
Posts: 104
Joined: Mon May 16, 2011 2:52 am

Gaia 4.2.3 — embedded pixel-art GUI, 20 human-like levels, play it in your browser

Post by j_romang »

Hi everyone,

A new Gaia release — and this one you can try without downloading anything:

Play Gaia in your browser on itch.io

The big change since 4.2.2 is that the engine now ships with its own graphical interface, embedded in the same binary. Run gaiachess with nothing after it: it listens for two seconds, and if nothing speaks UCI in that time, a pixel-art chess board opens. A GUI that launches it says "uci" straight away and gets a normal UCI engine, with no delay and no window — so nothing changes for Arena, CuteChess, fastchess or match play over SSH. --no-gui skips the wait entirely.

Image

The board is playable with the mouse (the hand is the cursor, pieces are dragged and dropped) or with the keyboard, has six languages, clocks, and its sounds are not files — each one is a few numbers, synthesised at startup with sfxr.

The other half of the release is twenty levels of play, and I tried to make them feel human rather than "full engine with a depth cap". A network judging positions one ply deep already plays around 1500 Elo, so cutting depth alone never reaches a beginner. Instead, below full strength five things give at once: the engine looks less far ahead, judges positions more crudely (material only at the bottom, then piece-square tables, then the NNUE), misjudges them on purpose — usually a little, occasionally by a piece — picks among the root moves worth playing instead of always the same one, and simply fails to see some moves at all. That last one, applied in quiescence too, is what makes the low levels leave a piece hanging.

Each rung is worth roughly 120 Elo, from ~580 (just learned the moves) to ~2640 (grandmaster), with level 20 the untouched full-strength engine. The scale was anchored outside the engine: levels 8–14 played matches against the Maia networks, whose ratings were earned against humans on lichess over hundreds of thousands of games. And a level is deterministic — never a time or node budget, all randomness drawn from the position hash — so it is the same opponent on a laptop as on a server, with stable blind spots rather than a tremor. Exposed over UCI as Skill Level (1–20) and Skill Seed.

The browser version plays levels 1–19 exactly as the desktop one does (they are depth-bounded, never clock-bounded); level 20 is worth meeting on a downloaded build, where it gets real threads instead of a WebAssembly worker.

Links: As always, feedback is very welcome — especially from anyone who hands level 5 to a child or level 12 to a club player and can tell me whether the ratings feel honest.

Jean-François
j_romang
Posts: 104
Joined: Mon May 16, 2011 2:52 am

Re: Gaia 4.2.3 — embedded pixel-art GUI, 20 human-like levels, play it in your browser

Post by j_romang »

Hi everyone,

Gaia 4.3.2 is out. No new feature this time: a month of fixes, most of them found by David Rabel — co-author of the very first Gaia back in 2003 !

What changed
  • New default network gaianet-t2b-e044, +4.8 ±3.6 Elo over the previous one.
  • Time management was rewritten. The old allocation left most of the clock unused in blitz. Move Overhead is now a UCI option (default 40 ms).
  • Tablebases. A Nalimov "mated in 0" was scored as a draw, so a mate in two could be announced for many moves without being played. Mates longer than 128 plies were printed as a centipawn score instead of mate N. DTM scores now respect the fifty-move rule, and Syzygy cursed wins and blessed losses at the root are no longer reported as decisive. Analysing a seven-piece position with WDL-only tables could go silent for over a minute and alternate between +2 and +200. New option NalimovCache.
  • Search. A second occurrence of a position could be scored 0.00 as if it were a repetition — a won game was thrown away that way. The move played and the last line printed now always come from the last completed iteration. On the losing side of a decided position the search could run to ply 127 and announce a mate far longer than the real one. Null-move pruning is disabled in sparse minor-piece endings.
  • UCI. A progress line is printed after one second without output, so GUIs no longer see a frozen engine during a long iteration. UCI_ShowCurrLine, UCI_ShowRefutations and cpuload are supported. Debug Log File appends instead of overwriting, with millisecond timestamps.
  • Speed. AVX2 network evaluation is 12 % faster; move generation tables were reworked on AVX2 and ARM64.
Since the last post, 4.3.1 had also changed the displayed score: a pawn up now prints as about +2.0 rather than the network's raw unit.

A note for ChessBase users: Fritz and ChessBase refuse to register the standard binary, because it carries the built-in board and is linked as a GUI application. The release includes a console build for them.

Links:
Feedback is welcome :D

Jean-François
Rowen
Posts: 131
Joined: Tue Nov 15, 2016 1:19 pm
Location: Cheshire, England

Re: Gaia 4.2.3 — embedded pixel-art GUI, 20 human-like levels, play it in your browser

Post by Rowen »

Hi
Thanks for your work. I understand skill level but what is skill seed? Also in future releases would it be possible to implement maybe an optional time delay for skill levels. I find it unrealistic when an engine makes instant moves, (I use the engine in Fritz GUI) Anyway thank you.