#Bit of an update to this; Running Stable

1 messages ยท Page 1 of 1 (latest)

vale pilot
#

it could be the CM smoke generated for each client - the more clients, the worse it gets
if not the entity, maybe network messages at least

did you try with more players firing CM "at the same time"? (close by or not)

uncut ravine
#

I'll run a test for this today, and see if I can get the diagNetworkInterval output for it.

uncut ravine
#

So I was unable to get more than 2 people to help me test this in a controlled environment, however I'm 99% sure that its caused by createVehicleLocal vehicles still sending audio and potentially physx calculations across the network.

Tests done on Dedicated server with v12 profiling on all clients and server, with #monitorDS 0.1 running

I duplicated the vehicle countermeasure smoke script and ran it locally only on my client.

Normal without running script, no matter the amount of people:
inbound = ~0Kb/s
outbound = ~78Kb/s

With 1 person (only person executing script)
inbound jumps to ~2000Kb/s
outbound does not jump

With 2 people
inbound jumps to ~2000Kb/s
outbound jumps to ~4000Kb/s

With 3 people
inbound jumps to ~2,000Kb/s
outbound jumps to ~6,000Kb/s

In theory, this means that my client is sending something across network when the chemlights/smokes impact the ground even though they are local.
This is normally only noticeable with counter measures and a significant population due to countermeasures spawning local smokes on every client independently. So if my math is correct inbound = (projectile * playercount) and outbound = (inbound * playerCount).

Should also mention the audio of each collision of chemlights/smokes is heard for other clients even if was only created locally on one client.

#

Used script and attached networkDiagInterval before, during, and after issue.

[]spawn{
    _test = [];
    for "_r" from 0 to 50 do {
        _count = 8; 
        private _angle = 120; 
        
        _vehicle = player; 
        
        private _velocity = 14; 
        private _position = visiblePositionASL _vehicle; 
        private _direction = direction _vehicle; 
        
        private _deltaDir = _angle / _count; 
        private _arc = _deltaDir * (_count - 1); 
        
        private _initDist = (boundingBox _vehicle select 1 select 2) - (boundingBox _vehicle select 0 select 2); 
        
        private _Vdir = 30; 
        private _vH = _velocity * cos _Vdir; 
        private _vV = _velocity * sin _Vdir; 
        private _pH = _initDist * cos _Vdir; 
        private _pV = _initDist * sin _Vdir; 
        
        private _shells = []; 
        for "_i" from 0 to (_count - 1) do { 
            private _Hdir = _i * _deltaDir + _direction - _arc/2; 
            private _Gvel = [_vH * sin _Hdir, _vH * cos _Hdir, _vV]; 
            
            private _shell = "Chemlight_blue" createVehicleLocal [0,0,0]; 
            _shell setPosASL (_position vectorAdd [_pH * sin _Hdir, _pH * cos _Hdir, _pV]); 
            _shell setVectorUp vectorNormalized _Gvel; 
            _shell setVelocity _Gvel; 
            _shells pushBack _shell; 
            _test pushBack _shell;
        };
        uiSleep 0.01;
    };
    uiSleep 10;
    _test apply {deleteVehicle _x};
};
vale pilot
#

nicely done ๐Ÿ‘

#

especially this looks bad

#

potentially also these for a burst event

#

@cinder lily

uncut ravine
#

Just a small update to this:
Went and implemented a work-around for this issue (vehicle smokes specifically) with ProjectileCreated events on server and and client. Will delete any local entity, spawn entity once per canister on server, and have clients find and attach smoke particles to those server-created entities.

Network lag on our server that would constantly be lagging, desyncing, and just difficult to play became smooth as butter with no visible difference with smokes, and no other code/network changes other than the work-around.

cinder lily
cinder lily
uncut ravine
#

If you delete them before they hit the ground, no issue

#

Because vehicle countermeasures are created locally on each client, this gets multiplied per person on the server.

#

Only tested with chemlights and smokes

#

But I assume that it would happen for any locally-created projectiles

cinder lily
#

If it were the chemlights, then you should be able to reproduce it also without projectiles

#

oh

#

oh man

#

Its sounds

#

Probably the sound it makes when it hits the ground?

uncut ravine
#

That was my assumption

#

You can hear the sounds be multiplied

#

If theres one player on server -> only one sound heard. Multiple people -> You'll hear a lot more

cinder lily
#

local-only objects shouldn't be sending out any sounds.
Guess I'll be searching for what sends sounds

#

mh just spawning a chemlight above me, and letting it drop to the ground, is not sending a sound

#

Maybe has a minimum velocity before it sounds ๐Ÿค”

uncut ravine
cinder lily
#

Oh I didn't read all of it

#

looots of chemlights, no sound messages

#

oh no, please no...

#

My game client, is running with -noSound.. maybe that also prevents sounds being sent over network

#

Wow.. indeed

#

Start game with -noSound, and you're not sending sounds. I wonder if footsteps are affected by that too ๐Ÿคฃ

uncut ravine
#

That would be... very interesting to say the least

cinder lily
#

mh.. seagull eagle screaches are being played.

But no impact of the chemlights

uncut ravine
#

Could try "SmokeShellVehicle" which is what the countermeasures of ifrits use

cinder lily
#

I'm running a local dedicated server, with diagInterval 5 seconds. With CBA and ACE.

Join with a client, run your script in debug console.
Server has no unusual incoming messages. (in diagIntervalServer log)

SmokeShellVehicle nothing on server either.

uncut ravine
#

Have you tried with 2 different clients, one running the script and one not?

#

I didn't experience the issue with only server + client. It had to be 2 clients

#

I DID have a dedicated server, with 2 separate clients testing, I'll test again on latest profiling when able

cinder lily
#

I'll try, hope I have enough ram

#

Nah nothing.
The only sound that is played is a eagle sound effect for some zeus camera seagull thing

And also nothing in diag interval

uncut ravine
#

What.... That is very bizare... I'll have to test again then...

cinder lily
# vale pilot

Its weird that these are so many, I would only expect one per second or less. But thats irrelevant to the problem

#

Could it be some other script, that is causing the sound plays on impact?

uncut ravine
#

Was run on a default VR mission when testing

#

No other scripts running

#

It also affects KoTH and other servers that use countermeasures, but I haven't checked with v15. Last I tried with was v12

#

I made a workaround on our server so havent seen the issue since

cinder lily
#

I am not aware of any changes on prof that would change the behavior here.

uncut ravine
#

Can confirm it still happens. Uploading video just for reference.
Mission used is just a generic mission file that I have that has basically nothing on it.
Forgot to run with client debug, but I'll run it again with it

#

One client (using the script above to create/throw createVehicleLocal the chemlights) has audio disabled, other has audio enabled.
When the chemlights are landing, you can hear the sounds on the other client even though they don't exist

#

If you need any more info or data, will do what I can

#

Server/Client latest profiling v15 152472 iirc

cinder lily
#

I retried again.
Local dedicated server. Join server with client.
Run script on client. The client does not send any sound network messages.

Maybe it only does it if multiple players are on the server ๐Ÿค” But the sound code shouldn't even know that and send it anyway

cinder lily
#

noope. Still nothing

cinder lily
#

I can repro with the profiling exe's as clients

#

but why I can I not repro with my own build :think

#

My dev branch build does not create the network messages :U

cinder lily
#

Okey I built a profiling branch exe by myself, that one also doesn't cause the issue.
But the released build on steam, built from the exact same code, is broken. I'm very confused

uncut ravine
#

Thats very strange. Ill test again on latest profiling, as the last version tested was the one from the google drive build 152472

#

Can confirm with profiling branch 152563 it does not happen