Lag (din engleză lag , [læɡ] - „întârziere”, „întârziere”) - o întârziere în funcționarea unei aplicații de calculator atunci când aceasta nu răspunde la timp la intrarea utilizatorului. „Lag” derivat este utilizat pe scară largă de utilizatorii de internet pentru a indica întârzierile în funcționarea diferitelor servicii de internet și jocuri online. De asemenea , jucătorii folosesc cuvântul „lag” în legătură cu întârzierile programului în sine. Deseori găsite în jocurile online. Din punct de vedere tehnic, este o manifestare a influenței latenței operațiunilor de transmitere și prelucrare a datelor asupra calității sistemului în timp real .
Chiar și într-un joc cu un singur jucător , întârzierea dintre apăsare și imagine constă din mai multe părți [1] [2] :
Într-un joc în rețea, la aceasta se adaugă timpul necesar pachetelor pentru a călători de la computer la computer .
De asemenea, joacă rolul de microlags sau stutters - cadre care sunt desenate mai lungi decât altele [7] . De obicei, microlag-urile apar atunci când lucrurile din joc devin serioase [7] (luptă în FPS, trafic intens într-o cursă) - prin urmare, microlag-urile afectează experiența jocului chiar mai mult decât întârzierea medie.
Pentru a reduce întârzierile, aplicați următoarele măsuri:
Dacă întârzierile de la un buton la o imagine au început să fie luptate abia în anii 2010, atunci întârzierile rețelei de calculatoare au început să joace un rol încă din primii ani de jocuri pe Internet și sunt aproape întotdeauna mai semnificative decât alte tipuri de întârzieri (cu excepția unor întârzieri speciale). cazuri - eSports , adică jocul pe o rețea locală descărcată). În special, lumina călătorește de-a lungul ecuatorului Pământului în 130 ms - un astfel de ping este considerat inacceptabil de jucătorii moderni și, teoretic, aceasta este cea mai mică cifră atunci când jucătorii se află în diferite părți ale Pământului.
Strict vorbind, fiecare pachet transmis este livrat cu o întârziere, dar întârzierile sunt de obicei doar întârzieri vizibile care interferează cu un joc normal. În același timp, percepția întârzierilor de către jucători depinde de mulți factori, legați în primul rând de precizia și timpul de reacție necesar la un moment dat de joc [8] . De obicei, întârzierea rețelei este cauzată de pierderea pachetelor de rețea și de retransmiterea asociată a pachetelor de rețea pierdute.
Arhitectura lui Doom (1993) a fost cea mai simplă: fiecare jucător are o stare completă de joc. În fiecare ciclu (35 de cicluri pe secundă, 1 ciclu = 28 ms) jucătorul trimite butoane de control celorlalți. De îndată ce jucătorul a acumulat butoane de la toți participanții la jocul de rețea, el petrece un nou ciclu [9] . Aceeași lumină străbate Statele Unite în 15 ms, iar această arhitectură este suficientă chiar și pentru un joc cu modem prin mai multe state americane.
Există o asemenea diferență între jocurile moderne și Doom .
De obicei, problema întârzierilor se rezolvă în acest fel. Jocul are două stări - „garantat” și „avansat” [10] . „Garantat” este ceea ce s-a întâmplat pe server și nu poate fi schimbat în niciun fel de pachetele care sosesc brusc și poate rămâne în urmă cu o cantitate considerabilă - mai mult de 100 ms. Starea „înainte” este determinată de controlul local al jucătorului și de pachetele acelor jucători care au conectivitate bună. Astfel, în ciuda conectivității slabe, fiecare jucător are comenzi receptive. Întârzierile de rețea stereotipe arată astfel:
Încă din zilele lui Doom , au existat două moduri de a trage în jocuri - calculul instantaneu al traiectoriei unui glonț ( hitscan ) și un proiectil lent ( proiectil ). (Intermediar - un glonț rapid - este implementat extrem de rar și în jocurile foarte realiste axate pe dueluri cu lunetisti și artilerie, îl vom omite.) Cu proiectile, jocul nu se va abate foarte mult de la adevăr dacă jucătorul vizează starea avansată, iar hit-urile sunt calculate în conformitate cu garantat [11] . Este imposibil să se calculeze traiectorii în acest fel - nu există deloc stare avansată pe server, ele sunt diferite pentru diferiți jucători și există tipuri puternice de arme de scanare cu hit, cum ar fi o pușcă cu lunetă , pentru care întrebarea „hit-miss” este de arhivă . Prin urmare, în multe motoare ( Sursa ) se folosește așa-numita compensare a întârzierii - serverul face o presupunere despre ce imagine a văzut clientul în momentul fotografierii [12] . În exterior, arată astfel: jucătorul s-a aplecat afară, s-a ascuns cu succes și a fost ucis deja acolo, într-un loc sigur [12] .
Linia de bază este un joc single player sau LAN (latențele de rețea sunt neglijabile), tamponarea dublă este dezactivată, jocul este configurat astfel încât rata de cadre a sistemului să fie stabilă și să o depășească pe cea a monitorului.
Pentru o lungă perioadă de timp, reducerea decalajului de joc a fost redusă la creșterea ratelor de cadre . În același timp, consolele de jocuri au avut inițial un avantaj - încă din primele generații au produs un frame rate ridicat (50/60 Hz), acest lucru a fost realizat prin soluții specializate care au limitat designul jocului [16] , dar au făcut sistemul mai ieftin: pt. de exemplu, Sega Mega Drive pe 16 biți cu o frecvență de 7,6 MHz și similare în performanță 80386 este deja pe 32 de biți [17] și 12...40 MHz.
La începutul anilor 2000, jocurile de pe PC au început să ofere în mod constant aceeași frecvență de 60 Hz ca pe console, iar de-a lungul anilor 2000, calitatea imaginii a fost îmbunătățită prin programarea plăcii video folosind shadere . A fost nevoie de mai multe treceri de randare pentru a adăuga iluminare, reflexii etc. [18] , iar pentru a preveni așteptarea procesorului, randarea a fost făcută întârziată [19] . Această tehnologie a jucat o glumă crudă: dacă placa video este încărcată la limită, întârzierea de la clic pe imagine crește. Limitarea ratei de cadre, chiar și până la 95%, făcând jocul practic „dependent de CPU”, reduce latența [15] .
Latența a fost în umbră în tot acest timp pentru că este greu de măsurat - necesită un mouse modificat (apăsarea butonului aprinde un LED ) și o cameră de mare viteză [2] . Cercetătorii au putut măsura o cifră de până la 120 ms, și chiar și la o rată de cadre de 120 fps este de aproximativ 40 ms [13] [15] . O astfel de întârziere este uneori numită „avantajul de a observa cu privirea” - aruncarea cu ochiul din spatele unui obstacol știe dinainte că apărătorul se află într-un anumit punct și poate trage înainte, dar apărătorul nu poate [2] . În 2020 a apărut tehnologia nVidia Reflex - permite jocului să monitorizeze încărcarea plăcii video, iar acest lucru reduce foarte mult întârzierea [2] . Tehnologia este disponibilă cu orice monitor și chiar și pe plăci video relativ vechi (începând cu GeForce 900 ), dar jocul trebuie să o suporte. (Cealaltă parte a nVidia Reflex, calculul latenței, necesită un monitor specific și ia în considerare totul, cu excepția vitezei mouse-ului și a pixelilor monitorului.)
Sutimile de secundă sunt importante în jocurile de ritm , toate evenimentele sunt complet previzibile și sunt de obicei jucate pe console, unde dispozitivul de ieșire este un televizor cu propriii algoritmi de îmbunătățire a imaginii. De aceea Guitar Hero și jocurile similare au calibrare întârziere [20] .