Techokami / SonicWorldsNext

Official development repository for the successor to Sonic Worlds Delta
MIT License
139 stars 29 forks source link

Wall push-out glitch due to slight collision overlap achieved from a normal jump condition #116

Closed IeatBabieslmao closed 1 month ago

IeatBabieslmao commented 11 months ago

https://github.com/Techokami/SonicWorldsNext/assets/142087281/c8f61115-3058-4041-af02-ec574c69538c

Techokami commented 11 months ago

Why is this a video? Please describe the issue with text instead, where the video is an optional demo of said issue.

From what I can gather from the footage, the bug appears to be an edge case where jumping off the swinging platform can get the player partially embedded within the wall without being ejected. But that's just my observation, because you did not actually describe the issue, leaving me to just guess.

IeatBabieslmao commented 11 months ago

Sorry, essentially, If you're right at the edge, you slightly clip into the ground, and if you fall onto a spring while in this clipped state, it zips you upwards

DimensionWarped commented 11 months ago

So I haven't been able to reproduce this myself with the engine running at the default position of everything... it looks like you may have moved the swinging platform a bit. Can you give me the exact coordinates that you put it at?

EDIT: Nevermind, I got it. Not sure what to make of it just yet, but I got it.

@Renhoex If you want to check this out I found it easiest to get with the swinging platform positioned at 5295,1048 -- not sure if the cause actually has anything to do with the over the edge animation or if it's really just about jumping into a wall while x motion is zero... I'm leaning toward the latter.

EDIT: Confirmed that I can replicate it from the right side of the pit too. Looks like we might need to make some improvements to push out when the player is jumping with a zero horizontal component to their velocity.

EDIT: Also replicated it without the platform at all just using Tails flight to position myself above the wall.

Note that it only seems to take effect if it's your back facing the wall that you are clipping into, indicating to me that we likely already have some pushback for this for the direction you are facing.

EDIT: Nevermind, it can happen if you are facing the wall too, just took me a little extra effort to reproduce it (had to jump off of Tails right before he hit the ground so that I wouldn't get repositioned on exiting the flight carry mode)

DimensionWarped commented 11 months ago

Exact reproduction steps:

  1. Use Tails flight to position yourself so that you are just barely going to have your right side collision be considered on ground. Make sure you come to a complete stop before moving to step 2.
  2. Start descending. As Tails is about to hit the ground, jump off by holding down + jump (assuming you used single player flight controls, just jump if you used multiplayer flight controls I think? Didn't actually test multiplayer flight mode and it's not important for this issue... either way, just jump off before you hit the ground while riding Tails
  3. Wait until Sonic hits the spring and he'll clip.

https://github.com/Techokami/SonicWorldsNext/assets/7477617/8952a757-30ff-4dc4-94ce-0b13cd044988

DimensionWarped commented 11 months ago

Here is another example without using Tails flight and with the spring removed from the bottom of the chasm.

https://github.com/Techokami/SonicWorldsNext/assets/7477617/833c4a96-156e-45b7-8e36-ec9e93a8688c

DimensionWarped commented 11 months ago

Renamed the issue due to it not really being about the spring

NeonSRB2 commented 5 months ago

This is due to the horizontal sensor only facing in one direction, if the last direction you moved in was toward the edge the player is ejected like the original games, but if you face away, this happens because the player is never ejected far enough away to not collide upon touching the ground

NeonSRB2 commented 5 months ago

Fixed in my pull request

NeonSRB2 commented 5 months ago

159

Hopefully this adds it to the issue list for the pull request?

DimensionWarped commented 4 months ago

Hey Neon, I'm going to make a point of reviewing those patches over this weekend. Thanks for putting the work in and sorry we've been slow to address your PR.

Caverns4 commented 1 month ago

Since the PR has been long since merged by now, I'd say it's fit to close this issue.