Lag Compensation / 0 Ping – Update eLeague.ro servers

Posted by SmoKey March 28, 2020 in NewsUpdate servers

Română:
Ce este "Compensația pentru lag"?
 https://developer.valvesoftware.com/...g_compensation
 https://developer.valvesoftware.com/...g_compensation

Așadar, ce înseamnă compensația pentru lag?
Motorul-sursă are doar o compensare pentru entitățile jucătorului. Orice altceva care se mișcă pe server NU este compensat iar acest plugin rezolvă acest lucru în cea mai mare parte. De asemenea, oferă compensații de decalaj exacte și usoare (fără interpolare între două instantanee) pentru entități trigger {hurt, push, teleport} și func_physbox* care sunt asociate entităților în mișcare. Face acest lucru automat și evită întreruperea.

Cum funcționează?
Amintește ultimele 32 de stări (configurabile) de până la 256 de entități (configurabile) serverului.
Acesta urmărește dacă entitățile se mișcă efectiv și le compensează doar dacă sunt.
Abia există implicații de performanță ale rulării acestui plugin, mai ales pentru că optimizează, de asemenea, modul de declanșare. Dacă un declanșator este compensat, acesta nu va mai rula nicio simulare fizică.

De obicei, un declanșator în mișcare ar fi scanarea activă și atingerea oricărei entități din carcasa de coliziune.
Pentru a face posibilă compensația pentru lag, aceasta este blocată cu extensia PhysHooks și acum doar jucătorii vor atinge declanșatorii.
Înainte de a fi simulat un jucător, toate entitățile (active/în mișcare) sunt mutate acolo unde se află pe ecranul lor. Acest lucru este realizat pentru fiecare jucător.
La sfârșitul buclei de simulare a jucătorului, entitățile compensate sunt restabilite în starea serverului lor.
După ce entitățile au fost simulate, parametrii lor sunt înregistrați.

English:
What is lag compensation?
 https://developer.valvesoftware.com/...g_compensation
 https://developer.valvesoftware.com/...g_compensation

So, what does lag compensation mean?
The source engine has lag compensation for player entities ONLY. Anything else that's moving around on the server is NOT lag compensated and this plugin fixes this for the most part. Also, it provides accurate and cheap (no interpolation between two snapshots) lag compensation for trigger_ {hurt, push, teleport} and func_physbox * entities that are parented to moving entities.
It does this automatically and avoids breaking.

How does it work?
The plugin remembers the last 32 (configurable) states of up to 256 (configurable) entities.
It keeps track if entities are actually moving and only compensates them if they are.
There are barely any performance implications of running this plugin, especially because it also optimizes how triggers work. If a trigger is lag compensated it will not run any physics simulation any more.

Usually a moving trigger would be actively scanning and touching any entity in its collision hull.
To make lag compensation possible this is blocked with the PhysHooks extension and now only players will be touching triggers.
Before a player is simulated, all (active / moving) entities are moved to where they are on their screen. This is done for each player.
At the end of the player simulation loop the compensated entities are restored to their server state.
After the entities have been simulated their parameters are recorded.