[SUG] Jumpers & Shimmiers - behaviour when encountering vertical terrain

Started by WillLem, June 04, 2023, 04:12:46 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

WillLem

This topic is not necessarily related to the current discussion about whether Jumpers & Shimmiers should turn when encountering level sides, and instead is more a product of it.

Do we want this, specifically for when these skills encounter a wall (or any vertical terrain)?:

Note that the skill shadow shows the movement of the lemming - for Shimmiers, they turn and continue to the end of the pips - for Jumpers, they turn and continue the jump trajectory




Crane

I personally would say 'no' on both counts.  Lemmings aren't exactly elastic, and there are special interactions if the lemming has a permanent skill (i.e. if a Climber jumps onto the wall, they will climb).

Also, if Shimmiers were to turn around upon hitting a wall, how much wall should there be?  For example, if there's a stalactite that's just 2 pixels tall, they can't shimmy over that, but turning around would be very strange.

What happens if the lemming is a Slider?  Do they slide down the wall on both counts?

Spoiler
A few levels in Lemmings Cranium also depend on a Shimmier falling when they hit a wall, so I'm a little biased

WillLem

Quote from: Crane on June 04, 2023, 08:36:16 PM
there are special interactions if the lemming has a permanent skill (i.e. if a Climber jumps onto the wall, they will climb).

This behaviour would be retained; Jumper-Climbers will always prefer to climb rather than bounce. Similarly...

Quote from: Crane on June 04, 2023, 08:36:16 PM
What happens if the lemming is a Slider?  Do they slide down the wall on both counts?

Yes.

Quote from: Crane on June 04, 2023, 08:36:16 PM
if Shimmiers were to turn around upon hitting a wall, how much wall should there be?

What I imagine is that it could be an inverted version of Walkers meeting a vertical obstacle, so:

i) Anything a Walker can traverse without transitioning to Ascender, a Shimmier can traverse (0-2 pixels)
ii) Anything that causes a Walker to transition to Ascender causes a Shimmier to transition to Faller (3-6 pixels)
iii) Anything that causes a Walker to turn around causes a Shimmier to turn around (7+ pixels)

This would give Shimmiers an extra pixel of grace; they currently fall at a 2px obstacle, the above proposal extends it to 3px. Plus, it's reasonable to assume that a Shimmier would "attempt" to traverse anything from 3-6px, but then realise it's too low and fall. Whilst, a 7px-or-more obstacle is clearly not traversable, so they simply turn around.

Proxima

Quote from: WillLem on June 04, 2023, 09:05:20 PMPlus, it's reasonable to assume that a Shimmier would "attempt" to traverse anything from 3-6px, but then realise it's too low and fall. Whilst, a 7px-or-more obstacle is clearly not traversable, so they simply turn around.

But if you're envisaging this in terms of the lemming making conscious decisions (always dangerous, because the whole premise of the game is that they are usually mindless and will walk straight ahead into any danger), it's not at all clear why hitting a wall is more likely to make the shimmier think "I should turn round" rather than "I've got as far as I can, time to let go". The lemming doesn't and can't know the overall layout of the level.

WillLem

Quote from: Proxima on June 04, 2023, 09:36:52 PM
But if you're envisaging this in terms of the lemming making conscious decisions

I'm not - they are reacting to what's in front of them. If the obstacle is big enough, they turn. If not, they try to pass it and fall. It's all reactionary behaviour. Is "obstacle isn't big enough to make them turn, so they fall" bad logic, then? Or does it feel wrong for some other reason?

Anyway, there seems to be a fair bit of resistance to this idea, particularly for Shimmiers. Is this even in light of the fact that they will still prefer to slide when also a Slider, and will still fall if the obstacle is a certain size?

What about Jumpers?

I could do with a bit more feedback on this. Leaning more towards "leave things as they are" at the moment in the absence of any support for the idea. I do think that Shimmiers should have an extra pixel of grace overhead though, whatever the outcome - 2px instead of 1px seems better.

Crane

I feel that changing this particular behaviour is an extremely fundamental change that will break a number of levels, especially with the Shimmier.

Spoiler
In Lemmings Cranium, Cunning 12, Cunning 19, Chaos 4 and Chaos 30 will break if the Shimmier turns around upon hitting a wall.  In the case of Chaos 30 it will just be a zombie that will move back and forth along the ceiling, but the other levels depend on the current behaviour to be solvable.  Granted, Cunning 15 depended on Gliders hoisting themselves up if they barely miss the ledge, but thankfully a red herring made this level still possible to solve with the new Glider behaviour.

WillLem

Quote from: Crane on June 05, 2023, 12:41:27 PM
I feel that changing this particular behaviour is an extremely fundamental change that will break a number of levels

From this topic:

Quote from: WillLem
it's been said from the beginning that the SLX development isn't concerned with previous (Neo)Lemmix content; this isn't to be dismissive or inconsiderate of the work that has gone into the many fantastic NL packs over the years, it's so we can have something of a fresh start and generate new ideas free from having to worry about existing content preservation.

So... existing content aside, are there any other reasons we might not want to change Jumper/Shimmier behaviour?

Is anybody in favour of these changes?

Crane

I have to respectfully disagree with that stance.  While being too deeply concerned with backward compatibility does indeed hamper development, outright dismissing it is quite disrespectful and callous, besides risking packs being unplayable if the creator isn't around to fix the levels (assuming they can be fixed).  Personally I feel a balance between the two is better.  The change to the Glider behaviour with a ledge they just miss is annoying but makes some sense since they're holding onto a hang glider and don't have their paws free to grab the ledge, so it makes sense to bounce off as they do normally (and they have the apparatus to do so compared to jumping or shimmying), but more importantly I think it's enough of an edge case for the change to be permissible.  However, in this case, the jumper and shimmier's interaction with a solid wall is more fundamental and frequent.

Proxima

Regarding existing content, I see both sides but I'm a bit more on Will's side. NL levels were made for NL and are still playable in NL; being able to play some of them in SLX at all is a nice bonus but not something authors can demand. It's similar to how I converted the DoveLems levels to Lix back when Lix supported original terrain; a lot of them didn't work as intended (mostly because of one-way walls, but there were and are other differences between the engines) -- and that's okay because it was just a fun project, while the levels were still fully playable as intended on Lemmini.

(Talking of DoveLems, I should mention that Icho's NL conversion of DoveLems was on a different basis, because this was after Lemmini was no longer one of the community's main engines, so the intent was that the NL conversion should take over as the main version of DoveLems going forward. Even so, namida as NL developer was under no obligation to keep Lemmini behaviour in the engine just to make this conversion easier.)

* * *

Back to the shimmier: my first observation is that the existing behaviour (continue or fall, depending on step height) is obviously simpler than the proposed behaviour of continue, fall or turn depending on step height. Simplicity in skill behaviour is desirable; the best puzzles tend to be those where complexity emerges from how simple operations are combined.

It also doesn't feel right that a non-permanent skill can continue for ever.

But my main objection to the bouncing shimmier is simply that, from both the player and level designer's point of view, the purpose of the shimmier is to carry a lemming from point A to point B, and then stop (optionally, with the player having the choice of stopping the shimmier half-way with a walker or bomber, if one is provided). The bouncing shimmier fundamentally acts against what the skill is designed to do.

WillLem

Quote from: Crane on June 05, 2023, 03:52:09 PM
While being too deeply concerned with backward compatibility does indeed hamper development, outright dismissing it is quite disrespectful and callous

My quote literally says "this isn't to be dismissive or inconsiderate of the work that has gone into the many fantastic NL packs over the years". My own content is counted along with everyone else's in this equation; I'm not going to base any decisions on whether my own packs would be broken either.

The thinking here is not so much a push away from existing content than it is a pull towards new gameplay opportunities. It's absolutely nothing personal against anybody's content, including yours. Besides, anything that's worth converting will eventually be converted, either by the author themselves or by players who want to see their favourite existing packs in SuperLemmix; in fact, it's already happening!

EDIT: FWIW, Lemmings Cranium looks absolutely awesome and I will definitely be checking it out at some point :thumbsup:

Quote from: Crane on June 05, 2023, 03:52:09 PM
Personally I feel a balance between the two is better.

Perhaps you're right, but I would still need something more than just "it breaks existing levels" or "it's the way it's always been" to make an absolute decision. If these arguments were coupled with substantial reasons why the behaviour itself shouldn't be changed, more from a conceptual or even aesthetic point of view, then they'd hold more weight.

Quote from: Proxima on June 05, 2023, 04:38:07 PM
Back to the shimmier: my first observation is that the existing behaviour (continue or fall, depending on step height) is obviously simpler than the proposed behaviour of continue, fall or turn depending on step height. Simplicity in skill behaviour is desirable

I agree here - having 3 rules instead of 2 does perhaps add unnecessary complexity to the skill that it doesn't need, especially given its already fairly extensive range of interactions with other skills. It's actually the one thing that's causing hesitation from my point of view.

Quote from: Proxima on June 05, 2023, 04:38:07 PM
It also doesn't feel right that a non-permanent skill can continue for ever.
...
the purpose of the shimmier is to carry a lemming from point A to point B, and then stop ... The bouncing shimmier fundamentally acts against what the skill is designed to do.

Regarding the first comment here: OK, yes, maybe non-permanent skills shouldn't have permanent properties; it does feel slightly out of place. Could the Shimmier perhaps be an exception given that it's a movement-based skill, though? Or even, is it akin to using construction-based skills or Blockers to continue a Basher/Miner's path indefinitely?

Regarding the second comment: we have an opportunity to re-purpose the skill. What we need to be interested in is reasons why it should or shouldn't be re-purposed. With that said, I'm fairly convinced by now that we probably shouldn't change the behaviour for Shimmiers, but what about Jumpers?

Crane

Sorry if I came off as harsh.  I admit I thought it was an update for NeoLemmix rather than SLX (it helps if I read the label of the board that this topic is under!)

I agree that "it breaks existing levels" or "it's always been that way" are poor reasons to deny something.  Stagnation in the name of nostalgia is never a good thing.

My usual fallback when met with such a conundrum is to try to appeal to logic.  For example, to me, jumping face first into a wall is an inelastic collision that breaks all forward inertia and so the lemming should just fall down unless they have the skill to scale said wall (i.e. a Climber).  When it comes to the Shimmier, besides the increased complexity of terrain interaction, I will have to go by the game's internal logic in order to avoid appealing to the "feel" of a skill.  Let's look at the order of precedence of actions.  The impression I get is that when just walking (or blocking), the first check is to see if there's terrain under the lemming's feet - if not, they fall; any concern about walking into a solid object is secondary.  With the Shimmier it's a bit more complicated because they're using a skill that specifically negates falling; however, if they come across terrain they can't traverse, like it increases or decreases in height too quickly, I feel this order should remain... fall check before turning check (which means falling each time unless there's terrain directly under their feet, in which case they become a walker).

(Of course, the fall check isn't the highest priority... that would be object interaction and blockers in that order.  Note that I haven't studied the source code and I don't know if that is the actual order of precedence, but it's what I've intuitively observed from the game)

WillLem

Quote from: Crane on June 06, 2023, 12:32:39 AM
I admit I thought it was an update for NeoLemmix rather than SLX
...
I agree that "it breaks existing levels" or "it's always been that way" are poor reasons to deny something

Well, that explains why you felt particularly ruffled by this topic!

It did make me re-think whether I should be so inflexible regarding existing content though, so... maybe that's a good thing.

Quote from: Crane on June 06, 2023, 12:32:39 AM
With the Shimmier ... if they come across terrain they can't traverse ... I feel this order should remain... fall check before turning check

Yes, this seems to make sense. I'm about 60 - 40 on it at the moment. The next update will keep existing behaviour, but I'll keep the discussion open.

Regarding Jumpers though, I honestly can't help but feel that bouncing off the wall still makes more sense; it's a dynamic action that ought to have an equal and opposite reaction.

WillLem

OK, in the absence of any more replies (and so I can get an update out over the weekend), the current decision is:

:lemming: Shimmiers will remain as they currently are, but with 1 extra pixel's grace - they'll fall if they hit an obstacle that sticks out (>= 3px) from the terrain they're currently Shimmying. This gives the skill a little bit more flexibility, but ultimately retains the transition to Faller rather than any proposed turning behaviour.

:lemming: Meanwhile, Jumpers will bounce from a wall unless they are a Climber or a Slider, in which case they'll prefer those actions.

Think of this as an experimental/trial update to see if we like this behaviour, rather than a permanent fix. Personally, I think it's somewhat better this way in that it affords these skills more range and versatility, but it could also add potential complications that we don't want. Let's have a play with it for a bit and see what we think.

Implemented in Commit b147636d2