Strong checkers and chess, powered by NNUE neural networks.
I write board-game engines in C and ship them as offline apps for Android and Windows, published as MMC Solo Dev. Six of them evaluate positions with an NNUE neural network — the same efficiently-updatable architecture that transformed computer chess — trained from self-play and small enough to run on a phone with no connection.
- C
- Go
- Flutter / Dart
- Python
- TypeScript / JavaScript
The apps
Every one plays offline, has a 3D board and a classic 2D board, and ships its engine compiled in — nothing is evaluated on a server.
Chess Ta!
Offline chess with an NNUE engine, seventeen chess variants, a real 3D board and analysis tools.
Dama Ta!
Filipino dama with the strongest net in the family — a 512-wide NNUE.
Brazilian Checkers
8×8 Brazilian rules with international capture logic, on a 256-wide NNUE.
International Draughts
The 10×10 game, 20 pieces a side, on a compact 32-wide net.
Russian Checkers
Russian rules, including promotion mid-capture, on a 128-wide NNUE.
English Draughts
The classic American game — men capture forward only — on a 128-wide NNUE.
Turkish Draughts
Orthogonal movement on all 64 squares — a different game entirely.
Why a neural network matters here
Most checkers apps evaluate a position by counting material and adding a few hand-written bonuses. That is fast, and it is why they play the same predictable way every game.
An NNUE — an efficiently-updatable neural network — replaces those hand-written rules with a small network trained on millions of self-play positions. It is built so that moving one piece updates only the part of the network that changed, which makes it cheap enough to call at every node of the search. That is what lets a phone play a genuinely strong game rather than a fast shallow one.
Every net here was trained from scratch against its own variant. Rules differ enough between Brazilian, Russian, English, International, Filipino and Turkish draughts that a net trained on one is worthless on another — International alone needs a different board size and a different feature set.
Other work
The engine & training pipeline
The shared C core behind all seven games: bitboards, alpha-beta search, the Go NNUE trainer, self-play generation and endgame tablebases.
Pure-C LLM engine
A language-model stack written from scratch in dependency-free C11 — training, inference, LoRA fine-tuning and a tool-using agent, with no framework underneath.
mmc-shell
A portable, git-bash style shell and terminal written from scratch in pure C11. Runs bash scripts, no installer, no dependencies — open source under the MIT license.
mme
VS Code for the terminal, written from scratch in pure C11: IntelliSense, debugging, git and extensions' themes in one executable — open source under the MIT license.
Puzzleshire
Forty-seven puzzle, card and board games in one Windows app: logic puzzles, solitaires, arcade classics and Filipino favourites like Tong-its, Sungka and Dama. Offline, no ads.