[Potential Bug][Player] Climbers can shimmy from a stack with no ceiling

Started by Strato Incendus, December 04, 2020, 10:45:39 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Strato Incendus

Steps to reproduce:
1) Assign a Stacker.
2) Make a lemming a Climber so that he can climb the stack.
3) Assign a Shimmier to the lemming while climbing the stack. At one point, he can transition into a Shimmier (i.e. turn around and shimmy into the opposite direction) as if there were a ceiling, even though there is none. It will only be for a very short time, but it can be used to turn a Climber around who would otherwise just climb straight over the stack.

I discovered this behaviour because some people kept using it to backroute some of my Lemmings Open Air levels. :P

I'm not calling for it to be abolished simply because I want those backroutes broken. In fact, I'm not sure whether I'd personally want to see it abolished at all, because it's a pretty cool trick once you know about it.

The question is just: Is it intentional? And more importantly, would this be in line with what you'd expect? Because it definitely wasn't expected for me at all.
Wouldn't this then also mean that there's a certain point when climbing regular walls where the lemming can transition into a Shimmier, even without a ceiling being there?
My packs so far:
Lemmings World Tour (New & Old Formats), my music-themed flagship pack, 320 levels - Let's Played by Colorful Arty
Lemmings Open Air, my newest release and follow-up to World Tour, 120 levels
Paralems (Old Formats), a more flavour-driven one, 150 levels
Pit Lems (Old Formats), a more puzzly one, 100 levels - Let's Played by nin10doadict
Lemmicks, a pack for (very old) NeoLemmix 1.43 full of gimmicks, 170 levels

Proxima

Quote from: Strato Incendus on December 04, 2020, 10:45:39 AMWouldn't this then also mean that there's a certain point when climbing regular walls where the lemming can transition into a Shimmier, even without a ceiling being there?

Yes, if a lemming is climbing a normal wall and there is no ceiling, there is a certain height at which the climber can be assigned shimmier, and this makes them immediately fall (facing the other way). This is not during the "hoisting" phase, but just below.

Definitely a bug in my view. At the very least, it's a really precise and fiddly behaviour that goes against expectations. Let the clam eat it! :8():

IchoTolot

I would also say this is a bug and needs to be removed! It's totally counter intuitive to what everyone expects.

The shimmier transition + turnaround should only take place when the wall connects with a ceiling.

Otherwise the assignment should only be stored for a short time and handled after the lem hoisted onto the wall's end. There should be no turnaround in that case and only a reacher jump.

Strato Incendus

QuoteThere should be no turnaround in that case and only a reacher jump.

Not even that, in this case, because the lemming is attached to the wall as a Climber. ;)

The Reacher would only apply when he's still standing right in front of the stack. At this point, if he is also a Glider, he can still be turned around, because the Reacher will cause him to open his Glider sail and bump against the stack on the way down.

This is the new behaviour since the physics change; before, the Glider would actually land on top of the stack. I'm fine with the change and understand why it had to be made; this is just to show that Reacher-Glider tricks are still possible, just different ones. And in this case, when it comes to the question of "how do I prevent a Climber from going over a stack?", in one of the levels I'm referring to, the lemming is actually both a Climber and a Glider. So even if this Shimmier bug is abolished, the Shimmier can still serve to turn the lemming around by simply having him reach and then glide against the stack.
My packs so far:
Lemmings World Tour (New & Old Formats), my music-themed flagship pack, 320 levels - Let's Played by Colorful Arty
Lemmings Open Air, my newest release and follow-up to World Tour, 120 levels
Paralems (Old Formats), a more flavour-driven one, 150 levels
Pit Lems (Old Formats), a more puzzly one, 100 levels - Let's Played by nin10doadict
Lemmicks, a pack for (very old) NeoLemmix 1.43 full of gimmicks, 170 levels

kaywhyn

I'm in complete agreement with both Proxima and Icho that this should be abolished. I too didn't know this was possible, and this is definitely unexpected and counter-intuitive. As for the second question near the end of your post Strato, I tested it and it indeed also happens with normal walls, so it's not just with stacks this can happen. For the point at which you can assign the shimmier, it's near the very top of the wall, at the very last possible moment before the climber hoists or falls back down. In any case, the expected result in both cases should just be a regular shimmier jump and no turnaround if there's no ceiling.
https://www.youtube.com/channel/UCPMqwuqZ206rBWJrUC6wkrA - My YouTube channel and you can also find my playlists of Lemmings level packs that I have LPed
kaywhyn's blog: https://www.lemmingsforums.net/index.php?topic=5363.0

Strato Incendus

QuoteIn any case, the expected result in both cases should just be a regular shimmier jump and no turnaround if there's no ceiling.

Just like with IchoTolot's comment, I still don't understand this. What should the Climber jump off off if he's already attached to the wall? ??? Shimmiers can't wall-jump, only Jumpers can.

They way I would have to imagine what you and IchoTolot are saying is that a Climber who has almost reached the top of the wall with no ceiling on top of it should jump up like a Reacher if a Shimmier is assigned to him? Still looking in the same direction as he did when he was climbing, of course.

If so, why would this only be possible at the very top of the wall, and not simply at any point during the Climber's upward journey?

I'd only expect him to do regular Reacher moves again once he has finished hoisting himself up onto the top of the wall. Or just before he starts climbing the wall at the bottom. But no Reacher jumps in between! ;)
My packs so far:
Lemmings World Tour (New & Old Formats), my music-themed flagship pack, 320 levels - Let's Played by Colorful Arty
Lemmings Open Air, my newest release and follow-up to World Tour, 120 levels
Paralems (Old Formats), a more flavour-driven one, 150 levels
Pit Lems (Old Formats), a more puzzly one, 100 levels - Let's Played by nin10doadict
Lemmicks, a pack for (very old) NeoLemmix 1.43 full of gimmicks, 170 levels

IchoTolot

QuoteJust like with IchoTolot's comment, I still don't understand this. What should the Climber jump off off if he's already attached to the wall? ??? Shimmiers can't wall-jump, only Jumpers can.

The shimmier assignment is stored for a few frames. It will activate after the climber hoisted on the end of the wall.

So you can assign the shimmier in advance, but it will only activate when a ceiling has been reached or the wall has been climbed - but not before the walls end with a turnaround on top of it like in this bug.

namida

This is a bug and I have a fair idea of how it happens. Assume that it will be fixed in 12.11.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)

ericderkovits

yes, I agree this should be abolished. I"m actually the one who did this climber shimmier trick in Strato's Open air Loud level 5 because I did know this trick; when I was making levels. but I went ahead and posted a new non-climber solution for that Open Air level.

Strato Incendus

@IchoTolot: Thanks for clarifying this, now I understand! :thumbsup:

@namida: Good to hear you already have plans to fix this.

I hope nobody has made a level that relies on this behaviour... :evil:
And if so, my stance would be that they probably should have reported this behaviour much earlier already if they felt like it was obscure and most likely not intended! :P
My packs so far:
Lemmings World Tour (New & Old Formats), my music-themed flagship pack, 320 levels - Let's Played by Colorful Arty
Lemmings Open Air, my newest release and follow-up to World Tour, 120 levels
Paralems (Old Formats), a more flavour-driven one, 150 levels
Pit Lems (Old Formats), a more puzzly one, 100 levels - Let's Played by nin10doadict
Lemmicks, a pack for (very old) NeoLemmix 1.43 full of gimmicks, 170 levels

namida

If something is an explicit bug, I give no regard to whether levels that outright use the bug will be broken by fixing it. (On the other hand, breakages that may occur as a side effect of fixing the bug, but not where the level actually relied on the bug, is another matter.)
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

It seems I missed the discussion on this, but I will voice my agreement that we should indeed, as Proxima said, LET THE CLAM EAT IT! :8():

A lot of tricks in the game can be like, "You can do that?" when you see them, but they at least make sense (e.g. when I first saw the trick where lemmings pass through a ceiling one-way from below by canceling a basher just below the ceiling mid-stroke - I had no idea you could do that, but as soon as I saw it I understood exactly why it worked and why it wasn't a bug). This behavior is completely unexpected and appears to just be a bug related to the transition between climbers and shimmiers, in the location where the transition would happen if there was a ceiling to transition to.

namida

Fixed in commit 7d41488.

The immediate code would suggest the only thing that's checked when trying to assign a Shimmier to a Climber is, "will this lemming not be a Climber next frame?". There are clearly other checks going on because most other cases of this fail (eg. the bug doesn't trigger when pushed off by a blocker or one-way field, or interrupted by fire or water), although it is not specific to the Stacker - the top of any ledge works.

I have now made the checks more specific - all of the following must be true on the next frame (ignoring the Shimmier assignment) for the Climber to be able to receive a Shimmier assignment:
1. The lemming will specifically become a faller.
2. The lemming will change direction.
3. The lemming must have terrain either 8 or 9 pixels above him.
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)