SoK '25 Weeks 1 to 4

Posted on Feb 15, 2025

About Me

I’m Rishav Ray Chaudhury, a third year Electrical Engineering undergrad from India. I have participated in Season of KDE this year. I am tasked with implementing a variant of the Mancala board game called Kalah under the guidance of João Gouveia and Benson Muite.

Why I chose this project

As with any aspiring developer, I too started out with game development. A couple of my friends and I started to make games using C# and the Unity framework in my first year of University. The feeling of making games that my friends enjoyed was exhilarating to say the least. This was also around the same time that I learned about open-source software. Apparently, a lot of software that developers frequently use, was developed by a group of passionate programmers. I tried contributing to some repos but was unsuccessful, mainly because I was completely unfamiliar with the projects. That all changed when I started using Arch Linux. For Arch, the desktop environment that I chose was KDE Plasma. After using it for some time, I came to know about Season of KDE and finally took the initiative to start contributing to software that I frequently used. Of the projects, the game development project was the one that caught my eye and now here I am developing a game for it.

Project updates

My project involves implementing a 2-player board game called Kalah, which is the North American variant of the Mancala games. It is played on a board with 12 holes split into 2 rows of 6 and 2 bigger holes at the two extremes called ‘Kalahs’. A player owns the 6 holes on their side and the kalah to their right. Each hole is starts out with 6 beans. A move is made by redistributing the beans of a hole in anti-clockwise order skipping only the opponent’s kalah. A player can capture the opponents beans only if the last bean from their move falls in one of their empty holes and the opponent’s corresponding hole has beans in it.

I have been working on it for the last four weeks. The first week was spent going through the codebase and the understanding the way the header files, tests and benchmarking is implemented. The second week I started coding up the game but I couldn’t get much done because some schoolwork got in the way. I wrote the header file for the rules and updated rest of the necessary header files. The third week onwards I started working on the game. The implementation was kind of tricky owing to my inexperience with the language but once I got the hang of it, it was smooth sailing from there. This week I completed the implementation. Now, I need to write the tests and benchmarks. I will post updates in the coming weeks. See ya!