March 2026
The game was built using Blazor, where the goal is to guess a hidden five-letter word within six attempts. A new word is generated daily, so every user plays the same word on that day, no matter where they are. The system is designed using gRPC and is split into three main components. The first server handles word validation and provides the daily word, the second server manages the core game logic and user statistics, and the client connects to these services to run the game and display results. The game also uses a bidirectional streaming RPC to handle gameplay, allowing the client and server to communicate continuously during each round. This project helped me understand how to design and connect multiple services, handle real-time game logic, and structure a distributed application using C#.
Frontend: Blazor, HTML, CSS, JavaScript, jQuery, Bootstrap
Backend: C#, ASP .NET Core, gRPC
Database: SQL Server
Architecture: Distributed system with multiple services (Word Server, Game Server, Client)
Communication: Bidirectional streaming using gRPC
Data: JSON word list, file-based statistics tracking
Version Control: GitHub
Structuring the project with MVC was complex. The most difficult parts were building a secure friend request system (send, accept, reject) and implementing safe login/signup with password reset and JWT authentication.
One of the main challenges was working with gRPC, since it was new to us. The bidirectional streaming was especially tricky because it requires continuous communication between the client and server during the game.
We are planning to deploy the application using DigitalOcean, but it has not been deployed yet. If you're interested in viewing the repository, feel free to reach out by email. I'd be happy to share it with you!