Building a chess game in Go

Context

I have tried several time to build the chess logic, and gave up every time. I am very happy to have completed it. I used the most naive data structures and algorithms in this logic, but that's how I was able to complete it.

To handle the UI, I used Ebitengine. The documentation is quite sparse (at least for now) but it is a very neat library. I would like to do more with it in the future.

The "AI" is for now very trivial. It just picks a move randomly among all the possible ones available.

Challenges

In terms of challenges, learning how to use the game engine while ramping up my skills in Go was the main challenge I would say. The logic for now is still quite straightforward, and having the unit tests helped a lot to detect edge cases.

Roadmap

There are many ways to improve this project, and I think it's a very good playground. On my list of improvements are:

Takeaways

In my previous attempts, I tried to follow a tutorial on how to build an optimize version right away. I think that was a mistake, especially while learning more about a language, a library, etc.

It definitely fits the "Make it work, make it good, make it fast" rule. Well, I made it work.