[BUG][PLAYER] Left/Right sides of a level are not deadly for a slider.

Started by Armani, April 06, 2021, 06:11:57 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Armani

   
Left/Right sides of a level are not deadly for a slider.

+

And bottom side of a level is not deadly for a shimmier lemming.

My newest NeoLemmix level pack : Lemmings Halloween 2023 8-)

My NeoLemmix level packs(in chronological order):
  Lemmings Uncharted [Medium~Extreme]
  Xmas Lemmings 2021 [Easy~Very Hard]
  Lemmings Halloween 2023 [Easy-Very Hard]

namida

Technically, this is an expected outcome from how physics actually work, but I kind of feel like both of these are corner cases that shouldn't actually happen...
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

Yeah, those should definitly be fixed. It's a corner case, but the neighboring level edge should be considered here.

No user in the right mind would expect this behavior.

Simon

This is a lovely bug. Quality digging. Yes, lemming should not slide down the outer rim.

Once again, the pin inside the terrain coupled with the most natural implementation produces confusing lemming behavior. :evil:

-- Simon

WillLem

I'm not sure I agree with the big boys here (no surprises there ;P); the lemming is not actually exiting from the side of the level in either of these cases. They remain in constant contact with the terrain, which is 1px away from the side - this is important.

It's analogous with a Walker walking across a wall that's 1px from the top of the level - you wouldn't expect them to die, since they haven't actually fully left the level area.

*Braces for imminent dismissal of this logic...*

IchoTolot

Answer: https://www.lemmingsforums.net/index.php?topic=5527.msg91461#msg91461
Quote
There can be a big difference between "It's expected in terms of how internally NL physics work" and "from the outside the normal user expects it".

The shimmier (and slider in the other case) is visually completely outside the level. Every user would expect a lemming who is visually completely outside the level to die as that's a basic rule in NL.

Internally the lemming has its active physics trigger 1 pixel inside the terrain. The slider and shimmier trigger is therefore still inside, but no visual indicator of the lemming itself indicates this and no person would guess this. Therefore it definitly needs to go and it would just cause confusion and anger among players who don't know the internal state of physiucs.

QuoteIt's analogous with a Walker walking across a wall that's 1px from the top of the level - you wouldn't expect them to die, since they haven't actually fully left the level area.

There you still have an actual visible part of the lemming walking.

QuoteThey remain in constant contact with the terrain, which is 1px away from the side - this is important.

And here you got your error!

The terrain is at the level border. No 1px away from the side cases is present in the slider/shimmier case. It is at the side!

And that's exactly why it needs to be fixed asap! :8():

Simon

The gif has a dark-grey border; this is the deadly side. There are no air pixels (that would be black) between the sidewards abyss and the wall.

WillLem: To arrive at your position (that the sliding is acceptable), did you see that there is no air between abyss and wall?

One can make a case to keep the sliding even if one clearly sees the abyss and the wall in neighboring pixels, e.g., by decreeing the pin in the wall a good feature. If I have to argue with this, I'll happily do it, but it would be nice to see first if anybody holds such a position.




My first reaction to this today was: Wow, we can have popcorn even for this? Amazing, yes yes yes. But probably it's a misinterpretation of the gif.

-- Simon

WillLem

Quote from: IchoTolot
There can be a big difference between "It's expected in terms of how internally NL physics work" and "from the outside the normal user expects it".

Hmm, that's a problem, then. Surely the two should be as harmonious as possible.

Quote from: IchoTolot
The shimmier (and slider in the other case) is visually completely outside the level. Every user would expect a lemming who is visually completely outside the level to die as that's a basic rule in NL.

I'll concede this. Looking again at Armani's gif, I can see that it is indeed actually only the "highlighted lem" arrow that remains visible, and the lemming completely disappears. Given the shape of the terrain as well, it's expectable that the lemming should continue walking off the edge as opposed to turn and slide down.

The Shimmier case presents more of a grey area since they are clinging onto the terrain as they descend, but I suppose that this is analogous to a walker dying if it ascends above the level area, which is consistent to NL's physics and so should be fixed.

Maybe this is why level edges aren't deadly in original Lemmings (this is just a thought, and not a suggestion that they ought not to be); perhaps it raised too many physics questions.

Quote from: IchoTolot
And here you got your error!

The terrain is at the level border. No 1px away from the side cases is present in the slider/shimmier case. It is at the side!

Yes, I see that now. The 1px border is in Armani's gif, not the level itself. I guess I should have spotted this due to the shape of the terrain, but I was tired when I first saw the post :forehead: :sleep:

Quote from: Simon
WillLem: To arrive at your position (that the sliding is acceptable), did you see that there is no air between abyss and wall?

No, tbf I thought it was black. On much closer inspection I can see that it is dark grey and therefore not part of the level area.

Quote from: Simon
probably it's a misinterpretation of the gif.

Yes, it is. My bad! :forehead:

I'm sure there will be other popcorn opportunities as the NL deadline date closes in; at least, I hope there will be, even if only for the fun of it! :lemcat:

namida

Fixed in commit 6219977 (with the following commit, 353f87d, fixing an oversight in the failsafe).

The primary fix is that a lemming won't be able to dehoist in the first place if it is standing on the very edge of the level and moving towards the edge. This should prevent any case arising in the first place where a slider or dehoister is (visually) outside the level. However, there's a failsafe in case this does occur (possibly via unusual teleporter setups) - should the lemming be in a situation where it is outside the level sliding (or on the last frame of dehoisting), it will instantly die.
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)