EpochModTeam / DayZ-Epoch

Experimental DayZ Mod for Arma 2
http://epochmodteam.github.io/DayZ-Epoch
226 stars 398 forks source link

PV Optimization | PVS+PVC instead of PV #941

Closed Skaronator closed 10 years ago

Skaronator commented 10 years ago

Working in Progress

Checkout

Scripts Done

facoptere commented 10 years ago

Could you explain why it's optimizing something, giving a simple example ? I did not understand the benefit in 1.8 since IMHO it induces more lag on server side since it's at script level (I understood that a client that need to broadcast a variable, unicast its variable to the server then the server broadcast it to everyone, but maybe I am wrong). And I don't even mention that this can't be properly filtered via BE.

The main problem IMHO is dayz mod(s), is that some variables are broadcasted to everyone (via PV and even more via networked SV) whilst it does not produce any graphical or sound effects for other players. Removing all these unneeded updates would save a lot of power on server side. Maybe it's also what you mean in this issue.

The other thing to consider is how often a PV is used. For example, how many times per second a player is dragging a corpse? I think that the result is close to zero. So why optimizing it.

The proper and more pragmatic way to do this optimization, is for example, to put 1 "" in publicvariable.txt BE filter, see how the logs are growing, and say "let's try to divide the volume per 2 by tweaking the code". Same for setvariable.txt.

Skaronator commented 10 years ago

A few example would be:

Same with

Current way (example) Repair 1 Part of a Vehicle >> broadcast to every player (would be 54 other player on my Server) >> 1 Part Repaird

New way would be Repair 1 Part of a Vehicle >> Send the Var to Server >> Server send the Var back but just to 1 Player instead of 55

facoptere commented 10 years ago

ok it's just replacing PV by PVS (not PVC) when the event should be processed by the server only (repair is a good example). But all these optimizations have been done in 1.7. In 1.8 the idea was to replace all PV by PVS + some server script + PVC , but there is always some lag on the server (several seconds, maybe 1 minute if the server need a restart), so it's not suitable for realtime events.

Example: vehicle handle damage, sometime the setHit will be done in real time by the vehicle's owner, and other times it will be done by the server with a delay. This can lead to some issue, no?

Skaronator commented 10 years ago

I don't have any issue with a big delay in PVS+PVC, for example I've a function in my admin tool to check the ServerFPS, its send the Server (via PVS) the Request and the Server answere (via PVC) the FPS. I have currently 55 Player on my Server and the Complete system need normally not over 1 secound. Here is the result with 55 Player:

Skaronator commented 10 years ago

After Restart (with 50 Player and 5 min Uptime)

facoptere commented 10 years ago

You were right. I did the tests on my server : 0.7 seconds average, 1 second at 95th percentile, 7 seconds for the worse case, during the 30 last minutes of a 3:30 hour session at 30 players. The result is not as good as yours, but still fine enough to do what you plan to do.

vbawol commented 10 years ago

@Skaronator Lets do this for 1.0.5 unless you think you can get it done soon.

Skaronator commented 10 years ago

Make it sense to work on it because A3 Epoch will be released soon.

OtterNas3 commented 10 years ago

Please dont stop working on this, would much appreciate it!

OT: Will the developement stop completely for Arrma2 DayZ Epoch when your Arma3 mod comes out?

vbawol commented 10 years ago

@Skaronator If we do this for dayz epoch that is where it stays, A3 epoch is not using any code from dayz.

I am attempting to focus only on A3 development from now on but will still release builds for dayz epoch if we have something to release. Basically if the community wants dayz epoch updates they will need to start contributing.

OtterNas3 commented 10 years ago

Thanks for the info vbawol! If my programming skills gets a bit better i'm willing to help where i can

Skaronator commented 10 years ago

Pullrequest https://github.com/vbawol/DayZ-Epoch/pull/978

ispan55 commented 10 years ago

АРМА3 Epoch this month ?

vbawol commented 10 years ago

@ispan55 no not likely. We are not going to set any release dates until we have something we are ready to show off.

Skaronator commented 10 years ago

Alright mostly everything is done, now it need testing ;)

vbawol commented 10 years ago

testers report everything appears to be functioning as intended.