implemented mobile support! now, the website works on all devices, including smart phones. it was pretty easy but I still faced a couple of small bugs.
implemented mobile support! now, the website works on all devices, including smart phones. it was pretty easy but I still faced a couple of small bugs.
implemented column support! now you can create as many columns as you want, edit their titles, and more! there were A LOT of visual errors but I eventually got through them all!
implemented card tags! now you can add tags to your cards. example cards include school, work, personal, extracurriculars, etc.
implemented phase-based evaluation!
essentially, the engine changes based on the phase of the game (opening, middlegame, endgame). for example, you want to have your king active in the endgame but safe in the opening. thats what this change does!
tried to add column management but it worked out to be super clunky and just terrible to use. i decided to revert my changes and start afresh.
i added more themes!
created a landing page!
i was originally going to make it a lot bulkier like https://www.notion.com, but eventually decided to keep it minimalist to fit the vibe.
implemented endgame tablebases!
essentially, chess is solved with 7 pieces or fewer. so instead of trying to calculate the perfect move in a complicated position, we can just look it up in a precomputed database of all positions with 7 pieces or fewer. this is a huge boost for endgame play, and also lets the engine play perfectly in those positions instead of relying on heuristics. the syzygy tablebases are the standard in the chess programming community, so i used them!
implemented an opening book!
essentially, for common openings, the engine has a file of the best moves in those common positions. this makes it a lot better (and faster) at the opening stage.
implementing it was pretty difficult because of some issues with the book file, but it eventually worked!
implemented transition tables!
essentially, transition tables cache evaluations to reuse if the position is achieved through a different set of moves (transposition).
created a command pallete!
omg this is actually super cool. simply press CMD+SHIFT+P and access everything you could possibly need to interact with the website!
i’ve added a timer, stopwatch, and Pomdoro timer!
implemented upload/download in JSON format!
it works like a charm :)
(these were originally 2 devlogs but there was some problems with my wifi so ill combine this into 1)
added slick animations that give the app so much more polish! there were so many visual bugs but i got them all figured out!
added dark mode!
implemented quiessence search!
basically, the engine keeps searching until the position becomes stable. for example, lets say the user can trade queens on move 5. it would see that and think that line is winning, but fails to see past move 5 where the opponent can recapture the queen. this 5-depth barrier is known as the horizon effect!
creating logo for stockpanda! it looks pretty cool to me, ngl. made in Figma. pretty simple but straight to the point. modeled after stockfish logo
added iterative deepening!
essentially, it has a max thinking time and thinks as much as possible in that time. this makes it way faster!
added alpha-beta pruning! basically, if a branch in the tree is already bad, then my engine stops looking at the line (ex: blunders queen on move one, no need to look at that line).
only 26 lines changed, but it was difficult to implement and i kept facing errors.
built the MVP for this minimalist trello board
features include:
what i plan to add next?
animations! i want to make this the cleanest thing ever
basic minimax algorithm implemented with piece values and piece square tables to make it decently accurate
created the board and legal move logic!
took notes on chess engine design and created a course of action