#Bit of an update to this; Running Stable
1 messages ยท Page 1 of 1 (latest)
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)
I'll run a test for this today, and see if I can get the diagNetworkInterval output for it.
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};
};
nicely done ๐
especially this looks bad
potentially also these for a burst event
@cinder lily
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.
Btw with things like this.
Player does something, and it causes lots of network spam.
The client, can also run -networkDiagInterval, which then gets such a client.txt file, which logs all that one specific player is sending out to server
If I understand this right.
Creating local-only chemlights, is somehow causing network spam sent to server?
Specifically when they hit the ground.
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
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?
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
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 ๐ค
#1310192027534753802 message
This works to replicate it
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 ๐คฃ
That would be... very interesting to say the least
mh.. seagull eagle screaches are being played.
But no impact of the chemlights
Could try "SmokeShellVehicle" which is what the countermeasures of ifrits use
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.
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
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
What.... That is very bizare... I'll have to test again then...
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?
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
I am not aware of any changes on prof that would change the behavior here.
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
Specifically this line
2024/12/09, 6:48:16 Type_91 | 4312 | 1168.88 | 481052 | 130401.72 | 111.6
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
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
noope. Still nothing
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
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