[Potential Bug] Fencers no longer turn around when hitting steel

Started by Strato Incendus, August 24, 2024, 11:59:23 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Strato Incendus

Another level that broke in Lemmings Hall of Fame is "Dawn of victory" - again, it broke in the very beginning for a different reason than the one I'm opening this thread.
And once again, while trying to merely recreate the solution, I ran into another nasty surprise that barred me from completing it:

Fencers no longer seem to turn around after hitting steel (or perhaps, their hitbox has been moved, so that they no longer actually hit the steel in the first place).
This required me to lower the save requirement on the level, since it's no longer possible to save the fencing Climber at the end (level and replay attached).

Is this behaviour intended (part of the physics changes)? Or another potential bug?




If it's an intended physics change, I don't really see why it would suddenly be introduced for the final version of NeoLemmix, after years of this working differently.
???
I was almost ready to release Lemmings Hall of Fame, but if there's more of this, the almost-release coinciding with the release of NeoLemmix 12.13 is now going to delay it even further - much further.

Especially the assumed minor change in Shimmier physics which I concluded from another level that broke (where the timing of the Shimmier assignment is now off, requiring me to resolve the whole level) is likely to affect a bunch of my levels, given how much I've been using Shimmiers.

(And don't even get me started on fixing Lemmings World Tour and Lemmings Open Air... :evil: The former for its sheer size, despite the lack of Shimmiers; the second for its abundance of Shimmiers.)
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


WillLem

Yes, it's the same bug. I'll be fixing it in SLX at some point, and the fix will most likely be portable to NL.

namida

If the behavior differs from 12.12 to 12.13, it's a side effect of another fix and is eligible to be fixed in a further update. (If on the other hand the exact same thing happens in 12.12, it will not be fixed at this point, as the window to report 12.12 bugs closed when 12.13 released.)

However, I would like to stress that this is exactly why the RC phase is a thing - so that this sort of stuff can be caught before making it into a stable release. If an issue is caught in RC, it will likely be fixed before going stable, and in the meantime the current stable version without the bug would remain. If it isn't caught until stable, it means it won't be fixed until another major update, and in the meantime is in a stable version.
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)

Strato Incendus

Ah, okay, so I guess I should keep my old replay files in case this behaviour "changes back".
I still have them in the Dropbox folder, though I have deleted them from the main local replay folder in NeoLemmix 12.13.
(I've kept my NeoLemmix 12.12 folder around, though, so they should also still be in there.)

QuoteHowever, I would like to stress that this is exactly why the RC phase is a thing - so that this sort of stuff can be caught before making it into a stable release.

Yeah, I've been focussing on Lemmings: Hall of Fame lately, for which I've been using the latest stable version 12.12 thus far.

But since this is about a core skill, I'm surprised nobody else who toyed around with RC 12.13 ran into this behaviour?
I think @kaywhyn even mentioned having playtested Lemmings: Hall of Fame in RC 12.13 on his computer?

It's not like the Fencer is a niche-use thing, like radiation / slowfreeze used to be, or the Ancient tileset, or anything else that somehow only I ended up using. :evil:
Sure, there was a time when most of the larger packs had a "bias" towards the classic 8 skills, but that time is long gone.
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

Quote from: Strato Incendus on August 25, 2024, 05:14:53 PM
I think @kaywhyn even mentioned having playtested Lemmings: Hall of Fame in RC 12.13 on his computer?

No. All of my replays I've sent you were done on NL v12.12.5. I just wanted to know if you were aware of the NL v12.13 RC build had been released in the meantime, a few months before you sent me the latest LHOF update for pre-testing. You said in response to my PM that you were. Like you, I normally don't bother with the experimental or the NL RC builds. However, now that v12.13 has gone stable, I will be switching over to that for the next batch of replays to send you. IIRC there's 10 levels that need resolving with the LHOF update you sent me, but there might be more once I run a MRC on them first.

edit: Nah, none of my replays broke other than the levels you updated to fix my backroutes. There's 9, so I'm not sure how I got 10 levels that need resolving. Maybe I miscounted?

Also, I checked your Platinum 9 replay, and yup, I can confirm it's the same bug report Crane submitted that Proxima linked to in his post above. So, it would seem that Crane was first to notice it since v12.12.5 and that it seems to entirely depend on the layout. However, in my replay, I was able to get the fencer to turn around on the steel by assigning it a bit further away from the wall instead of up real close like in yours. Thus, there is indeed some "inconsistency" on when the fencer does or doesn't hit steel. So, that simply means you just need to tweak the position of the fencer assignment and everything is good there! ;)
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

namida

We do still have a replay that worked on 12.12.5 and not on 12.13, so I still want to at least take a closer look. There's also the fact, if it is indeed the same bug, that it was reported at a valid time but then dismissed due to thinking the scope was very minor; if it's more significant than initially thought, it may be worth reopening.

Strato, could you PM me the replay that breaks on 12.13 along with the level? Alternatively, if you don't want to disclose the level, can you recreate the situation in a test level?
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)

kaywhyn

Quote from: namida on August 25, 2024, 07:33:37 PM
Strato, could you PM me the replay that breaks on 12.13 along with the level? Alternatively, if you don't want to disclose the level, can you recreate the situation in a test level?

Both the level and the replay are in the OP! :P
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

namida

I was on my phone, so was only looking at the latest posts. :P Will check it out.
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)

kaywhyn

Quote from: namida on August 25, 2024, 10:25:20 PM
I was on my phone, so was only looking at the latest posts. :P

Heh, same thing happens on a PC :P Occasionally, I think I have had cases where it sometimes starts me at the very beginning instead of bring me to the most recent post. When it happens doesn't seem to have rhyme or rhythm though.

Just a guess of mine, but the bug likely probably has to do with the fencer checks where sometimes it will detect steel, hit it and then turn while other times it doesn't detect steel, which is unexpected. I didn't check with Strato's replay, but for this particular level I can see this happening when the fencer removes a lot of terrain in one stroke before encountering open air which apparently is enough of a distance from the steel to make the fencer stop.

My replay for the level is probably the opposite case, where for example there was probably only a pixel of wall left to fence through before encountering open air in the next destruction stroke, meaning the fencer is now therefore much closer to the steel when breaking through all the terrain. Thus, it detects something to keep going and eventually hits the steel shortly after.

Almost sounds like the basher/slider bug I myself reported, as a matter of fact, where it's probably the same thing of if the fencer needs to take 2 or more strokes before encountering steel after breaking through to open air, then it will stop before it gets a chance to hit steel and turn around.

I will wait for your analysis of what's happening here, but that is my guess as to why the fencer sometimes encounters steel and why it doesn't sometimes. In the meantime, the topic's title can be changed since it is not entirely accurate. The fencer does turn around when hitting steel as indicated by the "chink" sound to let the player know when that has happened, just the case of when it doesn't hit steel when the player expects the fencer to is what's unexpected.

edit: Ok, I dug a little deeper and found the following

- Right up against the wall: Doesn't hit steel

- 1 pixel away from the wall: Hits steel and turns around

- 2 pixels away from the wall: Doesn't hit steel

- 3 pixels away from the wall: Doesn't hit steel

- 4 pixels away from the wall: Doesn't hit steel

- 5 pixels away from the wall: Does hit steel

Repeats with the same results in this cycle (meaning, 6, 7 and 8 pixels away he doesn't hit steel but 9 pixels away he will) until he's too far away to fence through the wall. So, this means the fencer hits steel only once out of every 4 possible positions. 
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

The replay in the opening post is the functional one for 12.13. The one from 12.12 that broke in the new version is attached now.
The problem is that this replay already breaks so early in the level that you won't see the rest of it.
You'll have to solve the rest manually, as demonstrated in the replay in the starting post.

I've also attached the 12.12 version of the level, with the "save all" requirement. Run the attached replay on this in NeoLemmix 12.12, and you'll see the worker lemming turn around at the end, once he hits the steel. This no longer happens in 12.13, which is why I had to lower the save requirement by 1.
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

@Strato

Ok, I checked with both 12.12.5 and 12.13 with the replay in your most recent post, and the fencer turns around in both cases (I made sure to assign the fencer at the same spot as when I ran it in the 12.12.5 player). As mentioned, the fencer does turn around, but only once in every 4 possible consecutive frames as indicated by my post here:

Quote from: kaywhyn on August 26, 2024, 04:56:23 AM
edit: Ok, I dug a little deeper and found the following

- Right up against the wall: Doesn't hit steel

- 1 pixel away from the wall: Hits steel and turns around

- 2 pixels away from the wall: Doesn't hit steel

- 3 pixels away from the wall: Doesn't hit steel

- 4 pixels away from the wall: Doesn't hit steel

- 5 pixels away from the wall: Does hit steel

Repeats with the same results in this cycle (meaning, 6, 7 and 8 pixels away he doesn't hit steel but 9 pixels away he will) until he's too far away to fence through the wall. So, this means the fencer hits steel only once out of every 4 possible positions. 

You had the fencer 1 pixel away from the wall which as mentioned does have him turn when hitting steel. I have confirmed that all the above hold for 12.12.5 as well. So, it seems that this has been present for a while but no one's managed to catch it save for Crane who reported it last year.

edit: Your replay from last week has you assigning the fencer right up against the wall, again matching what I observed with him not turning around depending on the pixel he was assigned the skill.

Also, @Strato I discovered something else with the fencer. Very easily seen in your level Valley of the Kings. Run my replay I sent you on both 12.12.5 and 12.13 and watch up through the first fencer assignment. On the former, notice that the fencer is still in the fencer animation for a few extra frames and therefore he slides at the end at the 28 second mark. However, in the latter, the fencer stops being in the animation once he breaks through the wall completely and so he finishes sliding at the end at the 27 mark instead. My guess here is that in the process of fixing this bug https://www.lemmingsforums.net/index.php?topic=6566.0 this also handled the fencer case when the slider is the one doing it.

Needless to say, there were several LHOF levels I needed to tweak skill assignments in because of the fencer/basher assignments when the Lemming is a slider. Granted, it was annoying, but some members needed to tweak their replays as well due to the slider/basher bug being fixed as well. Non-sliders are unaffected by this.
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

Wow, thanks for taking the time to track this down, @kaywhyn! :lem-mindblown: :thumbsup:

I guess this would have been impossible to find out without you assigning the Fencer at the exact same frame - since my replays broke so early in the solution (due to the change in Slider physics), I had to recreate the rest manually - and apparently, I kept assigning the Fencer either 2, 3, or 4 pixels away from the wall this time.

QuoteNeedless to say, there were several LHOF levels I needed to tweak skill assignments in because of the fencer/basher assignments when the Lemming is a slider. Granted, it was annoying, but some members needed to tweak their replays as well due to the slider/basher bug being fixed as well. Non-sliders are unaffected by this.

Thanks for pointing this out. If the Fencer didn't change after all, and the changes are to the Slider, specifically, this means Lemmings World Tour and Lemmings Open Air should be unaffected, right? Because neither feature the Slider (Hall of Fame is in fact the first pack I release that is going to feature it).

I was worrying the changes might affect the Shimmier, since that one appears a lot in Open Air, of course (and not in World Tour, because it wasn't available back then).
That concern arose from the observation that my "Devil's dance floor" replay broke on the transition from a Slider to a Shimmier - and this particular replay was the first one I caught breaking.
But if that's due to the Slider, not due to the Shimmier, then I won't have to go back to fix the other packs.

Of course, I'll still do a mass replay check to catch any random replay breaks, but at least now it seems there are no systematic replay breaks to be expected for World Tour and Open Air. :crylaugh:
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

You know the things that have changed are listed in the release topic, right? ;)

Quote###################
# Fixes - Physics #
###################
> Fixed bug: A basher who is also a slider will continue for more strokes than he should if reaching an edge while bashing.
> Fixed bug: A builder cannot be assigned when the lemming's Y coordinate is 1 (ie: the highest position it can be without being considered outside the level).
> Fixed bug: A climber who falls after hitting his head on an overhang, where the fall height is exactly the minimum fall distance that is not survivable, may survive the fall if they started climbing from higher or lower than the floor they land on (due to terrain alterations while he's climbing or wall-grabbing as a Jumper).
> Fixed bug: A lemming moving multiple pixels in one frame may pass through thin trigger areas without being affected.
> Fixed bug: An ascender can get stuck in terrain (which he may then be able to step up through if thin enough) under certain circumstances.
> Fixed bug: A setup involving blockers or one way fields, stackers, and walkers could be used to move a lemming through walls.
> Fixed bug: A slider could be assigned a shimmier as they reach the bottom of a wall and turn around.
> Fixed bug: A slider, in certain setups, may land on a pixel behind him (and turn around) even when no wall is present to prevent him walking the way he's already facing.
> Fixed bug: Blockers' detection of other blockers when assigning was slightly incorrect and could lead to valid assignments being prevented in some cases.
> Fixed bug: Builders and platformers going through a teleporter cannot always be followed by other lemmings.
> Fixed bug: Some object checks don't behave as they should immediately after teleporting.
> Fixed bug: Some Slider behaviors that should also be applied to the Dehoister weren't.
> Fixed bug: Stoner-Ohnoers can enter exits without having ground underneath them.
> Fixed bug: A jumper going through a teleporter crashes the game.
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)

Strato Incendus

Sure, but sometimes such fixes have unintended consequences for other skills, rather than those other skills receiving direct intentional fixes. ;) The Slider fixes could have inadvertently affected the timing of Shimmier and/or Fencer assignment.

The Jumper going through a teleporter didn't crash the game for me so far — I have one level in Lemmings Hall of Fame that requires this, and it has existed for quite a while. Perhaps the crash was dependent on other additional context factors that weren't present in the level in question.
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