Author Topic: [SUG][SKILL - SWIMMER] Exit transition from ceiling water  (Read 4278 times)

0 Members and 1 Guest are viewing this topic.

Offline WillLem

  • Posts: 3402
  • Unity isn't sameness, it's togetherness
    • View Profile
[SUG][SKILL - SWIMMER] Exit transition from ceiling water
« on: November 04, 2020, 07:20:07 PM »
At the moment, Swimmers can exit a pool of water by climbing out via a vertical piece of terrain, or walking out via a diagonal piece of terrain (i.e. one that's already walk-uppable by a regular lem).

I suggest that the same be possible for lems swimming through upside-down water; if they reach a diagonal slope, they are carried out of the water the extra pixel and transition to a faller. Hitting vertical terrain can of course turn them around, as normal (unless they're a Climber, in which case they'd climb vertically as far as they can anyway).


Offline namida

  • Administrator
  • Posts: 12399
    • View Profile
    • NeoLemmix Website
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #1 on: November 05, 2020, 07:30:27 AM »
No. Upside down water is still just water, and it will function exactly the same way as any other water.
My Lemmings 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)

Offline Proxima

  • Posts: 4570
    • View Profile
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #2 on: November 05, 2020, 08:05:31 AM »
WillLem should have mentioned what the current behaviour actually is so that we have a point of comparison.

I just checked. A swimmer in water hitting a 45 degree slope will slide down it until they reach the bottom of the water object, and then will turn round.

To me, this feels really weird -- I would expect them to fall out at that point. Doesn't matter whether the water is upside-down or not (as namida says, flipping the water is purely aesthetic; from a game-mechanical point of view it is still a rectangle of water pixels)

Offline Strato Incendus

  • The King of Shimmiers (crowned by Flopsy ;D )
  • Posts: 1754
  • #RIP Spearer/Grenader (2020 - 2021)
    • View Profile
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #3 on: November 05, 2020, 02:01:46 PM »
This is indeed something I was also confused about when I first discovered it while making my very first pack, Paralems - and one of the reasons why the level "Skies aflame" (which happens to have upside-down water, but as namida and Proxima have said, that doesn't affect its functionality) requires a Basher at the end to get the Swimmers out of the water, instead of them falling down at the bottom of the water area.

Especially when designing levels with the Speedy-Eggbert tilesets by Jaimie (Techno and House), this is confusing, because in the actual game Speedy Eggbert, falling out of the water when you reach the bottom is exactly what happens.

However, I'm not sure how many levels would be affected by this if the behaviour were changed now. My level "Skies aflame" would be one example (though I'd say that particular level would change for the better, since that's what I originally wanted). I can't name any other examples off the top of my head, though I'm sure there will be at least a few.
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

Offline namida

  • Administrator
  • Posts: 12399
    • View Profile
    • NeoLemmix Website
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #4 on: November 05, 2020, 05:40:02 PM »
Ah I see.

On one hand, I'm not worried about breaking content because this is obviously a bug, and NL has never made any effort to preserve levels (or other content) that exploits obvious bugs.

On the other hand, not really sure that we want to encourage levels where we have swimmers falling out the bottom of water, which is only marginally more logical anyway.

At any rate, this is a 12.11 or 12.13 fix if any change does occur, not 12.10 (or 12.12). So for now, I'll leave this open to be discussed.
My Lemmings 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)

Offline WillLem

  • Posts: 3402
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #5 on: November 06, 2020, 01:10:32 AM »
On the other hand, not really sure that we want to encourage levels where we have swimmers falling out the bottom of water, which is only marginally more logical anyway.

I can see what you mean: it's conceivable that a Swimmer realises they have reached the bottom of the water area, and so swims back up rather than allowing themselves to drop out of the bottom. However, if they have been forced to descend through the water by a slope (in the same way that a slope can force them up out of the water), then perhaps they should drop out. That would in fact be more consistent with the way that the top edge of a water trigger works, and would be another useful way to allow Swimmers to exit the water.

Regarding Swimmers falling out of the bottom of the water from a design point of view, I suggest that this is really no different from allowing lemmings to fall at all; it's analogous with a walking lemming reaching the edge of a platform, but in this case it's a swimming lemming reaching the bottom of the water. Figuring out ways to stop it from happening could also make for decent puzzles, and could also help to raise the profile of the Swimmer skill in general (which is really what my main concern is here).
« Last Edit: November 07, 2020, 02:31:28 AM by WillLem »

Offline Strato Incendus

  • The King of Shimmiers (crowned by Flopsy ;D )
  • Posts: 1754
  • #RIP Spearer/Grenader (2020 - 2021)
    • View Profile
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #6 on: November 06, 2020, 06:23:00 PM »
Well, I assume this is just an issue referring to the Swimmer's position trigger:

While the trigger is inside water, the lemming will always try to move to the top of the water area.
While the trigger area is outside the water / in the air, the lemming will be a Faller.

Thus follows:

If the slope never causes the position trigger to leave the water at the bottom of the trigger area, then the lemming should indeed not fall, but turn around and go back up, as the water area would force him to do, and as it is right now.

If however the slope causes the position trigger to leave the water at the bottom of the trigger area, the lemming should automatically turn into a Faller.
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

Offline namida

  • Administrator
  • Posts: 12399
    • View Profile
    • NeoLemmix Website
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #7 on: November 06, 2020, 06:38:10 PM »
To me, that sounds like two mutually exclusive behaviors, so perhaps I'm misunderstanding what you're saying. Could you make a visual example?
My Lemmings 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)

Offline WillLem

  • Posts: 3402
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #8 on: November 07, 2020, 02:02:47 AM »
Could you make a visual example?

Examples 1 and 2 show current Swimmer behaviour, Example 3 is what we're suggesting could happen when a Swimmer's trigger area is forced to descend completely below the water by at least 1px:



At present, the Swimmer's trigger area cannot be forced to descend below the water in this way; as soon as the trigger hits the bottom of the water, the lem simply turns around and carries on Swimming in the opposite direction. My suggestion is that any slope which descends to the very bottom of the water trigger can be used to force the Swimmer to also descend below the water and transition to Faller. If the slope does not descend below the water (as per Example 2), then the Swimmer continues in the same direction.

I think the confusion has perhaps come from what Strato said about the Swimmer turning around and going back the other way if the slope does not descend to the bottom of the water; this is not actually what I'm suggesting. Any slope which doesn't descend to the very bottom pixel of the water's trigger area should be traversable by a Swimmer (again, as per Example 2). They would only turn around if the bottom of the slope becomes a vertical wall whilst still within the water's trigger, like this:



EDIT: To be extra clear, the base of the slope would have to be touching the very bottom pixel of the water trigger (or below) in order for the Swimmer's trigger to drop below the water. In other words, Swimmers will always try to go past the end of a slope if they can. Only 2 things would stop them from doing so: a) the slope touching the bottom edge of the water trigger, which causes the lem to exit the water and transition to Faller, or b) the slope ending with a vertical wall whilst still within the water trigger, which causes the lem to turn around as usual

EDIT 2: To be extra extra clear, in these examples, "vertical wall" simply means any vertical terrain currently not traversable by a Swimmer; I'm not sure what the exact terrain height has to be in order for the a Swimmer to not continue past it, but this of course should remain the same. The only change being suggested is that Swimmer triggers be allowed to drop below water if forced to do so by sloping terrain.
« Last Edit: November 25, 2020, 07:18:56 AM by WillLem »

Offline WillLem

  • Posts: 3402
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #9 on: November 25, 2020, 04:51:28 AM »
Quick bump for this - thoughts?

Offline namida

  • Administrator
  • Posts: 12399
    • View Profile
    • NeoLemmix Website
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #10 on: November 25, 2020, 05:45:24 PM »
I need to take a proper look at it at some point before I give further input. However, it is on my list as something to look at before V12.11 is released: https://www.lemmingsforums.net/index.php?topic=5173.0
My Lemmings 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)

Offline WillLem

  • Posts: 3402
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #11 on: November 26, 2020, 05:51:29 AM »
Brill :thumbsup:

Offline IchoTolot

  • Global Moderator
  • Posts: 3612
    • View Profile
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #12 on: December 10, 2020, 11:56:31 AM »
I just looked at the situation and it seems to me that the rule that keeps the lemming inside the water's trigger area at the top works the same way at the bottom only this time the lemming can't step out of the water pit as he cannot step downwards.

So simply put it this way: To get outside of a pit the lemming seems to need to step out of it. He can do that at the side of a water pit (or the top when there is a ramp leading into the water), but not the bottom as he cannot step downwards. This leads to the turn as a result.

So this seems consistent with the rules in game to me, but I cannot deny it looking a bit awkward. Well, the whole concept of upside down water at the ceiling is awkward. :P

That leaves me with two points on this:

1.) I would not change the behavior if the fixing would cause other behaviors to change in physics as well as this is a VERY niche situation and changing base behaviors at this point to address extremely rare situations seem counterproductive to me as this it not really gamebreaking. (Just a bit clunky)

2.) I slightly tend towards a change though when this can be fixed with a few special "upside-down water" checks that don't affect other behaviors. As this still seems awkward to me even if it should be in line with the current physic's logic.

Offline Proxima

  • Posts: 4570
    • View Profile
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #13 on: December 10, 2020, 12:05:54 PM »
As I pointed out earlier, the weird behaviour occurs with any water, not just upside-down water.

Offline WillLem

  • Posts: 3402
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #14 on: December 10, 2020, 02:27:57 PM »
but not the bottom as he cannot step downwards... So this seems consistent with the rules in game to me

It's not about the lem stepping out, it's more that I think the lem should fall out. At the moment it's as if some invisible force field is stopping the lem from falling out of the bottom of the water trigger.

I slightly tend towards a change though when this can be fixed with a few special "upside-down water" checks that don't affect other behaviors.

As Proxima said, this isn't really about "upside-down water" either (although that is, admittedly, the situation where this physics bug is most likely to be noticed). The behaviour occurs in any water trigger area, whether upside-down or not.

If this is fixed, it will make the Swimmer a far more useful skill.

Offline IchoTolot

  • Global Moderator
  • Posts: 3612
    • View Profile
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #15 on: December 10, 2020, 02:55:05 PM »
Quote
As I pointed out earlier, the weird behaviour occurs with any water, not just upside-down water.

Quote
As Proxima said, this isn't really about "upside-down water" either (although that is, admittedly, the situation where this physics bug is most likely to be noticed). The behaviour occurs in any water trigger area, whether upside-down or not.

Upside-down water = water. For the game there is no difference as only the trigger area matters.

So it doesn't really matter what description I use here, it's only as WillLem stated the most obvious case where this comes into play.

Quote
It's not about the lem stepping out, it's more that I think the lem should fall out. At the moment it's as if some invisible force field is stopping the lem from falling out of the bottom of the water trigger.

I think you missed the point of my assumption then. In order to fall out the lemming needs to step outside the water's trigger area first. So it's no invisible force field in that situation, but rather his inability to step downwards outside of the trigger area as lems cannot step downwards.

Quote
If this is fixed, it will make the Swimmer a far more useful skill.

So a behavior that went unnoticed/unused for several years shall elevate the swimmer skill to new heights. I highly doubt that! It's still one VERY niche situation. :8():


But again, I tend towards a change though when this can be fixed with a few special "exit water from the bottom" (maybe this sounds better ;)) checks if these don't affect other behaviors.

Otherwise I think it's just not worth the trouble. :P


Offline WillLem

  • Posts: 3402
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #16 on: December 10, 2020, 04:42:43 PM »
Upside-down water = water. For the game there is no difference as only the trigger area matters.

I know; that's what I'm saying as well. We don't disagree here! :D

it's no invisible force field in that situation, but rather his inability to step downwards outside of the trigger area as lems cannot step downwards.

As I said, it's not so much that the lem should step out, it's more that the lem should fall out.

I tend towards a change though when this can be fixed with a few special "exit water from the bottom" (maybe this sounds better ;)) checks if these don't affect other behaviors.

Please can you explain what you mean here. It sounds like a good idea, but I just want to make sure I understand :lemcat:

Offline IchoTolot

  • Global Moderator
  • Posts: 3612
    • View Profile
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #17 on: December 10, 2020, 04:59:44 PM »
Quote
As I said, it's not so much that the lem should step out, it's more that the lem should fall out.

Yes, yes, again I know exactly what you mean. But it seems like the current physics implementation needs the lemming to step out first and therefore he will not transition to a faller as he can't step out at the bottom. That's what I'm trying to explain about my suspicion about the current physics.

I am not trying to state what should happen there. I am trying to analyse and state my take on what is currently happen physics wise.

Quote
Please can you explain what you mean here. It sounds like a good idea, but I just want to make sure I understand

I cannot do that. Here will be the part namida needs to state what's the exact situation.

Again, all that I'm doing is trying to analyse what is happening here, why it happens and state my opinion how it could be handled. ---> Point 1.) and 2.) in my first post here.

As I just "guessed" the inner workings here I have no input if this is possible and how exactly the check needs to be.

It will probably be something like: "if a downwards ramp is before me and the water area ends under my position I move further downwards instead of forward into the wall". But again how the exact checks need to be is not in my grasp.


Offline namida

  • Administrator
  • Posts: 12399
    • View Profile
    • NeoLemmix Website
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #18 on: December 10, 2020, 05:25:04 PM »
Looking at the code, it appears that the check for "does the wall continue" and "does the water end" is lumped into a single check, presumably intended for cases where a wall continues beyond the bottom of the water. So I would say this is indeed a bug.

However, this is Nepster's code, so I don't know if this check is meant to avoid some other bug situation or if it's just an oversight...
My Lemmings 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)

Offline namida

  • Administrator
  • Posts: 12399
    • View Profile
    • NeoLemmix Website
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #19 on: December 10, 2020, 05:37:48 PM »
Swimmer code as it currently stands. I have bolded the line I suspect is responsible for this.

IchoTolot has dug up an old related topic by Nepster, which leads me to think this might actually have been an intentional design decision (though this is based only on reading the topic - I cbf digging out an old NL version to examine the level).

Spoiler (click to show/hide)
My Lemmings 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)

Offline WillLem

  • Posts: 3402
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #20 on: December 10, 2020, 07:33:06 PM »
So... what's the ruling on this?

My thoughts, simplified as much as possible:

1) The Swimmer is a very under-powered Skill as it stands. The ability to exit water from underneath would double its possible use-cases (no, a Shimmier is not comparable because a Shimmier can only exit terrain from underneath; whereas if what I'm proposing gets passed, Swimmers will be able to exit the water in both directions).

2) It would make physical sense. Water is a soft obstacle, and if the body of water were in a zero-gravity environment, things would be able to exit it from any direction.

Swimmers need a good boost. If you pass this one, I promise I'll never mention Splat/Anti-Splat Fields again! ;P

Offline namida

  • Administrator
  • Posts: 12399
    • View Profile
    • NeoLemmix Website
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #21 on: December 10, 2020, 07:36:03 PM »
My thought is basically that I would like to make the change, but I need to be confident that nothing is going to break as a side effect. For this, I need to spend some time reviewing the code to firstly understand why it's written the way it is, and secondly see if/how I can adjust it to have logical behavior in this situation, without undesirable side effects.

To be clear, by "nothing is going to break", I am primarily thinking in the sense of "will it introduce other bugs". Although if there are levels that would be broken by this, that is absolutely a factor to take into account too.
My Lemmings 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)

Offline namida

  • Administrator
  • Posts: 12399
    • View Profile
    • NeoLemmix Website
Re: [SUG][SKILL - SWIMMER] Exit transition from ceiling water
« Reply #22 on: January 18, 2021, 08:03:55 PM »
Implemented the suggested behavior in commit c552b4c.
My Lemmings 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)