[FIXED] Lots of swimmer bugs [PLAYER] [BUGS]

Started by Nepster, March 28, 2016, 05:10:42 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Nepster

Here are quite a few bugs in the swimmer behavior. Because they are all caused by different lines in the code, I will only explain the unexpected behavior, but not its cause in detail. The small pillars in the test maps give the height of the trigger area of the water. Apart from the obvious exceptions, they do not interact with the swimmer.

SwimmerTest.lvl
1) Top right: Lem should fall into the gap, but does not. If one side would be solid, the swimmer would safely reach it and transition to walker.
2) Top left: When reaching the top water, there is one frame where the lemming jumps out of the water and is a faller! Lemmings are dolphins 8-)!
3) Bottom left: When reaching the terrain, there is one frame where the lemming is a faller!
4) Middle left: Here the miracle occurs: If one mixes the previous two setups, the bugs cancel and the swimmer correctly transitions directly to a walker :lem-mindblown:.

SwimmerClimberTest.lvl (all lemmings are here swimmers and climbers!)
1) Top: Swimmer correctly transitions to faller.
2) Upper middle: Swimmer transitions to faller. Expected would be to climb the pillar. This is due to the tendency to dive down rather than climb, even if there is no more water down there. --> Rule should be: Only dive if there is still water!
3) Lower middle: Swimmer climbs now correctly at the pillar.
4) Bottom: There is actually one pixel (exactly at lemming height), which is not checked at all for terrain! This lemming should transition to walker, instead of climbing.

namida

Okay, without looking too closely at your post, here's what I would expect to happen (when viewing in the editor, with trigger areas visible):

SwimmerTest.lvl
Top-Left Lemming: Swims all the way to trap, dies upon reaching trap trigger area.
Middle-Left Lemming: Same as top-left (because thin platform is one pixel above water trigger).
Bottom-Left Lemming: Same as previous two, for same reason as middle-left.
Top-Right Lemming: Swims to gap, then falls.

SwimmerClimberTest.lvl (from top)
1st Lemming: Swims to end of water, falls into trap (due to similar corner-pixel rule as with walkers).
2nd & 3rd Lemmings: Swims to wall, climbs.
4th Lemming: Swims to edge, walks into gap.

Indeed, only one out of the 8 shows the behaviour I would expect.
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)

Nepster

Note that in the SwimmerTest.lvl, there is a 1-pixel-wide horizontal gap between the the two water objects for all the left lemmings. Sometimes this gap is filled with terrain. So it is at least correct, that swimmers do not swim upwards to the very top.

namida

Yes; this is why I didn't expect the swimming upwards behaviour. In eg. the middle case, the lemming is standing on the one pixel that does *not* have a water trigger. So this is exactly the behaviour I would expect once he's actually on the terrain; I just wouldnt've expected him to get onto it.
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)