[BUG][ENGINE] Fall distance when initially spawning is measured incorrectly

Started by namida, February 15, 2020, 12:32:23 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

namida

Normally, a 64px fall leads to a lemming splatting.

However, an edge case exists: A lemming that has just spawned, will splat from a fall of 62px (surviving a fall of 61px). This is ultimately due to the exact way lemmings are spawned.

The question is what to do about this. The only two logical options are "fix it so they have the same survivable fall as elsewhere", or "leave this as-is". The former could break some levels, although I suspect it wouldn't break too many. The latter won't break anything, but it seems wrong to leave this.

No fix will be implemented until V12.9.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

IchoTolot

This is such a minor inconsistancy that I would simply go for no fix.     

It can break quite a few more advanced deadly drop levels and I think there is not much gained from this fix. You would have to test every case in detail to check for potential backroutes, the number may be not that high but they are quite difficult to detect.

If the engine was brand new I would vote for a fix, but here I think the bad would outweight the good. Especially if we are just talking about 2 pixels and that this hasn't even been detected until now.

In general at this late point in the software's life cycle I would only go for physics changes if they are on like glitch level.

namida

QuoteEspecially if we are just talking about 2 pixels and that this hasn't even been detected until now.

The reason it wasn't detected was due to the absence of any way to easily measure the distance. Within minutes of implementing a feature to show the entrance's spawn point in clear physics mode, this bug jumped out at me. For now I've just added markers on the splat ruler to account for it, since even-numbered versions aren't meant to change physics anyway unless it's critical.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Dullstar

A thought: When running cleanse levels on levels created prior to whatever version this is fixed in, would it be possible to automatically detect instances of entrances that are only at deadly heights as a result of this bug and automatically reposition them such that the number of pixels the fall is deadly by remains the same? This would probably fix most of the levels affected by this without changing unaffected levels.

Also, out of curiosity: is this bug present in vanilla Lemmix/DOS lemmings? It sounds like, for example, Mayhem 1 from the original lemmings would no longer have a deadly entrance with this change, since that fall is only fatal by 1 pixel.

namida

QuoteA thought: When running cleanse levels on levels created prior to whatever version this is fixed in, would it be possible to automatically detect instances of entrances that are only at deadly heights as a result of this bug and automatically reposition them such that the number of pixels the fall is deadly by remains the same? This would probably fix most of the levels affected by this without changing unaffected levels.

This would only fix the simplest of cases*, and it would break replays - in a way that isn't necesserially trivial, if even possible, to auto-fix.

* For example - perhaps an entrance has a fall that's designed to be safe, but removing just 1 pixel below the landing makes it fatal. Such a patch wouldn't catch that.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Dullstar

Is breaking replays an issue if the alternative is breaking levels? I don't think any automatic fix could fix every single instance, but my suggestion for an auto-fix was more of looking to reduce the number of levels that would require a manual fix. The good thing is, the levels should all still be solvable. But making a previously deadly fall survivable via physics changes could easily introduce trivial backroutes.

I'm inclined to agree with Icho that it might be a bit late to fix this, especially considering that a deadly drop from an entrance is generally found quickly enough that it's not as big a deal to misidentify an entrance drop as safe when it is actually deadly compared to other arbitrary drops. But considering it's often considered good practice to make deadly falls obviously deadly, in practice maybe there aren't horribly many affected levels, in which case consistency would be good.

DireKrow

I think the fact it took so long for anyone to notice is testament to the fact that the bug remaining in the game wouldn't be a big deal.

I think it's better to just leave it and risk not creating compatibility issues - at least not until another, more vital physics change occurs that would create compatibility issues anyway.
LOTY 2020 Winner
My NeoLemmix Levels: The Krow Files (File A v1.2 released 21-Feb-2020)

ccexplore

A little late to the commenting party, but just want to point out that with the way lemmings are depicted to come out of the entrance trapdoor, a common interpretation is that they have already started falling from somewhere "outside" in whatever world exists beyond the opening of the entrance.  So I think it's at least reasonable for one to argue that we don't actually know how many pixels of falling may have already occurred on the first frame the lemming is drawn into the level.  Then given the concern of breaking some existing levels, maybe it's best to leave current behavior alone like many suggested.

If there is concern about splat ruler, I think right now you already have a bigger issue in that even in clear physics mode, there is no highlighting of the exact pixel where lemming first appears, so there is no clear point to measure against with a splat ruler anyway.  Ideally we shouldn't have to have yet another splat ruler for the entrance case, but I guess since we already have one for climbers hitting the ceiling and falling, maybe it's that big a deal ultimately to have more rulers.

namida

QuoteI think right now you already have a bigger issue in that even in clear physics mode, there is no highlighting of the exact pixel where lemming first appears, so there is no clear point to measure against with a splat ruler anyway.

As of V12.8.0, there is highlighting of this pixel in clear physics mode. That's what exposed this bug in the first place. (Lemmings do fall 3px from this pixel on the first frame they're visible, unless the pixel or one of the two below it are solid, though.)
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

After re-reading the discussions (and some more thinking about this), I do think the best way forward here is simply leave things as they are.

Anyone disagree with this?
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Proxima

I'm happy with the fall distance issue being left alone. The only change I'd recommend is, I don't think the splat ruler needs to have a special marking for this unique case. Most of the time, a fall isn't close enough that you want to know the exact pixel where splatting happens; you just want to know either whether the fall is already safe, or if not, an estimate of where a landing bridge needs to be placed. Because of the possibility of fencepost errors, even when using the splat ruler I always allow an extra pixel or two anyway :P

WillLem

Leaving things as they are is sometimes OK. :thumbsup:

To be absolutely fair, its basically impossible to measure an entrance hatch drop anyway, because the spawn point isn't actually visible in-game.

If level creators want a splat drop, they'll ensure it happens (and by how many pixels), and if there are existing levels whose entrances aren't meant to be splat-drops but are (or vice versa) as a result of this phenomenon, just heighten/lower them by the necessary number of pixels in the editor and have done with it. Or, try to solve the level anyway!

Quote from: Proxima on April 13, 2020, 02:06:56 AM
I don't think the splat ruler needs to have a special marking for this unique case... Because of the possibility of fencepost errors, even when using the splat ruler I always allow an extra pixel or two anyway :P

Agreed: the extra markings are a bit confusing if you don't know what they're for. I customised mine anyway so it makes sense to me, but other users might not want to/know how to.

namida

Quote from: Proxima on April 13, 2020, 02:06:56 AM
I'm happy with the fall distance issue being left alone. The only change I'd recommend is, I don't think the splat ruler needs to have a special marking for this unique case. Most of the time, a fall isn't close enough that you want to know the exact pixel where splatting happens; you just want to know either whether the fall is already safe, or if not, an estimate of where a landing bridge needs to be placed. Because of the possibility of fencepost errors, even when using the splat ruler I always allow an extra pixel or two anyway :P

I've seen too many cases of "fatal/safe by just 1 pixel" to agree with this.

QuoteTo be absolutely fair, its basically impossible to measure an entrance hatch drop anyway, because the spawn point isn't actually visible in-game.

It is in clear physics mode, if you mouseover the entrance, as of (iirc) V12.8.0.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

And now, I'm reconsidering that, in light of that fixes to replays will be needed anyway to address this bug: https://www.lemmingsforums.net/index.php?topic=4674.0

The counter-argument is, of course, that that bug won't (or at least shouldn't) require changes to any levels, just replays.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Dullstar

Leaving it as-is wouldn't be a huge issue, in my opinion. I don't think changes to the splat ruler would be necessary either, since the fall happens at the start of the level.

But it's also extremely easy to fix levels that would be broken by this, with the main obstacle to fixing them simply being identifying these levels, so it wouldn't be a huge issue either.

That said, if we make this change, we should make sure Mayhem 1 gets fixed in the NeoLemmix conversion of the original game's levels.