Server FPS / FPS 1000 / Servere Counter Strike

Tutoriale legate de Counter-Strike.
Avatar utilizator
Mesaje: 7177
Membru din: 03 Ian 2007, 15:38
Localitate: Bucuresti

Server FPS / FPS 1000 / Servere Counter Strike

Mesajde Romeo » 12 Sep 2009, 02:18

Understanding Server Side FPS.

For a couple of months, a lot of game server providers offer special high performance servers that run at 1000 FPS. These 1000 FPS make the server run a lot better and more precisely compared to standard settings. Players hit better and the calculation of the player’s positions is also a lot more precise and if you are a "competitive player" in a “professional gaming league”, you of course need one of these 1000 FPS servers.

If you take a closer look at the details concerning these 1000 FPS servers, you’ll find that what most providers tell you is very unclear and confusing. Sometimes they try to give the impression that their servers are “FPS certified” in some way, without telling you what this certification really is. We can assume that this certification has been invented by the game server providers themselves or that it only expresses some subjective opinion. Do game servers that run at 1000 FPS really offer a smoother gameplay with better hit registration? No, because they simply can’t! Here’s why …

In theory

All events on a CS:S or CS1.6 server are calculated by frame. All positions, directions and speeds of one point in time are summarized in one frame. A frame is similar to a snapshot or still image of a movie. The more frames a server calculates per second, the more precise are its data. At 1000 frames per second (FPS) the server calculates its “world” at a rate of one frame per millisecond. At 100 FPS it calculates the same “world” at a rate of one frame per 10 milliseconds. So far the argument of a higher precision is still valid … but only as long as you look at the isolated server. In practice all this remains without any use to the client.

In practice

Here the players (clients) have to be taken into consideration, too. The server may calculate its “world” at 1000 FPS. That is only a millisecond for every calculated frame. On the other end the clients do not get their updates at such a high rate but a lot slower. How often they can be updated per second is determined by the server’s tickrate. The tickrate is usually set to 66 or 100 for high quality servers. The server freezes its “world” per tick and then decides which clients it sends its data to. But the server doesn’t send all its information. It only sends the changes compared to the last update. The tickrate defines how often the server takes snapshots of its frames that can then be sent to the clients. This way a client gets only 100 updates per second from a tickrate 100 server. On the other hand the clients also send the server commands. Here the tickrate also determines how many commands per second a server accepts from a client. This would be also only one command per 10 milliseconds for a tickrate 100 server.

This is the point where the house of cards finally collapses. What is the server supposed to calculate its “world” with every millisecond if it only gets one command from all clients every 10 milliseconds? All the server can do is calculating its “world” with old data 90% of its time. If you now also take into consideration that there are different latencies that influence the rates at which the clients send their commands to the server and that the server buffers these commands in queues, 500, 600 or even 1000 FPS make no sense at all. The server usually has to work data that is about 50 milliseconds old or even older. During this time a lot of things may have already changed and some inputs (mouse movement) may have been given on the client side. So the server has to predict events - it has to guess what the clients will do next. It maybe calculates something completely different movement from what the player really does … with a precision of one millisecond at 1000 FPS. It does not matter if the server runs at 333 FPS or 1000 FPS. A wrong guess stays a wrong guess. At 1000 FPS it is just “more precisely wrong”.

Now you might ask “But what if the server guesses right?” True, if the server predicts correctly the position of a player is indeed more precise - on the server! But not on the client. Both engines for CS:S and CS1.6 act on the assumption that the server’s and the client’s time is in sync. The servers time is used for all clients. So the server saves a so called frame time for every calculated frame. It does this every millisecond on good Linux servers. The client uses the frame time that it receives with every update as its own time. From a 1000 FPS server with a tickrate of 100 the client should receive updates in which the frame time has advanced 10 milliseconds. Even if the server has predicted the player’s actions correctly, 1 or 2 milliseconds latency in a packet’s run time from the server to the client are enough to make all data imprecise again. So again, it does not matter if the server runs at 333 or 1000 FPS. Not to mention, latencies are usually a lot higher.

Some might say “But the server includes latencies into its calculations!” True again. The server does indeed take the client’s latencies into account. In order to calculate latencies correctly, the server needs a command packet from the client. This value is determined across a series of command packets and then included in the server’s calculations. But even finding the average makes all this imprecise again. Even more importantly the server uses old data to calculate that average latency. Again no difference between a 333 and a 1000 FPS server.

Some players think that with settings of cl_cmdrate 100, cl_updaterate 100 and rate 30000, you get exactly that from the server. But that is also wrong. In both CS:S and CS1.6 the server is authoritative. That means that under any circumstances it is the server that decides how many updates it sends and how many commands it accepts per second. The client maybe claims to receive 100 updates per second but the server sometimes just delivers 90. Here 1000 FPS are also counterproductive. If the server is under heavy load and can’t calculate its 1000 FPS anymore, it decides to send the clients fewer updates and to process fewer commands in order to reach its maximum rate of FPS because the engine prioritizes the FPS rate achievement over processing updates and commands. This is important because the Source Engine but also the old Half-Life Engine do all their calculations per frame. No frame, no calculation, no update. The engine will always try to reach its pre-set FPS under all circumstances and will simply drop all commands and commands from and to the clients if necessary. This is why in this case a server that runs at a constant 333 FPS is a lot more precise than a server that has to switch between 500 and 1000 FPS all the time, which is exactly what most tuned 1000 FPS servers currently do.


It is not important if a server runs at 333, 500, 600 or even 1000 FPS. Any of these frame rates make a server fast enough. It is far more important that the server has a high quality internet connection and always reaches its pre-set FPS. Only Valve Software can make hit registration better by improving the algorithms responsible for prediction, extrapolation and interpolation and thus making these more precise.

Don’t let yourself be fooled by fake “1000 FPS certificates”. Don’t let anyone force you to play on a 1000 FPS server in wars or matches. It is all just a marketing gag – nothing more or less.

Disclaimer: This article was originaly written by 'm.freaks|BD|Lefty' in the German language.

Share This


Re: Server FPS / FPS 1000 / Servere Counter Strike

Mesajde caNdy » 18 Sep 2009, 01:07

o traducere se poate ? :D
Utilizator Inregistrat
Utilizator Inregistrat
Mesaje: 74
Membru din: 04 Aug 2008, 04:33
Localitate: Râmnicu Vâlcea

Re: Server FPS / FPS 1000 / Servere Counter Strike

Mesajde CooL » 22 Sep 2009, 16:18

Înţelegerea Server Side FPS.

Pentru câteva luni, o multime de furnizori de server de jocuri oferim servere de înaltă performanţă speciale care se execută la 1000 FPS. Aceste 1000 FPS a face serverul rula mult mai bine şi, mai precis faţă de setările standard. Jucatorii lovit mai bună şi de calcul a poziţiilor jucătorului este, de asemenea, mult mai precisă şi, dacă eşti un jucător "competitivă" într-o ligă "jocuri profesională", ai desigur nevoie de unul dintre aceste servere 1000 FPS.

Dacă aruncaţi o privire mai atentă la detalii privind aceste servere 1000 FPS, veţi găsi că ceea ce majoritatea furnizorilor să vă spun este foarte neclar şi confuz. Uneori, ei încearcă să dea impresia că serverele lor sunt "FPS certificate" într-un fel, fără a vă spune ce acest tip de certificare este cu adevărat. Putem presupune că acest certificare a fost inventat de către furnizorii de server de joc de ei înşişi sau că aceasta doar exprimă unele opinii subiective. Nu servere de joc care se execută la 1000 FPS într-adevăr oferi un gameplay mai fin, cu înregistrare a lovit mai bine? Nu, pentru că pur şi simplu nu pot! Iată de ce ...

În teorie

Toate evenimentele pe un CS: S sau server de CS1.6 sunt calculate prin cadru. Toate pozitiile, direcţii şi viteze de un punct în timp sunt prezentate într-un singur cadru. Un cadru este similar cu un instantaneu sau o imagine statică a unui film. Frame-uri mai mult pe un server de calculează pe secundă, mai precise sunt datele sale. La 1000 de cadre pe secundă (FPS) serverul calculează lumea sa "," la o rată de un cadru pentru fiecare milisecundă. La 100 fps se calculează aceeaşi "lume", la o rată de un cadru la 10 milisecunde. Până în prezent, argumentul de o precizie mai mare este încă valabil ... dar numai atâta timp cât te uiţi la serverul de izolate. În practică, toate acestea rămâne fără nici o utilizaţi pentru a clientului.

În practică,

Aici jucători (clienţi) trebuie să fie luate în considerare, de asemenea. Serverul poate calcula lumea sa "," la 1000 FPS. Aceasta este doar o milisecunda pentru fiecare cadru calculate. La celălalt capăt clienţii nu obţine actualizări lor la o astfel de rata de ridicat, dar mult mai lent. Cât de des acestea pot fi actualizate pe secundă este determinată de tickrate serverului. Tickrate este, de obicei setat la 66 sau 100 pentru servere de înaltă calitate. Server de îngheaţă lumea sa "," per căpuşe şi apoi decide pe care clientii le trimite datele sale de a. Dar serverul nu trimite toate informaţiile sale. It unic a trimite schimbări faţă de ultima actualizare. Tickrate defineşte cât de des pe server ia instantanee de cadre sale care pot fi apoi trimise la clienti. În acest fel un client este de numai 100 de actualizări de pe secundă de la o tickrate 100 server. Pe de altă parte, de asemenea, clientii trimite comenzi pe server. Aici tickrate determină, de asemenea, cât de multe comenzi pe secundă, de la un server acceptă un client. Acest lucru ar fi, de asemenea, numai o singură comandă la 10 milisecunde pentru o tickrate 100 server.

Acesta este punctul în care casa de carduri în cele din urmă se prăbuşeşte. Ce este serverul ar trebui să calculeze lumea sa "," cu fiecare milisecunda numai în cazul în care devine o comanda de la toti clientii la fiecare 10 milisecunde? Toate server pot face este calcularea lume "acestuia cu date vechi de 90% din timpul său. Dacă acum, de asemenea, să ia în considerare faptul că există latenta diferite care influenţează ratele la care clienţii lor de a trimite comenzi server şi faptul că serverul tampoanele aceste comenzi în cozi, 500, 600 sau chiar 1000 FPS a face nici un sens, la toate. Serverul are, de obicei pentru a lucra de date care este de aproximativ 50 de milisecunde vechi sau chiar mai mari. În acest timp o mulţime de lucruri să se fi schimbat deja şi unele intrări (mişcarea mouse-ului), poate să fi fost dat pe partea de client. Deci, serverul are pentru a prezice evenimente - aceasta trebuie să ghicească ce clientii vor face în continuare. Ea poate calculează ceva complet diferit de circulaţie de ceea ce jucător într-adevăr does ... cu o precizie de o milisecunda la 1000 FPS. Nu contează dacă serverul rulează la 333 FPS sau 1000 FPS. Un ghici greşit rămâne o presupunere greşită. La 1000 FPS, este doar "cu mai multă precizie greşit".

Acum, s-ar putea intreba "Dar ce se întâmplă dacă serverul ghiceste-i asa?" Adevărat, în cazul în care serverul prezice corect poziţia de un jucător este într-adevăr, mai precis - pe server! Dar nu pe client. Ambele motoare pentru CS: S şi acţionează CS1.6 pe ipoteza că a server-ului şi timpul clientului este în sincronizare. Servere de timp este utilizat pentru toti clientii. Deci, serverul salvează un timp aşa-numitul cadru pentru fiecare cadru calculate. Ea face acest lucru în fiecare milisecunda pe bune servere Linux. Clientul foloseste de timp cadru pe care le primeşte cu fiecare actualizare ca timp de propriile sale. De la un sistem de protecţie frontală server de 1000, cu o tickrate de 100 de clientul ar trebui să primească actualizări, în care timp cadru a avansat în 10 milisecunde. Chiar dacă serverul a prezis acţiunile jucătorului în mod corect, 1 sau 2 milisecunde latenţă în timp a alerga de la server către client a unui pachet sunt suficiente pentru a face toate datele imprecisă din nou. Deci, din nou, nu contează dacă serverul rulează la 333 sau 1000 FPS. Să nu mai vorbim, latenta sunt de obicei mult mai mare.

Unii ar putea spune "Dar latenta server include în calculele sale!" True din nou. Serverul nu ia într-adevăr latenta clientului în considerare. În scopul de a calcula corect latenta, server are nevoie de un pachet de comandă de la client. Această valoare este determinată într-o serie de pachete de comandă şi apoi incluse în calculele serverului. Dar chiar şi găsirea medie a face toate astea imprecisă din nou. Chiar mai important pe server utilizează datele vechi pentru a calcula faptul că latenţa medie. Din nou, nici o diferenţă între 333 şi un server de 1000 FPS.

Unii jucatori cred că, cu setări de 100 cl_cmdrate, 100 cl_updaterate şi rata de 30000, tu a lua exact ca de pe server. Dar asta este, de asemenea, greşit. În ambele CS: S si CS1.6 server este de autoritate. Asta înseamnă că, în orice condiţii, este serverul care decide cât de multe actualizări acesta trimite şi cât de multe comenzi îl acceptă pe secundă. Clientul poate pretinde pentru a primi actualizări de 100 pe secundă, dar serverul nu oferă, uneori, doar 90. Aici 1000 FPS sunt, de asemenea, contraproductive. Dacă serverul este în sarcină grea şi nu poate calcula FPS sa mai 1000, în care decide să trimită clienţilor actualizări mai puţine şi mai puţine pentru a procesa comenzi pentru a ajunge la nivelul maxim de FPS, deoarece motorul prioritizează realizarea FPS peste rata de prelucrare a actualizări şi comenzi. Acest lucru este important deoarece Engine Sursa, dar, de asemenea, vechile Half-Life Motor de a face toate calculele lor pe rama. Nu cadru, nu de calcul, nici o actualizare. Motorul va încerca întotdeauna să ajungă la pre-stabilit sistemul de protecţie frontală, în orice situaţie şi va scădea pur şi simplu toate comenzile şi de comenzi de la şi către clienţi, dacă este necesar. De aceea, în acest caz, un server care ruleaza la o constantă 333 FPS este mult mai precis decât un server care are de a comuta între 500 şi 1000 FPS tot timpul, care este exact ceea ce majoritatea tuned 1000 servere de FPS în prezent face.


Nu este important daca un server se execută la 333, 500, 600 sau chiar 1000 FPS. Oricare din aceste rate cadru a face un server de suficient de repede. Este mult mai important faptul că serverul are o conexiune la internet de mare calitate şi întotdeauna ajunge la pre-stabilite FPS. Numai Valve Software-ul poate face lovit de înregistrare mai bine prin îmbunătăţirea algoritmilor responsabil de predictie, extrapolare şi interpolare şi făcând astfel aceste mai precise.

Nu te lăsa păcălit de fals "1000 certificate FPS". Nu lasa pe nimeni te obliga sa joci pe un server de 1000 sistem de protecţie frontală în războaiele sau meciuri. Acesta este doar un gag de marketing - nimic mai mult sau mai puţin.

Avertisment: Acest articol a fost scris iniţial de către "m.freaks | BD | Lefty" în limba germană.

google.translate power, daca intelegeti ceva, bine :)) !!

Share This

Înapoi la “Tutoriale Counter-Strike”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 1 vizitator