Quiz42

Többszemélyes játék

Projekt ismertetése

A projekt célja

A Quiz42 megálmodói egy olyan, angol nyelvtantudást fejlesztő alkalmazást szerettek volna létrehozni, amelyben a felhasználók egymás ellen tudnak játszani, függetlenül attól, hogy milyen eszközt vagy böngészőt használnak, miközben valós idejű játékélményben van részük. Nem szükséges külön hangsúlyozni, hogy a kvízjátékos alkalmazások piaca rendkívül telített, ezért számos kihívás várt csapatunkra a projekt megvalósítása során.

Kihívások

  • valós idejű játékélmény biztosítása
  • szerverszintű skálázhatóság és bővíthetőség, a nemzetközi felhasználók miatt
  • a felhasználói élmény és a játékot használó széles korosztályi réteg igényeinek összehangolása
  • kiemelkedő arculat, valamint felhasználói felület tervezése a nagyszámú, egyforma stílusban készült konkurens alkalmazások között

A projekt megvalósítása

A Quiz42-t egy SPA (Single Page Application) elven működő alkalmazásként terveztük meg. Ez a működési elv azt jelenti, hogy a böngésző újabb tartalmak megjelenítéséhez nem tölti újra a teljes alkalmazást, hanem azokat egyetlen oldalon, gyorsan és dinamikusan jeleníti meg. Ennek megvalósítása a Vue.js JavaScript keretrendszer segítségével történt.

A valós idejű játékélményt a WebSocket technológia révén biztosítottuk. Ennek segítségével egy kétirányú kommunikációs csatorna jön létre a játékos és a szerver között, melyen keresztül az üzenetek gyorsan, késleltetés nélkül érnek célba. Egy-egy játék során ezeket a kapcsolatokat kötjük össze a szerveren, és ennek köszönhetően tud a szerver kommunikálni a kliensekkel.

A várakozó játékosok közötti sorsolás egy meghatározott logika mentén zajlik, melynek lényege, hogy a közel azonos képességű ellenfelek kerüljenek egymással szembe. Lehetővé tettük azt is, hogy ha egy játékosnak sokat kellene várakoznia egy élő személy elleni játékra, akkor elérhető legyen robotok elleni játék is. Ebben az esetben a gép figyelembe veszi a játékos képességeit és ennek megfelelő szinten fog játszani.