judah.sh

Introducing Kiki

Kiki is - or will be - a chess engine. It will support the evaluation of regular chess positions alongisde positions from Fischer random and Crazyhouse variants. My reasons for building Kiki are multifold:

Context

I have no formal training in AI (yet) although I do plan to read a masters in it. I have extremely rudimentary Python knowledge, so each line of code written is a result of research online, (generally a search from within the Chess Programming Wiki for the concept and then documentation for the implementation), or checking through a forum, or a conversation with an LLM.

There are no lines of code in this project written by AI and there never will be. I use LLMs to teach me new concepts in a conversational way but I value understanding the concepts for myself. Where I have gaps, I’ll plug them, but I’ll never outsource.

This series isn’t intended to teach the fastest way to build a chess engine. It’s a record of building one from first principles. I’ll occasionally make suboptimal decisions because understanding why something works is more valuable to me than ripping off Stockfish.

As mentioned I’m borrowing a lot of my ideas from the Chess Programming Wiki which is fantastic and I’m grateful it exists.

Where do I want to take this?

I don’t know what a good “end” to this project will be. An evaluation function can be optimised and other parts of the engine refined until the cows come home. But some good milestones are:

Wish me luck - if you’re interested in following along the GitHub for this project is here 🙏🏻