✦ I am a french computer science student at University Institute of Technology in Aubière 🇫🇷
✦ I specialize in mobile application development and backend development. 📱
✦ However, I also enjoy front-end development and building web applications like this website. 🧑🏻💻
Composed of tools and languages I like (clearly not exhaustive)
As part of my studies in a Bachelor of Technology (BUT) in Computer Science, second year, my team and I had to create a video game inspired by the board game Chromino.
The goal of the game is simple: each player has a deck composed of chrominos. These chrominos are dominoes composed of 3 squares of colors among blue, red, green, yellow, purple, and white, which is a wildcard color. To place a chromino, it is sufficient that two of its colors correspond to the adjacent chromino(s). Of course, no incorrect contact should occur. The first player to run out of chrominos wins.
This project was a real technical challenge as it made me discover or rediscover many programming languages: PHP, C# (API, Entity Framework, and Blazor), Kotlin (Android), and Node.js.
Indeed, the project has a complex structure summarized in the diagram below. We needed to provide a web application in PHP for playing the game. However, to enable multiplayer functionality, we implemented websockets through a Node.js server that centralizes all the game logic. We also developed an administrator interface using Blazor and Android.
The major challenge of this project was primarily deploying and integrating all the components together. Indeed, it was the first time I undertook a project of this scale. I had never before integrated so many services coded in different languages. It required understanding how to make them communicate, setting up CI/CD, and crossing our fingers (just kidding).
I also had to learn how to effectively collaborate within a team; otherwise, such a project could never have been completed within the allotted time. We used Discord for written communication and remote discussions, a Kanban board for task distribution and assignment, Google Drive for external documents, and (obviously) Git for code management.