Alla projekt
05

Real-time Drawing Game

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

Lobby, gameplay och resultat från Real-time Drawing Game
RollSpelstate · poängsystem · rollbyten · ordgenerering
Team2 studenter
Omfattning1–2 veckor
VerktygASP.NET Core · C# · SignalR · JavaScript · Web API
01

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.

Gameplay med ritcanvas och gissningsflöde
02

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.

Förenklad arkitektur för SignalR-flödet
03

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.

Nästa projektBattleship