Ce trebuie să știi despre game networking?

Jocurile video sunt o sursă de distracție și de petrecere a timpului liber pentru tinerii din ziua de astăzi. Există mai multe tipuri de jocuri video, însă cele de tip multiplayer au un succes răsunător.

Fiind un tânăr pasionat de programare și de jocuri video, acum stai și te gândești cum ar fi să lucrezi la crearea unor astfel de jocuri multiplayer. Dar te-ai întrebat vreodată cum funcționează acestea?

Din afară, totul pare ceva magic. Doi sau mai mulți jucători împart aceeași experiență într-o lume virtuală. Însă, un programator știe că ce se întâmplă în spatele acesteia este diferit față de ceea ce vezi.

Pentru a afla mai multe despre cum funcționează jocurile în rețea, cei de la Gaffer on Games prezintă trei modele care fac posibile jocurile multiplayer.

Peer-to-peer

La început, jocurile multiplayer se jucau într-o rețea peer-to-peer, unde calculatoarele se conectau direct unele la altele pentru schimb de informații. Ideea de bază este aceea ca toți jucătorii să plece de la o stare inițială, ca mai apoi să fie executate aceleași seturi de comenzi pe calculatorul fiecărui jucător.

Pare simplu și elegant, însă această metodă are unele limitări. Una dintre acestea ar fi că, dacă vrei ca jocul să ruleze identic pe toate calculatoarele, trebuie să aștepți până când toate comenzile jucătorului pentru o mișcare sunt primite înainte ca aceasta să se facă propriu-zis în joc. Acest lucru duce la întârzieri (lag) și desincronizări.

Jocurile de tip RTS (strategie în timp real), precum „Age of Empires” sau „Starcraft” folosesc astfel de rețele peer-to-peer.

Client/Server

Limitările rețelei peer-to-peer au devenit vizibile în jocurile de acțiune. Deși se puteau juca foarte bine într-o rețea locală, acestea se jucau foarte greu pe internet. Ca să poți să te miști sau să tragi, trebuia să aștepți comenzile jucătorului cu cea mai slabă conexiune la internet.

De aceea a fost creat modelul client/server. Astfel, în loc să se conecteze direct unii cu alții, jucătorii, numiți „clienți”, pot comunica cu un singur calculator, numit „server”. Jocul există doar pe server, iar jucătorii pot veni sau pleca chiar în timpul desfășurării acestuia.

Însă și acest model avea o problemă. Jucătorii cu o conexiune la internet bună se puteau bucura de o experiență mai plăcută față de cei cu conexiuni mai slabe.

Client-side prediction

Acest model presupune faptul ca setul de comenzi date de către jucător să fie executat imediat pe calculatorul său, iar serverul să corecteze apoi poziția și acțiunile personajului din joc. Se rulează mai mult cod pe calculatorul jucătorului, însă întârzierile scad considerabil.

Dificultatea implementării acestui model constă în aplicarea corecțiilor de către server. Scopul este acela de a rezolva cazurile în care „clientul” și „serverul” nu sunt de acord cu privire la poziția și mișcările personajului, adică apar diferențe între comanda dată de jucător și corecțiile date de server. Soluția la această problemă a fost ca serverul să decidă unde trebuie să fie personajul. Astfel se pot evita situațiile în care jucătorii vor să trișeze.

Acest model a avut un succes mare, iar foarte multe jocuri video de tip multiplayer îl folosesc.

Ție cât de mult îți plac jocurile video? Poate că acum te vei gândi serios să urmezi o carieră în această industrie.

Claudiu Vlad
Membru Departament Educațional
Sindicatul Studenților din Cibernetică (SiSC)

You may also like...