Jump to content
Sign in to follow this  
jgbtl292

the houses and ruins are the mp problem ...

Recommended Posts

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

If the ruins are deleteable, then it probably means they incur the same penalty as the editor placed objects. We've known for at least a decade now that littering the map with them is brings down performance more than the visitor placed ones.

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.

It appears that you come across destroyed villages rather sooner in MP settings than in a SP mission. E.g. people using artillery to level enemy presence in Domination or BECTI. If you think about it, it makes absolutely sense.

Edited by Fireball

Share this post


Link to post
Share on other sites

... very interesting find (lets hope vehicles and bodies are not handled this way too) ...

Share this post


Link to post
Share on other sites

I think vehicles and bodies are okay. As long as their groups are deleted once empty then it shouldn't be a problem

I will run a test though to make sure that all their waypoints are deleted and variables are nil once the unit is deleted (they should be but probably worth checking just to be sure).

Share this post


Link to post
Share on other sites

Hi, sounds like an important issue, i'd never heard about such thing on the OFP/ArmA/ArmA2/Dirty OA and hope that it be adressed soon. But... if they haven't fix yet the holo-sights aim point/aim cross that dissapears with a clear background... i wouldn't put much faith on it. Let's C ya

Share this post


Link to post
Share on other sites

Wow, that's bad design... Doing this for 1000m around Zaros gets it from 55fps to 30 fps...

How did we not find this before?

Share this post


Link to post
Share on other sites

I noticed that my GPU usage drops along with the FPS when you level a city, this make me think they're not being drawn but the calculations are still being done by the CPU and as we know that's already a bottle neck for many of us.

I tried using enablesimulation, deletecollection, and hideobject after they were destroyed but it made no difference.

One thing I have noticed is that deletecollection doesn't have the same issue as in A2/OA where the buildings were permanently removed unless a new map was loaded.

Deleted buildings are replaced every time the mission starts.

Share this post


Link to post
Share on other sites

Could the decrease in fps after levelling be due to the wreck models being higher detail/more taxing than the original house model?

Share this post


Link to post
Share on other sites

I just tested in A2/OA and there is little to no loss in FPS when you destroy a city.

Share this post


Link to post
Share on other sites
Could the decrease in fps after levelling be due to the wreck models being higher detail/more taxing than the original house model?

Well, the only way to compare would be to litter an area with around 200 healthy houses, measure, then do the same but with ruins not generated by destruction. It certainly is a factor, but I'm not sure it's causing the whole of 20 FPS loss on my machine.

I think we haven't noticed this problem before as the buildings used to be less complex, less densely populated and on islands with smaller surface area. Usually large cities are avoided as they are performance hogs even when you do not damage them.

Zagrabad was one of the larger cities, and I believe PMC wrecked it to an extent in it's campaign. The BI function to destroy cities, that is currently in ArmA (and might have been used to destroy Zagrabad in PMC and the villages in Eagle Wing) has a very small chance of actually flat out destroying the building, instead, the most common case is a building damaged to the point where it just changes the texture to the damaged one. On one hand this is due to a "realistic" portrayal of a damaged city (not a lot of buildings are actually destroyed fully) and on the other, it might be so that some performance level is still maintained even if the buildings look heavily damaged.

Share this post


Link to post
Share on other sites

Avoid towns ? City fighting is awesome so NO WAY .

Instead :

Isn't it possible to just make buildings NOT destructable ? I mean, do we really need that ugly "sink in ground" animation anyway ?

Can a server be set in such a way that buildings can NOT be destroyed ?

Share this post


Link to post
Share on other sites

Now while the destroyed buildings might also be the cause of much data needs to be transferred to clients.

Think of it, this are big problems on servers where players leave and others join all the time. Every time a new

player joins all this data of destroyed buildings needs to be transferred to this client, and with a new player

joining every 3mins this might be stressfull to the server.

Just a thought.

Share this post


Link to post
Share on other sites

So that would make it even more useful to be able set buildings to non-destructable: Less information about building damage needs to be synced to new players joining.

Share this post


Link to post
Share on other sites
Avoid towns ? City fighting is awesome so NO WAY .

Instead :

Isn't it possible to just make buildings NOT destructable ? I mean, do we really need that ugly "sink in ground" animation anyway ?

Can a server be set in such a way that buildings can NOT be destroyed ?

Yes, you can disallow damage to any object with the "allowDamage" command. An addon could always be made to prevent building damage, but that would break missions that require certain map buildings to be destroyed.

Dorph;2575244']Now while the destroyed buildings might also be the cause of much data needs to be transferred to clients.

Think of it' date=' this are big problems on servers where players leave and others join all the time. Every time a new

player joins all this data of destroyed buildings needs to be transferred to this client, and with a new player

joining every 3mins this might be stressfull to the server.

Just a thought.[/quote']

So that would make it even more useful to be able set buildings to non-destructable: Less information about building damage needs to be synced to new players joining.

If the method of doing building damage is changed, I believe that the data transfer/processing could be significantly reduced. Currently, when a building is destroyed, you are not transferring data/processing only one object, but two instead.

If the way it's done changed, so that the model is actually changed in the original instance of the object instead of spawning a new one, you are still transferring only the state of one object over the network, instead of two as it currently stands and this becomes a non-issue.

In the end, disallowing the damage on the buildings is a workaround. It doesn't focus on solving the problem but instead just sweeps the issue under the rug. We already have enough of that I think.

Share this post


Link to post
Share on other sites

we (or BI) should make some comparison tests. what i'm still confused about is: are ruins separate entities? me and a buddy are doing some work with destruction and it would be nice to know which mistakes of the devs we can avoid for our stuff. so far we made one prototype that works only with hide anims when it comes to walls. my plan was to try to give each wall a ruin to have more detailed holes in the walls. but if that would mean one more entity per wall and be less economic than hide anims then i'd have to totally rethink my plans.

i should make some tests on sat.render and count the entities on the map to see if the count increases when you destroy a single house. thromp was telling me something about CfgNonAI and that ruins would be that. might have misunderstood him.

this whole thing really seems worth investigating since houses are, let's say, pretty frequent on Altis :D

Share this post


Link to post
Share on other sites
we (or BI) should make some comparison tests. what i'm still confused about is: are ruins separate entities? me and a buddy are doing some work with destruction and it would be nice to know which mistakes of the devs we can avoid for our stuff. so far we made one prototype that works only with hide anims when it comes to walls. my plan was to try to give each wall a ruin to have more detailed holes in the walls. but if that would mean one more entity per wall and be less economic than hide anims then i'd have to totally rethink my plans.

i should make some tests on sat.render and count the entities on the map to see if the count increases when you destroy a single house. thromp was telling me something about CfgNonAI and that ruins would be that. might have misunderstood him.

this whole thing really seems worth investigating since houses are, let's say, pretty frequent on Altis :D

Performance wise it's better to not duplicate an object like what is currently happening. You can see even VBS3 has clued onto this and now have an actual destructible building instead of duplicating the entire structure.

Share this post


Link to post
Share on other sites
what i'm still confused about is: are ruins separate entities?

From what I can tell, yes. Simple way to observe this is to:

  • Load up Stratis
  • Enter in one of the watch fields "cursorTarget"
  • Point your cursor at a destructible building in Agia Marina, then Execute "bld = cursorTarget; cursorTarget setDamage 1;"
  • Enter in another one of the watch fields "bld"
  • When the descruction is done, point your cursor at the ruin and notice that the bld and cursorTarget are not the same entitiy
  • Execute "ruin = cursorTarget" while still pointing at the ruin
  • Enter in another one of the watch fields "ruin"
  • Execute "bld setDamage 0", unpause.
  • Observe that the "ruin" reference is lost
  • Execute "bld setDamage 1", point cursor at the ruin again when the dust settles
  • Pause and notice that ruin is not defined, bld is still the healthy building, and cursorTarget is yet another new entity

Share this post


Link to post
Share on other sites

Ho Lee fuk. With this System there would be no need to sink Buildings into the ground anymore :D

Share this post


Link to post
Share on other sites
Ho Lee fuk. With this System there would be no need to sink Buildings into the ground anymore :D

But, for some odd reason, BIS cares about AMD users. :(

Nvidia master race!

Share this post


Link to post
Share on other sites
But, for some odd reason, BIS cares about AMD users. :(

Nvidia master race!

It's physics based not Physx based. Though many games found a way to give AMD users access to the Nvidia Physx stuff like Apex and others.

Share this post


Link to post
Share on other sites
From what I can tell, yes. Simple way to observe this is to:

  • Load up Stratis
  • Enter in one of the watch fields "cursorTarget"
  • Point your cursor at a destructible building in Agia Marina, then Execute "bld = cursorTarget; cursorTarget setDamage 1;"
  • Enter in another one of the watch fields "bld"
  • When the descruction is done, point your cursor at the ruin and notice that the bld and cursorTarget are not the same entitiy
  • Execute "ruin = cursorTarget" while still pointing at the ruin
  • Enter in another one of the watch fields "ruin"
  • Execute "bld setDamage 0", unpause.
  • Observe that the "ruin" reference is lost
  • Execute "bld setDamage 1", point cursor at the ruin again when the dust settles
  • Pause and notice that ruin is not defined, bld is still the healthy building, and cursorTarget is yet another new entity

damn! reading this i actually realized why they do this though. i think at least. wasn't there some weird behaviour of map obejcts like when you delete them that you have to restart the game to make them reappear or something? i could swear i read that somewhere.

so if they would totally delete the original house they would have to dynamically create stuff a lot. like when a mission restarts it resets all houses (at leasst it should). that at least would be a reasonable purpose of being able to "heal" houses. can't really think of another one to be honest.

still. if they would change the system to a total swap and allow a "back swap" there should be an improvement.

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  

×