abstract
MindRoll is a distributed, turn-based multiplayer dice game designed to explore and apply key concepts in distributed systems such as authentication, remote procedure calls (RPC), real-time synchronization, and client-server communication. The system is implemented in Python, with a graphical user interface (GUI) developed using Pygame and a custom RPC framework enabling communication between clients and the central game server. Players can register, log in, create or join rooms, and take part in rounds of strategic gameplay that involve calling and revealing dice values. The server manages the game state, verifies turns, synchronizes player actions, and broadcasts results to all connected users to ensure fairness and consistency. The system also supports fault tolerance through reconnection logic, and scalability is considered for future extensions. Core game logic is abstracted from the UI and communication layers to maintain modularity. This project provides a hands-on implementation of core distributed system principles in a real-time interactive environment. It serves as a foundational prototype for building more advanced online multiplayer systems and highlights the practical challenges of synchronization, state consistency, and user coordination in a distributed setting.
outcomes