Author Topic: NeoLemmix V12.11.0-RC Released [RC2 update released]  (Read 9652 times)

0 Members and 1 Guest are viewing this topic.

Offline namida

  • Administrator
  • Posts: 12398
    • View Profile
    • NeoLemmix Website
NeoLemmix V12.11.0-RC Released [RC2 update released]
« on: January 18, 2021, 09:34:54 PM »
The Release Candidate build for V12.11.0 is now here.

Known issues (click to show/hide)

Download (V12.11.0-RC2, editor V1.34 included): https://www.neolemmix.com/download.php?id=490

This download only includes the Orig and OhNo styles, plus "default", "xmas" and "special". You can use the in-game Style Manager (in the Settings) to download other styles, or you can download styles manually:
- All styles: Not currently available for V12.11-RC; please use style manager or individual manual downloads.
- Any individual style: https://www.neolemmix.com/styles/12.11/XXXXXXXX.zip (replace XXXXXXXX with the style's name, eg: https://www.neolemmix.com/styles/12.11/orig_fire.zip for orig_fire)

As always, it is recommended you install the RC build to a new folder, rather than trying to use it in the same folder as your existing version of NeoLemmix. You can copy across your hotkeys file (from the Settings folder) after running the RC build for the first time.


Changelog (from V12.10.3) (click to show/hide)


« Last Edit: February 07, 2021, 06:19:17 PM by namida »
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: 12398
    • View Profile
    • NeoLemmix Website
Re: NeoLemmix V12.11.0-RC Released
« Reply #1 on: January 18, 2021, 09:39:21 PM »
Just as a point of clarification - V12.11.0 replays can be loaded on older NL versions, though they lose their improved Cloner tracking outside of V12.11.
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: 12398
    • View Profile
    • NeoLemmix Website
Re: NeoLemmix V12.11.0-RC Released
« Reply #2 on: January 19, 2021, 06:23:04 AM »
One more feature coming in RC2: Aliases will be able to specify a size. This means that if you have two pieces which are currently just different sizes of each other, you can delete one and use aliases to point it towards the other (while maintaining the correct size).

Editor-side support is still needed for this.
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: 3345
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: NeoLemmix V12.11.0-RC Released
« Reply #3 on: January 19, 2021, 07:22:59 AM »
Exciting stuff! This looks like it's going to be the best update since 12.10! :lemcat:

I've been playing with the new Swimmer stuff, and I've found what might be a bug. A Swimmer encountering a downward slope exits the water (yay!), unless the water is positioned at the top of the level, and then they swim upwards and off the edge of the level...! This happens even if you put a ceiling between the water and the top of the level ???

This video shows the behaviour in action.

EDIT: After further investigation, it seems that there needs to be at least 7px of terrain between the water and the ceiling to prevent the Swimmer from "ascending" out. It doesn't matter how deep into the terrain the water trigger goes, and it only happens where the setup is at the very top of a level.
« Last Edit: January 19, 2021, 08:42:34 AM by WillLem »

Offline namida

  • Administrator
  • Posts: 12398
    • View Profile
    • NeoLemmix Website
Re: NeoLemmix V12.11.0-RC Released
« Reply #4 on: January 19, 2021, 09:59:49 PM »
Quote
I've been playing with the new Swimmer stuff, and I've found what might be a bug. A Swimmer encountering a downward slope exits the water (yay!), unless the water is positioned at the top of the level, and then they swim upwards and off the edge of the level...! This happens even if you put a ceiling between the water and the top of the level ???

This video shows the behaviour in action.

EDIT: After further investigation, it seems that there needs to be at least 7px of terrain between the water and the ceiling to prevent the Swimmer from "ascending" out. It doesn't matter how deep into the terrain the water trigger goes, and it only happens where the setup is at the very top of a level.

It's not a bug, keeping in mind that pixels outside the level area are always nonsolid and have no trigger effect. The lemming encounters a solid pixel at its current height, with a nonsolid pixel above it at a height to which it can ascend, so steps up (via Ascender if necessary). At this point it's outside the level boundaries, so dies.

To visualize it a bit better, look at the attached image. All three preplaced lemmings are swimmers - they don't have athlete colors purely because this screenshot was taken in the editor. (Or maybe I actually didn't make them swimmers, I'm genuinely not sure now, but that doesn't matter as it's just a screenshot.) The bottom-left one is not touching a level boundary. You'd expect him to swim to the edge, then step up onto the steel. The top-left one is just this exact same arrangement, but moved so that the top of the water / steel is touching the level boundary. You'd still expect the same here - he steps up, because it's the same setup, and only open space above. The only difference is that after stepping up he's outside the level, so dies.

That brings us to the top-right case, which can be a bit tricky - what you need to keep in mind is that everything outside the level area is always nonsolid and no trigger area. So, even though the water and steel are graphically cut off part-way, they don't extend beyond the boundary - they're cut off, and it's still empty space above. Thus, this situation is no different from the top-left one.

With that being said - this may not be a bug, but these kind of edge cases are exactly the place to be looking for bugs, so thanks for reporting it nonetheless. :)
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: 3345
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: NeoLemmix V12.11.0-RC Released
« Reply #5 on: January 19, 2021, 10:55:19 PM »
It's not a bug, keeping in mind that pixels outside the level area are always nonsolid and have no trigger effect. The lemming encounters a solid pixel at its current height, with a nonsolid pixel above it at a height to which it can ascend, so steps up (via Ascender if necessary). At this point it's outside the level boundaries, so dies.

I understand this, and I absolutely would expect this behaviour if there were no solid terrain above the Swimmer. But, in the example video, the lemming is stepping through solid terrain to ascend above the level, not simply stepping out of the water...

Offline Pooty

  • Posts: 359
    • View Profile
Re: NeoLemmix V12.11.0-RC Released
« Reply #6 on: January 19, 2021, 11:03:25 PM »
How about this?

This lemming in the image below is a swimmer. It drops into the water and begins to swim towards the exit. It dives down during the first downward slope, but it ascends on the second one and gets caught in the trap. Is this behaviour a bug?

I have also attached the level to this post so you may try it out.
SEGA Master System version
100% on 110/120 levels (92%). Other levels [Lemmings lost]:
Fun 03 [3], 06 [2], 18 [5]   
Taxing 19 [5], 27 [1], 28 [3]
Tricky 15 [5], 17 [2]
Mayhem 19 [7], 26 [10]

Offline namida

  • Administrator
  • Posts: 12398
    • View Profile
    • NeoLemmix Website
Re: NeoLemmix V12.11.0-RC Released
« Reply #7 on: January 20, 2021, 01:22:54 AM »
It's not a bug, keeping in mind that pixels outside the level area are always nonsolid and have no trigger effect. The lemming encounters a solid pixel at its current height, with a nonsolid pixel above it at a height to which it can ascend, so steps up (via Ascender if necessary). At this point it's outside the level boundaries, so dies.

I understand this, and I absolutely would expect this behaviour if there were no solid terrain above the Swimmer. But, in the example video, the lemming is stepping through solid terrain to ascend above the level, not simply stepping out of the water...

Take the exact setup you're talking about - water, followed by a wall 6px or less tall - and move it away from the top of the level. Do you expect the lemming to step up onto the top of the wall? (For reference, this is the same distance a walker can ascend.) If yes, then it is not a bug that it happens at the top of the level - because that's what's above the terrain there, empty space.

This lemming in the image below is a swimmer. It drops into the water and begins to swim towards the exit. It dives down during the first downward slope, but it ascends on the second one and gets caught in the trap. Is this behaviour a bug?

Again, this is tricky, because a walker in the same situation would be able to ascend the second but not the first. However, with this one, I do see why it might make sense to change the behavior here. What would you feel should happen in these alternate cases? (Assume that any pixel that's blue is water trigger area.)
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 Pooty

  • Posts: 359
    • View Profile
Re: NeoLemmix V12.11.0-RC Released
« Reply #8 on: January 20, 2021, 02:56:15 AM »
Again, this is tricky, because a walker in the same situation would be able to ascend the second but not the first. However, with this one, I do see why it might make sense to change the behavior here. What would you feel should happen in these alternate cases? (Assume that any pixel that's blue is water trigger area.)

Hmm... I'm starting to see why this may be a problem to fix. I would expect the lemming to dive in A, but B is less clear cut. My gut thought is dive again because the top of the ledge is not directly visible to the lemming, but I can easily imagine this breaking some existing content.
SEGA Master System version
100% on 110/120 levels (92%). Other levels [Lemmings lost]:
Fun 03 [3], 06 [2], 18 [5]   
Taxing 19 [5], 27 [1], 28 [3]
Tricky 15 [5], 17 [2]
Mayhem 19 [7], 26 [10]

Offline WillLem

  • Posts: 3345
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: NeoLemmix V12.11.0-RC Released
« Reply #9 on: January 20, 2021, 03:16:11 AM »
a swimmer... drops into the water and begins to swim towards the exit. It dives down during the first downward slope, but it ascends on the second one and gets caught in the trap. Is this behaviour a bug?

It's not a bug as such, since I understand what namida is saying now: the Swimmer treats the surface of the water exactly the same way as a Walker would treat terrain, and so ascends whenever they meet a vertical wall of </=6px.

The following picture illustrates what's happening:



However, it does feel like something different should happen when there is terrain immediately above and behind the Swimmer, so...

Again, this is tricky, because a walker in the same situation would be able to ascend the second but not the first. However, with this one, I do see why it might make sense to change the behavior here. What would you feel should happen in these alternate cases? (Assume that any pixel that's blue is water trigger area.)



Based on the above image, I would suggest that the large pink dot is where the Swimmer makes an additional terrain check that a Walker does not (necessarily).

So, in situations C and D, there is no terrain immediately above and behind the swimmer, so they ascend as normal (in the latter case, they would transition to Walker before doing so anyway). However, it does seem that examples A and B present situations that should not be navigable to a lemming mid-swim.

Physics-wise, I'd suggest that in these instances (even if the lem is a Climber-Swimmer); if there is terrain above them, they should dive if they can, or turn around if they cannot. "Diving" would, essentially, be the opposite behaviour to "ascending", which is what a Walker would do in these situations. The upright position of a Walker vs. the horizontal position of a Swimmer justifies the difference.

My gut thought is dive again because the top of the ledge is not directly visible to the lemming, but I can easily imagine this breaking some existing content.

Agreed, this tweak may cause potential for level breakage. However, since there have recently been other changes to Swimmer behaviour (specifically when they're also Climbers), maybe now is the time to make the change if at all.
« Last Edit: January 20, 2021, 03:22:22 AM by WillLem »

Offline namida

  • Administrator
  • Posts: 12398
    • View Profile
    • NeoLemmix Website
Re: NeoLemmix V12.11.0-RC Released
« Reply #10 on: January 20, 2021, 05:41:36 AM »
Again, this is tricky, because a walker in the same situation would be able to ascend the second but not the first. However, with this one, I do see why it might make sense to change the behavior here. What would you feel should happen in these alternate cases? (Assume that any pixel that's blue is water trigger area.)

Hmm... I'm starting to see why this may be a problem to fix. I would expect the lemming to dive in A, but B is less clear cut. My gut thought is dive again because the top of the ledge is not directly visible to the lemming, but I can easily imagine this breaking some existing content.

The thing is though: Both situations are the same. The lemming encounters a wall going upwards, and a slope going downwards, with a bit of an overhang above. The only difference is how far the overhang extends, but in both case it extends out further than where the lemming is stepping up.

The actual behavior here in turn, just ignores any overhang whatsoever, much in the same way a walker does when stepping up. Taking this into account, the two situations A and B are further the same thing as WillLem's C, as far as the Swimmer -> Ascender transition is concerned. While it has quite significant differences, the Swimmer is ultimately based on the Walker, which is part of where these behaviors come from.

(That does not mean it can't be changed; just explaining why it's how it is.)
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 Pooty

  • Posts: 359
    • View Profile
Re: NeoLemmix V12.11.0-RC Released
« Reply #11 on: January 20, 2021, 06:03:27 AM »
The thing is though: Both situations are the same. The lemming encounters a wall going upwards, and a slope going downwards, with a bit of an overhang above. The only difference is how far the overhang extends, but in both case it extends out further than where the lemming is stepping up.

That is fundamentally the reason why my belief is that both situations should give the same result.
SEGA Master System version
100% on 110/120 levels (92%). Other levels [Lemmings lost]:
Fun 03 [3], 06 [2], 18 [5]   
Taxing 19 [5], 27 [1], 28 [3]
Tricky 15 [5], 17 [2]
Mayhem 19 [7], 26 [10]

Offline WillLem

  • Posts: 3345
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: NeoLemmix V12.11.0-RC Released
« Reply #12 on: January 20, 2021, 06:20:44 AM »
the two situations A and B are further the same thing as WillLem's C, as far as the Swimmer -> Ascender transition is concerned. While it has quite significant differences, the Swimmer is ultimately based on the Walker, which is part of where these behaviors come from.

(That does not mean it can't be changed; just explaining why it's how it is.)

It's an interesting thing to have discovered, as I wouldn't have expected the two to be so closely linked, particularly because a Swimmer can move around within a water trigger area, whereas Walkers can only walk on the surface of terrain, unless they're tunnelling through it.

This, coupled with the horizontal/vertical orientation of the skills, consolidates my view that the two ought to have different behaviours when encountering the above situation. An overhead terrain check for Swimmers (as I suggested) may be one way to do it, but I'm not sure how it will affect other situations tbf.
« Last Edit: January 21, 2021, 01:41:07 AM by WillLem »

Offline IchoTolot

  • Global Moderator
  • Posts: 3608
    • View Profile
Re: NeoLemmix V12.11.0-RC Released
« Reply #13 on: January 20, 2021, 08:12:11 AM »
I don't think the lemming should always try to dive down.

I would expect him to go through small ceilings in such a situation, as he encounters a small overhang below (even if it's just a pixel).

I think the confusion comes from that an overhang of 1 pixels is already enough to trigger this, but I think you are underestimating a main point here: A swimmer always strifes to get UP and out of the water.

He will always go up if he has a chance and down only if there is no other way (no way to go up or step out). He does not want to dive.

Also I see quite a bit of breakage potential in such a change as stepping out of water surrounded by rougher terrain is quite a common situation.

Offline namida

  • Administrator
  • Posts: 12398
    • View Profile
    • NeoLemmix Website
Re: NeoLemmix V12.11.0-RC Released
« Reply #14 on: January 20, 2021, 06:43:47 PM »
Okay so ultimately - that's not a bug. It may be a bit surprising, but it's logical when broken down. And as such, this behavior will remain as-is.
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)