Jump to content

possibly a bug: wrong structural integrity calculation on incremental chunk loading


White-Gandalf

Recommended Posts

Hi folks, i am again in the phase of a late game with building of bigger and somewhat experimental structures. As with every second game in 7DTD, buildings in this phase tend to become mysteriously unstable. While looking at the mess in this particular case, i realized a specific pattern of the broken structure that i have often seen at prefabs when those partially collapse after making an overhang react to structural integrity.

 

The case

 

The structure at hand has a span of slightly bigger than a (single one) chunk (19 blocks squared).

By pure chance, it has been built over the borders of three chunks so that it's load bearing walls lay in the outer chunks, while its hanging content lays in the inner chunk.

The redundancy of the structure is slightly below 200%, thus both walls are at least partially needed to hold the hanging content.

 

While building the structure, there was no problem at all: Everything was holding in place, with so much redundancy that i could temporarily attach and remove frame blocks in abundance.

 

After quitting the game, then doing stuff elsewhere, then returning two days later, i found the hanging content crumbled except a triangular part.

 

The hypothesis

 

Turning the visible pattern over in my mind and calculator, i came to a hypothesis as follows:

When approaching the structure from a state of unloaded from simulation, the game engine loads chunks of blocks. When loading the chunk with the hanging content of the structure, only the northern and western walls are loaded, but the chunks with the eastern and southern walls are still unloaded.

After having loaded the middle chunk, the game engine immediately starts the simulation of structural integrity for this chunk - instead of waiting for at least all the neighboring chunks to have been loaded into the simulation.

 

This leads to the simulation engine seeing a chunk of hanging blocks supported only from two sides and being slightly overloaded in relation to the load bearing capacity of said sides (since with all four walls being slightly below 200%, it is now slightly below 100%). This results in the partial collapse of the hanging blocks into a triangular shape.

 

================

 

A possible solution

 

If simulation of structural integrity is started only for chunks whose neighboring chunks are all loaded into the simulation, the problem would become irrelevant.

That's because the rules of the game state that the maximum supported length of an overhang is the length of a chunk  - 16 blocks. With this rule in place and honored, it is not possible to construct a structure with more than a length of 32 blocks (two chunks length) hanging between walls. With no more than two chunks length hanging AND having the neighboring chunks loaded, it would become extremely unlikely to have a load bearing wall missing.

 

You could even render this completely impossible, if you only define the maximum supported length of an overhang to be exactly one chunk minus one block (=15).

 

But without delaying the structural integrity simulation until neighbor chunks loading, you will forever have cases like the one described here frustrating the customers.

 

another possible solution (possibly more simple)

 

If you would let the not loaded chunks be calculated as infinitely load bearing, the problem would not arise as well.

 

a possible workaround

 

Gamers can avoid having that issue by building bigger structures with incremental chunk loading in mind: If i had build the structure crossing the chunks exactly in its center, the thing would not have collapsed. Since in that case, the chunks would not have overhanging parts that exceeded the load bearing of the respective parts of the chunked walls.

 

The better way, of course, would be to have the calculation fixed in the game engine.

 

===================

 

Description of the attached picture

 

The perspective distortion of the image makes it look like it could be a non-quadratic structure. It is quadratic, 19 x 19.

Looking NNW. I entered the area from NE. The fighting platform at ground level is collapsed except a triangular part in the NE corner.

The fighting platform had a steel frame, concrete filling and walls all hanging between the steel plated outer walls at the west and east side.

The chunk borders run immediately beside the west and east outer walls, to the inner side of them.

S8 E089 Böse Überraschung.jpg

Edited by White-Gandalf
typo correction (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...