YoYoGames / GameMaker-Bugs

Public tracking for GameMaker bugs
26 stars 8 forks source link

In-Game: Tile collision mask is not precise in 2024.6 runtimes #6484

Closed DarkD04 closed 4 months ago

DarkD04 commented 4 months ago

Description

Here i am with another tile collision issue, this time everything works perfectly fine EXCEPT, it's not precise at all! i don't even know how, it was working fine in 2.2024

Runner_poev4TJnm4 This gif is recorded with 2024.6 runtime and as you can see, collision is not precise and sonic at the start of the gif is clipping, pay attention to the right bottom line[its right floor sensor] and how it behaves, whenever that sensor touches collision it moves sonic up, but here its not precise at all, and there are moment where he moves 2 pixels up instead of 1

Runner_ogbdUSkSYW This gif is recorded in 2.2024 runtime and its working perfectly fine, no issues at all, aside of tile flipping not working but it was working perfectly fine.

Expected Change

Tile collisions to work reliably

Steps To Reproduce

  1. Here's the project: Harmony-Framework-main.zip
  2. Press escape to go to dev menu
  3. Then go to Every Room tab and to rm_arboreal_agate1 for more stages
  4. Press F7 to view player collision stuff and info
  5. Press F9 to view stage solids
  6. Play the game for a bit and observe the issue

How reliably can you recreate this issue using your steps above?

Always

Which version of GameMaker are you reporting this issue for?

2024.6.0 (Monthly)

Which platform(s) are you seeing the problem on?

Windows

Contact Us Package Attached?

Sample Project Added?

DarkD04 commented 4 months ago

if this helps, collision mask has been offset of 1 pixel downwards, except the rectangle

YYDan commented 4 months ago

Ta - although please do remember this is a public bug database with a variety of people reading it and accordingly keep language workplace-safe ;)

rwkay commented 4 months ago

Can I suggest that you keep the language to yourself, though I appreciate the exasperation.

1) We release regular Betas to catch things like this, fixing one bug can have unforeseen knock-ons to other areas of the codebase - the Beta sits side by side and you can swap back and forth between Monthly and Beta.

2) We have a Test Project that we use to test things see https://github.com/YoYoGames/GM-TestFramework - why not add tests that would catch things like this, if it frustrates you so much - we use this test project to ensure that we are not regressing but it does not cover everything - with your help it could!

YYDan commented 4 months ago

It's a struggle to see much of any difference here for the most part and merely playing the game normally shows no ill effects that I can see, but walking slowly up the curved ramps seems to best show the issue reported.

2024.4 on the left, vs 2024.6 on the right: image

Observe how the corner of the debug overlay can be seen clipping into the debug solid for the ground more in the right image.

Repro steps are:

  1. Start GM and import the attached sample.
  2. Run it.
  3. Don't change level (the repro steps above put you back on the same level anyway)
  4. Press F5 (not F7 as said originally), F8 and F9 to enable all three types of overlay
  5. Use right arrow in combination with any of A/S/D to jump over the boxes at the start, down the first slope and reach the curved upward bit shown in the image above.
  6. Come to a complete stop.
  7. Tap the right arrow repeatedly to slowly walk up the curved surface.
  8. Observe the collision box clips into the solid area for much of the curve until eventually Sonic is thrown off the wall
  9. (Optional) repeat all of the above after changing to 2024.4 and observe there is no clipping of the collision box
DarkD04 commented 4 months ago

Well obviously, every collision mask that isn't perfect square block has imprecise collision masks, and i would really like if this was precise just as normal object collision, if its impossible to have the precision from 2.2024 runtime can there be a flag at least? also, use dev-branch because it has better debugging stuff.

DarkD04 commented 4 months ago

so is this going to get fixed?

YYDan commented 4 months ago

Yes. However, as we have looked into this there are a number of things which will be done to improve tile-based collisions, and so this will now go in for an early (probably the first) 2024.800 Beta.

DarkD04 commented 4 months ago

few more months to go i guess....

sihammill commented 3 months ago

Verified in IDE v2024.800.0.600 Runtime v2024.800.0.623