Zeppelin Chess Engine

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

Moderator: Ras

ChickenMan4236
Posts: 8
Joined: Wed Oct 01, 2025 8:55 pm
Location: Poland
Full name: Jakub Szczerbiński

Zeppelin Chess Engine

Post by ChickenMan4236 »

Hello,

I would like to introduce You to a chess engine that I've created. I've been trying to accomplish this for a while and at some point I've finally done it. The engine is open-source, written in pure C, it doesn't have any dependencies, it was mainly designed to work on Linux, but it can also run on Windows. It supports UCI protocol, though it may lack some of the more advanced UCI commands.

I've implemented Zobrist Hashing, Transposition Tables, PVS, NMP, LMR, Aspiration Windows, Killer Heuristics, Magic Bitboards. It uses alpha-beta pruning for searching the game tree, the evaluation function is static.

The current release is something like 'alpha' version. The engine works, I've tested it using Chess Arena, though it needs some improvements (for example it has a problem with recognizing 3-fold repetitions). If anyone is interested in testing/analyzing it, the source code is available here: https://github.com/jszczerbinsky/zeppelin. The engine requires a file 'precomputed.bin', where it stores various bitboards, magic numbers etc, it can be generated automatically by using:

Code: Select all

./zeppelin --gen-precomp
After it has the file, it can be used as normal UCI engine e.g. with some GUI program.

I'm waiting for some feedback, I hope someone may be interested in checking out the engine!
User avatar
Tibono
Posts: 151
Joined: Sat Aug 01, 2015 6:16 pm
Location: France
Full name: Eric Bonneau

Re: Zeppelin Chess Engine

Post by Tibono »

Hi,
thanks for sharing.
First run, it hangs forever without moving, despite displaying 'cancelling on time'.
Windows 11 64bits, Arena 3.0, no book, TC 40/10

Code: Select all

2025-10-02 11:15:39,679*1*----------------------Starting engine 1 Zeppelin 0.0.3----------------------
2025-10-02 11:15:39,685*1*Configured Engine 1 Type:   UCI
2025-10-02 11:15:39,686*1*Engine 1 dir: C:\Eric\Programmes\Arena 3\Engines\Zeppelin 0.0.3
2025-10-02 11:15:39,686*1*Engine 1 commandline: "C:\Eric\Programmes\Arena 3\Engines\Zeppelin 0.0.3\zeppelin.exe" 
2025-10-02 11:15:55,715*1*Engine 1 ProcessID: 2388
2025-10-02 11:15:55,715*1*Engine 1 Prio:32 ThreadPrio:0
2025-10-02 11:15:55,746-->1:uci
2025-10-02 11:15:55,746<--1:id name testengine
2025-10-02 11:15:55,746<--1:id author Jakub Szczerbinski
2025-10-02 11:15:55,747<--1:option name Debug_DisableNMP type check default false
2025-10-02 11:15:55,747<--1:option name Debug_DisableTT type check default false
2025-10-02 11:15:55,747<--1:option name Debug_DisablePVS type check default false
2025-10-02 11:15:55,747<--1:option name Debug_DisableLMR type check default false
2025-10-02 11:15:55,747<--1:option name Debug_DisableAspWnd type check default false
2025-10-02 11:15:55,749<--1:option name Debug_DisableAspWnd type check default false
2025-10-02 11:15:55,749<--1:option name Debug_DisableAspWnd type check default false
2025-10-02 11:15:55,749<--1:option name UCI_ShowCurrLine type check default false
2025-10-02 11:15:55,750<--1:option name Hash type spin default 20 min 1 max 1000
2025-10-02 11:15:55,750<--1:uciok
2025-10-02 11:15:55,750-->1:setoption name Debug_DisableNMP value false
2025-10-02 11:15:55,750-->1:setoption name Debug_DisableTT value false
2025-10-02 11:15:55,751-->1:setoption name Debug_DisablePVS value false
2025-10-02 11:15:55,751-->1:setoption name Debug_DisableLMR value false
2025-10-02 11:15:55,751-->1:setoption name Debug_DisableAspWnd value false
2025-10-02 11:15:55,753-->1:setoption name UCI_ShowCurrLine value false
2025-10-02 11:15:55,753-->1:setoption name Hash value 20
2025-10-02 11:15:55,754-->1:isready
2025-10-02 11:15:55,810<--1:readyok
2025-10-02 11:16:06,371*1*Start calc, move no: 0
2025-10-02 11:16:06,371-->1:ucinewgame
2025-10-02 11:16:06,371-->1:isready
2025-10-02 11:16:06,371<--1:readyok
2025-10-02 11:16:06,378-->1:position startpos
2025-10-02 11:16:06,378-->1:go wtime 600000 btime 600000 winc 0 binc 0 movestogo 40
2025-10-02 11:16:06,379<--1:info string timelimit 15000
2025-10-02 11:16:06,380<--1:info depth 1 seldepth 1 nps -2147483648 tbhits 0 hashfull 0 nodes 12 score cp 4316 pv e2e4
2025-10-02 11:16:06,382<--1:info depth 2 seldepth 2 nps 196000 tbhits 61 hashfull 0 nodes 184 score cp 4160 pv e2e3 e7e5
2025-10-02 11:16:06,386<--1:info depth 3 seldepth 4 nps 97666 tbhits 94 hashfull 0 nodes 390 score cp 4313 pv c2c3 b7b5 e2e4
2025-10-02 11:16:06,417<--1:info depth 4 seldepth 5 nps 177354 tbhits 1309 hashfull 1 nodes 4912 score cp 4150 pv c2c3 b7b5 a2a4 a7a6
2025-10-02 11:16:06,573<--1:info depth 5 seldepth 6 nps 144814 tbhits 684 hashfull 4 nodes 17093 score cp 4172 pv e2e3 a7a5
2025-10-02 11:16:06,718<--1:info depth 6 seldepth 7 nps 277212 tbhits 767 hashfull 8 nodes 17882 score cp 4209 pv e2e3 e7e6 d1g4 f8b4 g4b4 d8g5
2025-10-02 11:16:07,324<--1:info depth 7 seldepth 8 nps 170064 tbhits 5390 hashfull 16 nodes 62416 score cp 4160 pv e2e3 d7d5 d1h5 d5d4 h5h4
2025-10-02 11:16:08,513<--1:info depth 8 seldepth 9 nps 191382 tbhits 6297 hashfull 29 nodes 124665 score cp 4129 pv c2c3 d7d5 e2e3 c8f5
2025-10-02 11:16:19,244<--1:info depth 9 seldepth 10 nps 120333 tbhits 126671 hashfull 133 nodes 1063747 score cp 4028 pv c2c3 d7d5 e2e3 d8d7
2025-10-02 11:16:21,378<--1:info string cancelling on time
ChickenMan4236
Posts: 8
Joined: Wed Oct 01, 2025 8:55 pm
Location: Poland
Full name: Jakub Szczerbiński

Re: Zeppelin Chess Engine

Post by ChickenMan4236 »

Ah I suppose there is some compatibility issue with the way threads work on Windows and Linux. I guess I will have to fix few things to run it on Windows without bugs
ChickenMan4236
Posts: 8
Joined: Wed Oct 01, 2025 8:55 pm
Location: Poland
Full name: Jakub Szczerbiński

Re: Zeppelin Chess Engine

Post by ChickenMan4236 »

I've fixed the issue, it should work now. You can download fixed version here:
https://github.com/jszczerbinsky/zeppel ... tag/v0.0.4
User avatar
Tibono
Posts: 151
Joined: Sat Aug 01, 2015 6:16 pm
Location: France
Full name: Eric Bonneau

Re: Zeppelin Chess Engine

Post by Tibono »

I can confirm the fix solved the above reported issue. Thanks Jakub!
User avatar
Tibono
Posts: 151
Joined: Sat Aug 01, 2015 6:16 pm
Location: France
Full name: Eric Bonneau

Re: Zeppelin Chess Engine

Post by Tibono »

Hi Jakub,
a short report after a dozen games played.

All games played to the end (no technical issue, no illegal move, correct time management - I used 40/10 moves/min.). Works well, congrats!

Zeppelin is currently close to 1280 CElo (of course a very early assessment).
It knows castling and underpromotion; and looks to be good at identifying checkmate paths and announcing these.

One annoying topic from my user experience point of view: the displayed score is unconventional (close to +32 at beginning of the game white side, symetrically close to -32 black side - then decreasing along (absolute value) with material reduction and game progress). Fine enough for the engine computing, yet not for the GUI. I use to display the graph showing the evaluation profile, which is useless here. I also had to disable the GUI feature 'resign setting for UCI engines' that I usually set to -900 centipawns for 5 moves - otherwise Zeppelin playing dark pieces would be adjudicated 'resigned' after its first 5 computed moves.

Keep on the good work and have fun with your baby-engine! Currently a toddler, but I trust it will grow-up fine.
ChickenMan4236
Posts: 8
Joined: Wed Oct 01, 2025 8:55 pm
Location: Poland
Full name: Jakub Szczerbiński

Re: Zeppelin Chess Engine

Post by ChickenMan4236 »

Thank You Eric!

In last days I've been working on a major update. A new, more advanced evaluation function has been implemented, that replaced the previous, very simple one. I've also tested the engine more strictly on Windows, hunted and fixed some bugs, including the one, that You've mentioned (about the score). Another change, that I've managed to accomplish is fitting the precomp.bin file into the executable, so the engine now consists of only the .exe file.

After those changes I've realized, that Zeppelin's moves feel more 'natural' (at least during the middlegame, because it doesn't understand the openings yet). If You're interested check out the latest version: https://github.com/jszczerbinsky/zeppel ... tag/v0.1.0.

And by the way, what engines did it play against in Your's tests? Or what engines would You suggest to use as Zeppelin's opponents to check it's playing strength? Because I believe making it fight against Stockfish or another 'top' engine isn't really going to give me much feedback, since it'll be only losing against them.
User avatar
Tibono
Posts: 151
Joined: Sat Aug 01, 2015 6:16 pm
Location: France
Full name: Eric Bonneau

Re: Zeppelin Chess Engine

Post by Tibono »

ChickenMan4236 wrote: Sat Oct 11, 2025 6:39 pm what engines did it play against in Your's tests? Or what engines would You suggest to use as Zeppelin's opponents to check it's playing strength? Because I believe making it fight against Stockfish or another 'top' engine isn't really going to give me much feedback, since it'll be only losing against them.
Hello Jakub,
thanks for the latest version.
v0.0.4 matches were (each featuring one game as white, then one as black):

Code: Select all

TSCP 1.81 (2 losses)
TarraschToy 0.9 (2 losses)
Maia 1500 (2 losses)
Maia 1300 (2 losses)
Novag Octo lv 4 (1 win, 1 loss)
Novag Chess Champion Chess Partner 2000 lv2 (2 wins)
The two last opponents are chess computers, useful for lower computer-Elo rating.
The 1280 evaluation results from the last three matches (Maia 1300, Octo and CP2000) where Zeppelin achieved 50%. Of course I discarded the first three ones that obviously involved too strong opponents.
FYI, Zeppelin ran using one thread (as the opponents did; this is my standard setting for tests). I had to throttle it (on Windows, it uses two threads by default).
V0.1.0 score is perfectly fine, thanks!
User avatar
Tibono
Posts: 151
Joined: Sat Aug 01, 2015 6:16 pm
Location: France
Full name: Eric Bonneau

Re: Zeppelin Chess Engine

Post by Tibono »

Hi,
Zeppelin v0.1.0 achieves a breakthrough: after 16 games, it looks to stand in the ballpark of 1900 CElo rating. Congratulations!
It gets easier to find opponents from the same league.

For your information, during my matches, both v0.0.4 and v0.1.0 used an opening book (h-schnapp-v02__little.abk from author Harry Schnapp, with selection reduced to min 50% win percentage for white moves, and min 40% wins for black ones). Mostly safe lines so, and the engine is let to compute by itself as soon as the win ratio gets a bit low.

An unfortunate weakness I could witness from Zeppelin v0.1.0: it lacks an algorithm to achieve checkmate Rook+King vs King.
Hope this helps,
Eric
mar
Posts: 2668
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: Zeppelin Chess Engine

Post by mar »

out of curiosity: why is this in engine origins?