The mere existence of certain blocks interferes with physics.

#1
Demo video for physics.bsg: http://webm.host/ee0c7/

When the wheel is present, the wood and the braces consistently break. With no wheel, they consistently bounce. Wheel again, brittle again. Add a large wooden block, wood and braces still break. With just a large wooden block, wood and braces don't break, but the ballasts now skid sideways. The direction gets influenced if you delete a brace on one side and then undo. Delete the large wooden block and the ballasts bounce straight up again.

rightleft.bsg: Load it in a freshly started game and the ballasts will skid to the right. After that, they skid to the left in all subsequent simulations until you select a different level. Again, delete the large wooden block and the ballasts bounce straight up as they should.

Vanilla game, no mods. It doesn't even matter if the 'bad' blocks aren't physically attached to anything. - These are the blocks that seem to be affected (rather, are affecting): the large wooden block, wooden pole, hinge, all blocks from the locomotion category except the small wheel, slider, spinning block, [+ circular saw], drill.

Attached Files
physics.bsg
rightleft.bsg
 

ITR

l̺̤͈̘̰̺͉̳͉̖̝̱̻̠̦͈ͅ֍̫̜̥̭͖̱̟̟͉͙̜̰ͅl̺̤͈̘̰̺͉̳͉̖̝̱̻̠̦͈ͅ
Staff member
#2
What is your average fps when using that?
 

ITR

l̺̤͈̘̰̺͉̳͉̖̝̱̻̠̦͈ͅ֍̫̜̥̭͖̱̟̟͉͙̜̰ͅl̺̤͈̘̰̺͉̳͉̖̝̱̻̠̦͈ͅ
Staff member
#3
Does it also happen if you start the simulation at 0%, then turn up the speed?
 

ITR

l̺̤͈̘̰̺͉̳͉̖̝̱̻̠̦͈ͅ֍̫̜̥̭͖̱̟̟͉͙̜̰ͅl̺̤͈̘̰̺͉̳͉̖̝̱̻̠̦͈ͅ
Staff member
#4
Did some testing, but it's seeming like it has something to do with PhysX that we can't control

Also, it's probably rather that not having the blocks there interferes with the physics, rather than the opposite (meaning they probably were supposed to break, but the bug made them not break :p)
 
#6
ITR said:
Also, it's probably rather that not having the blocks there interferes with the physics, rather than the opposite (meaning they probably were supposed to break, but the bug made them not break :p)
Heh. Like braced structures in v0.11 were supposed to shear apart with enormous sudden displacements upon friction with the ground? Like ballasts were supposed to randomly pop off when their parent block was under load? Like wheels in v0.2 are supposed to be wobbly? Like pieces sticking out from a central point are supposed to start oscillating until they fling into outer space? Like I'm overly sarcastic because I have this cool rubber tire and now I can't use it? :)

Another finding: I can run my tire with 45 fps at 50% speed. The presence of an unpowered wheel brings it down to 30 fps. With a motor wheel, I have to lower the simulation speed to 25% to get 45 fps. Now the interesting part. The machine is only slow and brittle while the motor wheel is in free fall or otherwise physically 'active'. When it comes to rest on the ground, everything is fine again.

What's strange is that the swivel joint is not affected, but the unpowered wheel is, even though technically they have exactly the same function. Are you sure there's nothing you can trace on your side of the implementation?

As a workaround you could keep an off-screen wheel in free fall to hold the physics down to the level of the lowest common denominator where it's supposed to be... Nah. Granted, Unity5 introduced a lot of elasticity. Probably too much. But this random sudden brittleness is just weird.
 

ITR

l̺̤͈̘̰̺͉̳͉̖̝̱̻̠̦͈ͅ֍̫̜̥̭͖̱̟̟͉͙̜̰ͅl̺̤͈̘̰̺͉̳͉̖̝̱̻̠̦͈ͅ
Staff member
#8
Those other ones are bugs, I think, but this one might be that the physics somehow aren't waking up correctly if a wheel isn't present, and they are usually meant to wake up correctly, so the more brittle version might be the more correct version :p

We could make it more consistent by trying to figure out whatever causes them to become brittle, then make sure one of those are always in the scene, but that would make it consistently the brittle kind, and is a very hacky work-around
 
#9
Wasn't a serious suggestion anyway, but know that I know that you know that there's never a single thing in a game like this that is not very hacky. ;)
 
#11
This pretty much kills the 'correct physics not waking up' theory. Unless the missing manifestation of one glitch suppresses the non-absence of another glitch.

It kinda looks like the judder you get in structures under load when you jiggle the simulation speed slider. (What happens when you do that with your machine?) Maybe the presence of 'wheel physics' creates similar, even greater disturbances in the correct slicing of time. It certainly brings down the average performance.
 

ITR

l̺̤͈̘̰̺͉̳͉̖̝̱̻̠̦͈ͅ֍̫̜̥̭͖̱̟̟͉͙̜̰ͅl̺̤͈̘̰̺͉̳͉̖̝̱̻̠̦͈ͅ
Staff member
#12
Well, no, if anything it supports the physics not waking up theory.
The shaking could be the symmetrical shaking bug happening, which is a bug that happens when physics works the way PhysX wants it
 
#14
I have edited my main post and added my test platform in attachment.
@ ekbruligas - vibrations shows regardless of using or not the time slider. If you are patient enough, you can see them happen on 1% timescale.
@ ITR - well, it is simmetrical in two axes, so might be the case.

I have tried other parts and my results are.
Blocks starting the vibrations on their own - motor wheel, large wheel, powered medium cog, steering hinge, steering block, spinning block, circular saw, drill
Blocks starting the vibrations if disturbed - hinge, unpowered medium cog, unpowered large cog, unpowered wheel

So, if I understand correctly, we might have such situation - Psyhics "wake up" only when certain blocks are present, and when PhysX fires up correctly, I see symmetrical shaking bug as an effect?
 
#15
I have edited my main post and added my test platform in attachment.
@ ekbruligas - vibrations shows regardless of using or not the time slider. If you are patient enough, you can see them happen on 1% timescale.
@ ITR - well, it is simmetrical in two axes, so might be the case.

I have tried other parts and my results are.
Blocks starting the vibrations on their own - motor wheel, large wheel, powered medium cog, steering hinge, steering block, spinning block, circular saw, drill
Blocks starting the vibrations if disturbed - hinge, unpowered medium cog, unpowered large cog, unpowered wheel

So, if I understand correctly, we might have such situation - Psyhics "wake up" only when certain blocks are present, and when PhysX fires up correctly, I see symmetrical shaking bug as an effect?
 

ITR

l̺̤͈̘̰̺͉̳͉̖̝̱̻̠̦͈ͅ֍̫̜̥̭͖̱̟̟͉͙̜̰ͅl̺̤͈̘̰̺͉̳͉̖̝̱̻̠̦͈ͅ
Staff member
#16
That's a hypothesis at least. Hard to test it
 
Top