Removing the Spidertron "screen jitter" on moving around.

Ideas that are too old (too many things have changed since) and ones which won't be implemented for certain reasons or if there are obviously better suggestions.

Moderator: ickputzdirwech

Taipion
Long Handed Inserter
Long Handed Inserter
Posts: 91
Joined: Tue May 02, 2017 6:58 pm
Contact:

Re: Removing the Spidertron "screen jitter" on moving around.

Post by Taipion »

Qon wrote:
Sat Aug 10, 2024 7:15 pm
Taipion wrote:
Thu Aug 08, 2024 2:54 pm
I see this is a place were people overthink and overengineer, but it's really not necessary. :D
Written by someone who doesn't think.

Your suggestions are incomplete. You are continuing the well established pattern in this thread of underthinking and underengineering and just repeating things said before without reading the replies pointing out the issues. Saying "and then magic happens that solves the issues" isn't the genius move you think it is. :x :roll:
Yes, it totally helps if you unleash your attitude on other people in this forum/thread... -.-

If you are unable to provide anything constructive or at least detail, then just don't.

Koub
Global Moderator
Global Moderator
Posts: 7408
Joined: Fri May 30, 2014 8:54 am
Contact:

Re: Removing the Spidertron "screen jitter" on moving around.

Post by Koub »

[Moderator me here] I'd rather not see things escalate beyond this point, thank you.
Koub - Please consider English is not my native language.

Qon
Smart Inserter
Smart Inserter
Posts: 2146
Joined: Thu Mar 17, 2016 6:27 am
Contact:

Re: Removing the Spidertron "screen jitter" on moving around.

Post by Qon »

Taipion wrote:
Tue Aug 20, 2024 6:30 pm
Qon wrote:
Sat Aug 10, 2024 7:15 pm
Taipion wrote:
Thu Aug 08, 2024 2:54 pm
I see this is a place were people overthink and overengineer, but it's really not necessary. :D
Written by someone who doesn't think.

Your suggestions are incomplete. You are continuing the well established pattern in this thread of underthinking and underengineering and just repeating things said before without reading the replies pointing out the issues. Saying "and then magic happens that solves the issues" isn't the genius move you think it is. :x :roll:
Yes, it totally helps if you unleash your attitude on other people in this forum/thread... -.-

If you are unable to provide anything constructive or at least detail, then just don't.
I didn't come in with the attitude. You said that the constructive posts I wrote before were not necessary. I'm plenty capable, would you mind reading what I wrote before? I wrote a reply to you before detailing the things that were left out. But you never answered. You need to specify enough what should actually happen to solve the whole problem instead of solving it partially with wishes and making new problems with undefined behavior that's potentially worse than what we have now.

The reason I'm pointing out issues with incomplete suggestions is that they are unlikely to be implemented otherwise. I'm the most constructive person in this thread and your lax attitude to detail is not helpful.
"Can we think less about discussing good solutions and just hope something happens even though the devs can see we don't even seem to care enough to try to understand the problem?"
It's just not very constructive. If you are able to provide anything constructive, please do that instead.
My mods: Capsule Ammo | HandyHands - Automatic handcrafting | ChunkyChunks - Configurable Gridlines
Some other creations: Combinassembly Language GitHub w instructions and link to run it in your browser | 0~drain Laser

Taipion
Long Handed Inserter
Long Handed Inserter
Posts: 91
Joined: Tue May 02, 2017 6:58 pm
Contact:

Re: Removing the Spidertron "screen jitter" on moving around.

Post by Taipion »

Qon wrote:
Wed Aug 21, 2024 11:03 pm
Taipion wrote:
Tue Aug 20, 2024 6:30 pm
Qon wrote:
Sat Aug 10, 2024 7:15 pm
Taipion wrote:
Thu Aug 08, 2024 2:54 pm
I see this is a place were people overthink and overengineer, but it's really not necessary. :D
Written by someone who doesn't think.

Your suggestions are incomplete. You are continuing the well established pattern in this thread of underthinking and underengineering and just repeating things said before without reading the replies pointing out the issues. Saying "and then magic happens that solves the issues" isn't the genius move you think it is. :x :roll:
Yes, it totally helps if you unleash your attitude on other people in this forum/thread... -.-

If you are unable to provide anything constructive or at least detail, then just don't.
I didn't come in with the attitude. You said that the constructive posts I wrote before were not necessary. I'm plenty capable, would you mind reading what I wrote before? I wrote a reply to you before detailing the things that were left out. But you never answered. You need to specify enough what should actually happen to solve the whole problem instead of solving it partially with wishes and making new problems with undefined behavior that's potentially worse than what we have now.

The reason I'm pointing out issues with incomplete suggestions is that they are unlikely to be implemented otherwise. I'm the most constructive person in this thread and your lax attitude to detail is not helpful.
"Can we think less about discussing good solutions and just hope something happens even though the devs can see we don't even seem to care enough to try to understand the problem?"
It's just not very constructive. If you are able to provide anything constructive, please do that instead.
#1: You are apparently very short tempered / thin skin, taking something I obviously said in jest (I even put an appropriate smiley next to it) and assuming tons of bad intentions and whatever else on my end.
This is not constructive, this is personal and emotional, this does not belong here and I refuse to "discuss" on that level, so just drop it already.

#2: The specifications of what should happen and how it should work are very, VERY simple and I layed that out in probably enough detail already,
if you missed that, then sorry, try to read it again and not overthink it too much.

#3a: Solution 1 - if and only if the player is using a spidertron (or similar vehicle), determine the max "wobbling" distance than can appear, add some low % as buffer just in case, and set the camera to not be fixed on the exact player position but with a buffer of that distance (read: camera only moves if it is further than this distance away from the player), which effectively will land the camera slightly ahead in movement direction, but stop wobbling and will likely be pretty much not noticeable, but definitely not as bad as the wobbling

#3b: Solution 2 - whenever spidertron movement is stopped (read: final destination through remote, or release of WASD keys), calculate the final position of the spidertron and move the camera there with the speed of the moving spidertron, and lock it in place there until the spidertron moves again (read: through WASD or remote), ignoring "wobble movement"
Yes, calculating the final resting position of a spidertron is simple as the game is utmost deterministic in nature, which is essential to its stability in multiplayer,
unfortunately I don't know the code so that's the best I can give as description.

[edit:] I know there are more cases than this, which need to be considered, like the spidertron following another entity or completely different movement possibilities through mods, but they all boil down to the same use case that is: spidertron stops moving, so this can be applied there as well

[edit2:] This is basically the same that LackadaisyFrog said without leaning into differential equations as that's not necessary as you just need to use the code that already is there to determine the spidertrons final position, just run it in a different way to get the end position instead of "per tick" updates to the position.
I may note that I clearly disagree with him on the point that the camera should be, in solution 1, be "re-attached" at some point as that again would cause problematic movement.

[edit3:] And as a side note for implementation, even though I, personally, do not share the "need" for "simulated spring legs movement", this should ofc be an optional change, so you can turn the old/new camera behaviour on/off in some way.
In my work on a client of some indie game I always do it the same, optional, as I learned that there will always be people who prefer either way for whatever reason, understandable or not. :D

Tertius
Filter Inserter
Filter Inserter
Posts: 795
Joined: Fri Mar 19, 2021 5:58 pm
Contact:

Re: Removing the Spidertron "screen jitter" on moving around.

Post by Tertius »

As far as I see, you all have incorrect assumption on how the Spidertron moves. Or at least you didn't describe it so I understand it. You seem to assume the origin of all computation around movement is the spidertron body. Actually, it's two levels more.

First, the Spidertron body is moved by the movement keys. This builds tension in the legs, which act like springs. Second, to resolve the tension, all feet are checked if they can be moved to a position in reach where the tension of its corresponding leg is smaller. If this is possible, the position is chosen where the tension is smallest and the foot is moved there.
Third, the powers that control the position of the Spidertron body (it's the current accumulated tension of the legs, additionally the tension by some movement key) pull the body to a position where the accumulated leg tension is minimized.

This is not visually apparent, because the camera is centered on the body, and the map moves around it. If you center the map and move the body around it, it would be more clear. But to where could the map be centered? It's the point between the legs where the leg tension is minimized, if the body would be in that position. The body would come to rest in this position, if there is no external tension by the movement keys.

The crucial point is, this position isn't wobbling around, because the Spidertron body has no momentum. It's just following the weighted average of the foot positions (weighted by the tension). It's only moved by minimizing (releasing) the leg tension, not by momentum. A momentum would build tension after the player releases the movement keys, but this doesn't happen, since there is no momentum.
If the game put the camera on this position instead of always use the body position, the wobbling would be avoided.

Taipion
Long Handed Inserter
Long Handed Inserter
Posts: 91
Joined: Tue May 02, 2017 6:58 pm
Contact:

Re: Removing the Spidertron "screen jitter" on moving around.

Post by Taipion »

Tertius wrote:
Thu Aug 22, 2024 12:16 pm
As far as I see, you all have incorrect assumption on how the Spidertron moves. Or at least you didn't describe it so I understand it. You seem to assume the origin of all computation around movement is the spidertron body. Actually, it's two levels more.

First, the Spidertron body is moved by the movement keys. This builds tension in the legs, which act like springs. Second, to resolve the tension, all feet are checked if they can be moved to a position in reach where the tension of its corresponding leg is smaller. If this is possible, the position is chosen where the tension is smallest and the foot is moved there.
Third, the powers that control the position of the Spidertron body (it's the current accumulated tension of the legs, additionally the tension by some movement key) pull the body to a position where the accumulated leg tension is minimized.

This is not visually apparent, because the camera is centered on the body, and the map moves around it. If you center the map and move the body around it, it would be more clear. But to where could the map be centered? It's the point between the legs where the leg tension is minimized, if the body would be in that position. The body would come to rest in this position, if there is no external tension by the movement keys.

The crucial point is, this position isn't wobbling around, because the Spidertron body has no momentum. It's just following the weighted average of the foot positions (weighted by the tension). It's only moved by minimizing (releasing) the leg tension, not by momentum. A momentum would build tension after the player releases the movement keys, but this doesn't happen, since there is no momentum.
If the game put the camera on this position instead of always use the body position, the wobbling would be avoided.
I'm sorry, maybe its just because I'm a programmer and I tend to not overcomplicate things and use what works / is there already instead of rewriting or re-imagining it all over again, if it is good enough.

It does not matter how many components is has, and it does not matter how many calculations or methods are involved.
You have a definitive start state (release of movement keys) and a definitive end state (spidertron stopped all movement) with no player interaction and no randomness in between, the transition between these two states is strictly deterministic (which is, as I already pointed out, a necessity of multiplayer stability) and is computed anyways.

You just need to do this computation ahead of time, and you got the exact, deterministic result you need.
And if you were to save all the movement relevant values along the way, you would not even have to calculate it twice for the actual movement, unless there is more player interaction in between.

And even if you do the calculation twice, you only need to do this for the players spidertron and only for each manual stop, so it is basically impossible for this to be anyhow relevant performance wise.

[edit:] I like your idea, Idk if that would actually work but it sounds nice :-)

Koub
Global Moderator
Global Moderator
Posts: 7408
Joined: Fri May 30, 2014 8:54 am
Contact:

Re: Removing the Spidertron "screen jitter" on moving around.

Post by Koub »

Rseding91 wrote:
Fri Aug 23, 2024 12:16 pm
viewtopic.php?f=6&t=104637 TLDR: there is no built in "sway" it's simple byproduct of how spidertrons move with legs and not something that can just be turned off.
Source

[Koub] Moving this thread in Mon't implement
Koub - Please consider English is not my native language.

Taipion
Long Handed Inserter
Long Handed Inserter
Posts: 91
Joined: Tue May 02, 2017 6:58 pm
Contact:

Re: Removing the Spidertron "screen jitter" on moving around.

Post by Taipion »

Koub wrote:
Fri Aug 23, 2024 9:05 pm
Rseding91 wrote:
Fri Aug 23, 2024 12:16 pm
viewtopic.php?f=6&t=104637 TLDR: there is no built in "sway" it's simple byproduct of how spidertrons move with legs and not something that can just be turned off.
Source

[Koub] Moving this thread in Mon't implement
What is "Mon't implement"? :D

...but seriously, is there anything a lowish player like myself can do, to get this fixed someday?

Post Reply

Return to “Outdated/Not implemented”