Jump to content
Sign in to follow this  
jgbtl292

the houses and ruins are the mp problem ...

Recommended Posts

the houses and ruins are the mp problem ( one big of them ). make a little mission in editor as mp mission 4 x 4 groups one left and one right you a civil in the middle from the town.

server fps 50 - your 50 fight a little and blow up 4-5 houses

and now :D server fps 50 your 8-10 !!!!

kill all ai and wait ....

server fps 50 yours 10-11 !! :confused: they will never come up to 50 ^^ no playing more no ai and no more then 10- 12 fps ;)

the other problem in big maps aka warfare is - the problem has a1 a2 and A3 the houses are not deleted when they destroyed ... all houses and ruins from houses are parket under the map. after 2-3 hours and a hard battle you have second towns under the earth .... So you get more and more houses under the map ( objects ) and will not be deleted !!!!!!!!!!!!!

and then the dudes delete dead bodys and wrecks after seconds for performance sweeeett ............... :j:

Share this post


Link to post
Share on other sites

I´ll just ask this: Why?

Why are houses not deleted but parked under the earth?

Share this post


Link to post
Share on other sites

thats the question ^^ have see this sometimes in dead body clitch - all destroyed houses parket under the earth ..... ( only houses and ruin models )

Share this post


Link to post
Share on other sites
the problem has a1 a2 and A3 the houses are not deleted when they destroyed ... all houses and ruins from houses are parket under the map. after 2-3 hours and a hard battle you have second towns under the earth

How do you know this is the case?

Share this post


Link to post
Share on other sites
thats the question ^^ have see this sometimes in dead body clitch - all destroyed houses parket under the earth ..... ( only houses and ruin models )

This is my current pet theory for the MP problems. I'm glad it's not just me who has arrived at this conclusion.

Share this post


Link to post
Share on other sites

The dev branch has the profiler in it, so switch to it and destroy a load of buildings and record the FPS and profile before and after. That well tell you if it is a problem (some numbers would be good) and tell the developers why its going wrong (via the profile).

Share this post


Link to post
Share on other sites
How do you know this is the case?

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.

Share this post


Link to post
Share on other sites

Theres another way too prove this, get the merkeva set pos to 10000 M and another explosive on the ground to destroy and building near where it falls, keep playing mission till tank lands upside down and you can see under the ground and you should be near the destroyed building.

Share this post


Link to post
Share on other sites
How do you know this is the case?

zQF8xFms.jpg UHRWzxPs.jpg 9hTysims.jpg

Is this any different from Arma 2?

I don't think so.

Are the sunken buildings used for something or why are they not deleted after they've been moved underground?

They are probably left there so that any scripts referencing them can still find them. The ruins that get created in their place get new references. Maybe some other engine reason as well.

Setting the damage on the original building to 0 will put it back in it's original place and remove the ruin and it's reference.

Edited by Sniperwolf572

Share this post


Link to post
Share on other sites

are those building considered by the Ai for possible cover/line of sight/etc?

while we are at it, can you guys confirm (or deny) that the water is still rendered under the island? I remember i heard some discussion about this in the alpha stage.

Edited by nicolasroger

Share this post


Link to post
Share on other sites
They are probably left there so that any scripts referencing them can still find them. The ruins that get created in their place get new references. Maybe some other engine reason as well.

Setting the damage on the original building to 0 will put it back in it's original place and remove the ruin and it's reference.

Roger that, makes sense.

Share this post


Link to post
Share on other sites
and then the dudes delete dead bodys and wrecks after seconds for performance sweeeett ...............

well i always assumed that hidebody was just hiding so what i do is:

_unit spawn {hidebody _this; sleep 5; deleteVehicle _this};

i thought that was common knowledge.

Share this post


Link to post
Share on other sites
Roger that, makes sense.

Well yes and no. While this might not be the root of all evil, it appears very inefficient. A destroyed town will always have twice the objects in the scene, so let's say, Agia Marina has 50 houses, when they become ruins, there will be 100 objects present.

For example, if we take that X is the current "healthy model" entity and that Y is the ruin model entity, when X is destroyed:

  • New object entity Y is created, with the ruin model and placed on the position of object X
  • Object X is sunk into the terrain
  • Objects X and Y persist for the entirety of the mission (Unless X is made healthy again, at which point Y is removed and X is put back where it used to be)

To me it seems much more efficient to do:

  • Entity X is altered to be the ruin model
  • New entity Y is created with the "healthy model" and then sunk into the ground
  • When Y stops sinking, delete the Y entity as it was only used for visual effect and it's no longer needed
  • Only X persists for the entirety of the mission (In case it's made healthy again, just swap the model again)

The potential issues with the current approach:

  • Memory/processing power needed to keep 2 entities for each destroyed object might get significant as the "object kill count" rises
  • Retrieving object position is not always correct (as shown by DasAttorney)
  • Terrain might not block the rendering of the "sunk" objects
  • With more objects present, serialized save files are probably much larger than necessary

Share this post


Link to post
Share on other sites

Someone could possibly test this by hosting a domination mission were all structures are invincible and compare the performance results.

Or just simply destroying all structures on the island and comparing it to when all structures are at full health.

Edited by ProGamer

Share this post


Link to post
Share on other sites
Well that truly sucks, is there a ticket for this?

Nope, haven't found any.

Someone could possibly test this by hosting a domination mission were all structures are invincible and compare the performance results.

Or just simply destroying all structures on the island and comparing it to when all structures are at full health.

It's a fairly straightforward test. Leveling Kavala and waiting for the dust and FPS to settle is ~22 FPS loss compared to the intact Kavala.

Before and after. Click the image itself, not the little yellow stripe for a larger image.

5VPDJIpl.jpg 4IXo38Nl.jpg

Share this post


Link to post
Share on other sites
Or just simply destroying all structures on the island and comparing it to when all structures are at full health.

If you open Stratis in the editor, put a player down and put this code in the debug console you can see the difference yourself:

{_x setDamage 1} forEach ((nearestObjects [player, [], 7000]) - [player])

Just don't stand too close to anything when you fire it. And also, it will probably freeze your Arma for some seconds while it calculates everything.

For me, it eats up about 10 fps to render everything after the dust settles.

You can then delete all the ruins with this:

{deleteVehicle _x} forEach ((nearestObjects [player, [], 7000]) - [player])

Or repair the houses with this:

{_x setDamage 0} forEach ((nearestObjects [player, [], 7000]) - [player]) 

And you should see your FPS rise again.

So I would say having lots of ruins lowers FPS (At least on my machine).

EDIT: SniperWolf572 I agree with your results.

Edited by Das Attorney

Share this post


Link to post
Share on other sites

To me it seems much more efficient to do:

[*] When Y stops sinking, delete the Y entity as it was only used for visual effect and it's no longer needed

couldn't we just get rid of that uncredibly ugly "house sinks in the ground" effect alltogether?

i mean, it just looks bad, couldn't we just get i bit bigger and denser smokeeffect (must not even be more particles for the smoke, perhaps just bigger ones in the center and smaller ones on the outside to cover the bigger ones, and, if we feel totally crazy some 3D-object patricles (i think the swarms of flys in arma 2 are made like that) like some bricks and stuff, perhaps only visible on patricle quality high or above or so.

and perhaps the destruction effect should just be an animation state, like that, the entity should still be mentionable in scripts.

i know, that this is much to ask, but i think even if it gets realized in half a year or so would be good enough.

just my thoughts.

also, i am not a "professional" in that, so, perhaps i just talk garbage... if so, i am sorry.

Share this post


Link to post
Share on other sites

This seems like such an obviously inefficient method that I'm surprised that BIS hasn't come up with a better one by now.

It also doesn't seem like this would be the thing that is specific to multiplayer scenarios.

Edited by roshnak

Share this post


Link to post
Share on other sites

Atorney: when you do this:

{deleteVehicle _x} forEach ((nearestObjects [player, [], 7000]) - [player])

does it also delete the underground strctures?

Share this post


Link to post
Share on other sites

There has to be a reason why the buildings aren't being deleted... maybe because of the same issue with like deleting trees etc where they will remain deleted in the next mission if you don't switch to a new island(and therefore reload the current one)

Share this post


Link to post
Share on other sites
Atorney: when you do this:

{deleteVehicle _x} forEach ((nearestObjects [player, [], 7000]) - [player])

does it also delete the underground strctures?

AFAIK it only ever deletes ruins models, not the original (sunken) model.

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  

×