Real-time Drawing Game
Ett webbaserat rita-och-gissa-spel för två spelare med privata lobbyer, realtidsritning, chatt, roller, timer och poängsystem.

Realtidsspelet
Projektet gjordes i kursen Applikationsutveckling för Internet och var en kort prototyp med fokus på realtidskommunikation. Två spelare går in i en unik lobby och får rollerna ritare och gissare. SignalR synkroniserar ritdata, chatt, roller och poäng utan sidomladdningar, medan ett eget Web API används för att hämta slumpmässiga ord. Spelstate lagras i minnet i stället för i en databas eftersom fokus låg på själva realtidsflödet.

Teknisk lösning
ASP.NET Core MVC/Razor står för webbapplikationen och en SignalR GameHub koordinerar klienterna och rundorna. Lobbyerna får unika GUID:er och servern håller reda på anslutningar, roller, timer, ord och poäng. Resultatet blir ett relativt litet system där den viktigaste arkitekturfrågan är att båda klienterna alltid ska se samma spelstate i rätt ögonblick.

Mitt bidrag & lärdomar
Jag arbetade bland annat med ordgenereringen, poängsystemet och rollbyten när någon gissar rätt eller när timern löper ut. Jag gjorde också flera mindre justeringar av spelstate. Projektet var min introduktion till SignalR och gav mig en bättre förståelse för WebSockets och varför realtidsgränssnitt kräver mer noggrann state-hantering än vanliga request/response-flöden.