Jump to content
Sign in to follow this  
jgbtl292

the houses and ruins are the mp problem ...

Recommended Posts

Wow. This is very disappointing. That it is allegedly fixed in A2:OA but not in A3 gives me hope it can be fixed reasonably soon, hopefully. Wonder what else is lurking under the hood contributing to the mass performance problems.

Share this post


Link to post
Share on other sites

The thing that I don't understand is why it was being done this way in the first place. Surely BIS knew what was happening to the unwrecked house models, right?

Share this post


Link to post
Share on other sites

It´s obvious this isn´t arma 3. It´s Arma 2 with new graphics and some minor touch-ups. Maybe in 2-3 years it will actually be good.

Share this post


Link to post
Share on other sites
I just did a test on a building (cargo HQ on the hill east of Stratis Airbase);

Tested the object name, damage and position (ATL):

"Building 311e4100# 67666: cargo_hq_v1_f.p3d"
"Damage 0"
"Position [2443.25,5694.54,-0.0335236]"

Then blow it up with a tank round and we get the following:

"Building 311e4100# 67666: cargo_hq_v1_f.p3d"
"Damage 1"
"Position [2443.25,5694.54,-41.7518]"

Sunk about 40m underground.

I'm finding the same. What actually happens is that the building is sunk to about 10m ASL. Also, there's usually a #destructioneffects nearby. So you're not doubling the number of objects when you destroy a building, but tripling it.

I've tried to delete all of these objects using deletevehicle. The buildings wouldn't delete, I expected that, but the #destructioneffect (which I hoped would delete itself in time, it IS an effect after all, but it didn't) I could delete using deletevehicle.

So, now where? :)

Edited by Tankbuster

Share this post


Link to post
Share on other sites
Also, there's usually a #destructioneffects nearby. So Your not doubling the number of objects when you destroy a building, but tripling it.

Woah, nice find, that's nasty.

I've tried to delete all of these objects using deletevehicle. The buildings wouldn't delete, I expected that, but the #destructioneffect (which I hoped would delete itself in time, it IS an effect after all, but it didn't) I could delete using deletevehicle.

General rule of thumb seems to be, if it's created at any point during the mission, it can also be deleted during the mission. That apparently counts for ruins and #destructioneffect too and they are created by engine if I'm understanding it correctly.

So, now where? :)

Wishful thinking on my side is that BI will take a look and improve this, as mission authors can't do much besides take it into account and provide limited, mission specific garbage cleanup. While this isn't the core of all performance issues, the way this stuff works now is really wasteful, negatives are starting to outweigh the positives of the current solution. Seems like slightly low hanging "moar framez" fruit considering it probably wasn't looked at for a while and a better solution could probably be found.

Share this post


Link to post
Share on other sites

Out of curiosity, who here has had bad performance on the new dedicated server test servers?

Share this post


Link to post
Share on other sites

I was looking through the game dta>bin>config and I found this.

class CfgDestructPos

{

class DelayedDestruction

{

timeBeforeHiding = "0.2";

hideDuration = "0.65+lifeTime*0.05";

};

};

class CfgDamageAround

{

class DamageAroundHouse

{

radiusRatio = "1.0";

indirectHit = "11";

};

};

these are there own class not a subclass of anything. I believe these are the parameters for building destruction. this is around line 2800. i think this is what the issue is.

Share this post


Link to post
Share on other sites
Woah, nice find, that's nasty.

General rule of thumb seems to be, if it's created at any point during the mission, it can also be deleted during the mission. That apparently counts for ruins and #destructioneffect too and they are created by engine if I'm understanding it correctly.

We've tried a number of things. Although we still have some more to do, we've successfully managed to delete the #destructioneffect and the ruin and bring the building back up to the surface. To the casual observer then, a wrecked town appears pristine again. Perfect, if ain't, but a useable workaround, it is. What we haven't yet done is destroy a large number of buildings and observe the frame rate as the destruction takes place, then as the #destructioneffects are removed, the ruins are removed and the buildings bought back to z=0. I'd like to think the FPS would suffer and recover during this process.

We've got a few more ideas and we'll be updating here as we have stuff to show.

Share this post


Link to post
Share on other sites

If we can't delete the original building, can we move the sunken copy away out of scope. i.e. can we send it somewhere far enough away that the engine will ignore it.

Hmm... I'm inclined to think that there is some 'feature' of the engine that we're not privvy to at play here. I don't see BI just sitting on this if there was any other possible way of doing things.

Share this post


Link to post
Share on other sites

Now since we have A2:OA islands ported it would be interesting to know if same performance issue shows up on Chernarus or Takistan running similar mission and same number of players.

/KC

Edited by KeyCat

Share this post


Link to post
Share on other sites
If we can't delete the original building, can we move the sunken copy away out of scope. i.e. can we send it somewhere far enough away that the engine will ignore it.

Hmm... I'm inclined to think that there is some 'feature' of the engine that we're not privvy to at play here. I don't see BI just sitting on this if there was any other possible way of doing things.

I think that moving it so far the engine ignores it was exactly what BI were thinking when they decided to bury it. I note that the building is typically moved 10m above sea level. I ran my tests in Oreokastro and found the buildings were 280m below ground. In Stavros, the building was 20m below ground. In both cases, this is ~ 20m ABOVE sea level.

We know that we can't delete map objects. This is why the bury-the-building approach is being used. I'm wondering if we decided we want to leave the building buried, is there anything we can do to mitigate the issues its causing? Deleting the #destructioneffects will probably help. What can we do on the buried building? disablesimulation? hideobject?

Share this post


Link to post
Share on other sites

this problem I think goes deeper then we realize.

when new objects are created they are given a number as a name like 164332 or something like that.

so with this little event handler

Fnc_hint = 
{
_unit = (_this select 0) select 6;
hint format ["%1", _unit];
};

_EHFired = player addEventHandler ["Fired", {[_this] spawn Fnc_hint;}];	

you can view the bullet created and the id it has.

now as you can see the id doesn't go up by 1 every time you shoot. as a matter of fact it seems to go up as time goes on, which leads me to believe that there are objects being created in places that we don't know about.

will test further by leaving a game running and seeing how many objects get created. please test this yourself.

Share this post


Link to post
Share on other sites
now as you can see the id doesn't go up by 1 every time you shoot. as a matter of fact it seems to go up as time goes on, which leads me to believe that there are objects being created in places that we don't know about.

will test further by leaving a game running and seeing how many objects get created. please test this yourself.

I am not sure this is so much of a problem, the game will create lots of things like mosquitos, flies, particleSources and so on which all get an ID and run in the background so you don't notice.

You can test with a nearestObjects check for unclassed objects.

As long as they all get deleted after use it shouldn't be a problem.

Now since we have A2:OA islands ported it would be interesting to know if same performance issue shows up on Chernarus or Takistan running similar mission and same number of players.

I haven't tested but I suspect it is not as much of a problem with the old Arma 2 buildings. Typically, they were not enterable (less polys) and also do not have as many player interactions (doors/hatches/breakable windows).

Share this post


Link to post
Share on other sites

I haven't tested but I suspect it is not as much of a problem with the old Arma 2 buildings. Typically, they were not enterable (less polys) and also do not have as many player interactions (doors/hatches/breakable windows).

So it works the same way but not causing such problems just because the models are much simplier?

Share this post


Link to post
Share on other sites

It shouldn't cause the same problems because the entities are removed when the game is done with them, or at least they should be.

Share this post


Link to post
Share on other sites
We've tried a number of things. Although we still have some more to do, we've successfully managed to delete the #destructioneffect and the ruin and bring the building back up to the surface. To the casual observer then, a wrecked town appears pristine again. Perfect, if ain't, but a useable workaround, it is. What we haven't yet done is destroy a large number of buildings and observe the frame rate as the destruction takes place, then as the #destructioneffects are removed, the ruins are removed and the buildings bought back to z=0. I'd like to think the FPS would suffer and recover during this process.

When you do "_building setDamage 0" on the building, it should brought back to the surface and the ruin should be deleted automatically, there's no need to do it manually. #destructioneffect might get deleted as well, I have not checked that when I tried it out originally.

I am not sure this is so much of a problem, the game will create lots of things like mosquitos, flies, particleSources and so on which all get an ID and run in the background so you don't notice.

You can test with a nearestObjects check for unclassed objects.

As long as they all get deleted after use it shouldn't be a problem.

Spot on. Things that don't get deleted are an issue, things that do are usually not. Even footprints get their own ID's.

Share this post


Link to post
Share on other sites
So it works the same way but not causing such problems just because the models are much simplier?

I think that's pretty much it. I haven't got AiA installed, but I'd wager there would be a drop in FPS in Cherno/Takistan, but much less pronounced than on stock Arma 3 maps.

@Sniperwolf - I didn't know that about footprints - good to know for future reference :)

Share this post


Link to post
Share on other sites
When you do "_building setDamage 0" on the building, it should brought back to the surface and the ruin should be deleted automatically, there's no need to do it manually. #destructioneffect might get deleted as well, I have not checked that when I tried it out originally.

.

That's exactly the behaviour we observed. As to the automatic deletion of the destruction effect, I'll test and report back.

Share this post


Link to post
Share on other sites

Some clarification on BIS' side would be quite great now, whereas, is it intended that the house-models stay underground ? if not, is there (again...) a major issue with the engine (as with rivers, underground structures (oh the irony)etc...) which prevents from just deleting these in case of demolition ?

I consider this issue to be top priority, as it most certainly is the cause to the "performance killer" when playing.

Share this post


Link to post
Share on other sites

I did test a while ago when I saw something in the changelog but didn't find much diference - are you still doing the same test you did at Kavala earlier in this thread?

Share this post


Link to post
Share on other sites
I did test a while ago when I saw something in the changelog but didn't find much diference - are you still doing the same test you did at Kavala earlier in this thread?

Haven't tried yet myself as I'm at work currently. Just going by what Iceman said in the ticket. I don't think that the 124424 build, that contains this improvement, is available yet due to lack of a changelog post. Latest one there is 124406.

Share this post


Link to post
Share on other sites

Thanks for checking - I'll give it a check again when I'm home just in case.

Looking forward to this one being fixed.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×