dvdvideo1234 / TrackAssemblyTool

A Garry's mod tool for assembing a prop-segmented track
GNU Affero General Public License v3.0
21 stars 2 forks source link

Watchout about x86-64 branch server physics. It is somewhat broken. #60

Open Grocel opened 1 month ago

Grocel commented 1 month ago

Server running the x86-64 branch have been proven to have broken physics. I think this quite important for you and your TA Tool to know about. The physics issue especially affect trains and tracks in all sorts of variants. Even the best adjusted slider track combos will derail after a short ride, even at slow speeds. For more details please see my report in the GMod repository:

Facepunch/garrysmod-issues#5968 - Unstable collision detection in physics on x86-64 branch

At first the issue had been reported to SligWolf and me there: SW Addons - Bug Reports | Problem with the trains on x64 Chromium Beta

Then we investigated it further more along with other experienced developers and confirmed the issue existing on all platforms (CPU/OS) of x86-64 branch servers (Dedicated server, single player or listen servers).

dvdvideo1234 commented 1 month ago

Yes I heard. xD Sadly I am in @SligWolf's shoes in this one 😉. He and you explain the problem quite accurately too. 😀

I wonder if this can be solved with bumping the physics iterations. 🤔🤔

dvdvideo1234 commented 1 month ago

I see this was not the case however 4 months ago: https://m.youtube.com/watch?v=guW5F27dhLE

I never liked gmod physical collisions for trains so I did the dedicated Lua maglevs and E2 ones: https://m.youtube.com/watch?v=G_xcm1OFVV0&list=PLtUiNPRuZQ2lH85uGrUN1aaYPSUymzpKv&index=16&pp=gAQBiAQB

Grocel commented 1 month ago

Yes I heard. xD Sadly I am in @SligWolf's shoes in this one 😉. He and you explain the problem quite accurately too. 😀

I wonder if this can be solved with bumping the physics iterations. 🤔🤔

This has been ruled out. Changing iteration and tick settings does nothing on this issue.

I see this was not the case however 4 months ago: https://m.youtube.com/watch?v=guW5F27dhLE

I never liked gmod physical collision for trains so I did the dedicated Lua maglevs and E2 ones: https://m.youtube.com/watch?v=G_xcm1OFVV0&list=PLtUiNPRuZQ2lH85uGrUN1aaYPSUymzpKv&index=16&pp=gAQBiAQB

Remember the issue only happens if the server/listenserver runs on branch x86-64. On the main branch (dev and prerelease too) is still not affected, in case your have missed that detail. They are still fine, for now.

I don't think your videos were recorded on x86-64 neither. The x86-64 issue is at least a year old, or maybe even longer. The issue shows the physics being different between main and x86-64.

Lua Maglevs was also an idea that came up multiple times, but Lua tracers running from many trains/wagons are a way more expensive than the C++ physics code running. It is not feasible for every use case neither. For Sligwolf and me it would be a way to difficult to code properly too. Sligwolf and me never needed such workarounds. I am still impressed, though.

Everything you need to know about the physics problem is summarized in my linked GMod issue. It is very unlikely that it can be fixed just with changed models and "optimized" sliders/wheels alone, especially without heavy drawbacks.

It is a problem that affects everyone in the train building community or even other GMod players too. That's why I insist that people know about this, get the details straight and don't be confused about them.