[PLAYER] [SUGGESTION] [MIXED] Fallers in Updrafts: To die or not to die?

Started by Nepster, January 20, 2016, 06:50:21 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Nepster

Status: Some changes implemented.
NOT CHANGED: Behaviour of a lemming who lands while in an updraft remains unchanged.
NOT CHANGED: No changes are being made to updraft trigger areas.
CHANGED: Instead of decreasing distance fallen by 1 each pixel, the distance fallen is simply reset to 0 on any pixel where a lemming is in an updraft.

Nepster

You think, you understand what happens when lemmings fall through updrafts? Then let's do a little quiz!
Attached you find a level image (and the real level if you want to test it yourself). It has 7 lemmings who fall 122 pixels (resp. 130 pixels for the 6th lemming).
Quiz Question: Which lemmings will survive?

Solution

Lemming 1: Survives
Lemming 2: Survives
Lemming 3: Dies
Lemming 4: Survives
Lemming 5: Survives
Lemming 6: Dies
Lemming 7: Dies

Explanation

Let's first cover the actual game mechanics before discussing the example level:
So there are two different effects that updrafts have on fallers:
1) With every pixel the lemming falls through the trigger area of the updraft, the falling distance decreases by 1 pixel instead of increasing by 1 pixel. The falling distance cannot get negative though.
This description is actually a slight simplification as it ignores boundary effects when entering and exiting updraft triggers, but it is good enough for our purposes.
2) If a lemming meets terrain while inside the trigger are of an updraft, he will survive. Period. Nevermind the actual fall distance.

So let's see how this applies to the seven lemmings in the example:
Lemming 1: After exiting the trigger are of the first updraft, the lemming has fallen 0 pixels (as this cannot get negative). Then he falls 88 pixels until meeting the next trigger area.  This would result in a total falling distance of 72 that would kill the lemming. However the trigger are is quite a bit below the visual part of the updraft and thus overlaps with the terrain. So effect 2) applies and the lemming survives.
Lemming 2: We have a fall distance of 122 pixels. Of these are 32 pixels updraft, so the total fall distance gets reduced by 64 pixels. The remaining 58 pixels then can be survived.
Lemming 3: Here we have only 16 pixels updraft, resulting in a lemming fall distance of 90, which kills the lemming.
Lemming 4: This lemming survives for the same reason as Lemming 1.
Lemming 5: The updraft is placed so that the trigger are reaches only 1 pixel above the terrain. Fortunately this lemming meets precisely this pixel when falling down, thus landing while in the updraft trigger are and surviving.
Lemming 6: In contrast to Lemming 5, this one is less lucky. It just misses the 1 pixel layer updraft trigger and thus lands while in pure air. SPLAT!
Lemming 7: According to our computations above, this lemming should survive. However the trigger are of the updraft does not reach to the left and right end of the image of the updraft. Thus by placing two updrafts next to each other, there is a small gap without any trigger area at all. Now, lemming 7 is placed precisely in such a way, that he misses all trigger areas and hence is completely unaffected by all the updrafts. :devil:

List of Problems

Big Problems:
1) As the trigger areas extend quite a bit below the updraft image, players will not expect that the trigger area of lemming 4 extends to the terrain, hence expect the same behavior as for lemming 3. Moreover it is not intuitively clear that the updraft behavior does (or should) change when meeting the ground.

2) When placing updrafts next to each other, it is pure luck, whether one meets the small trigger-free area or not. Without precise knowledge of the layout of the trigger areas, this feels like a big BUG.

Minor Problems:
3) Whether a lemming dies or not may depend on whether the updraft is placed one pixel higher or lower due to the (here not discussed) boundary effects. Similarly it may depend on the starting height, whether to meet the trigger area at the ground or not. All these issues are stuff that the player cannot reasonably know beforehand, but has to experiment with.

4) Even when none of the exceptional stuff applies, it can be quite hard to tell whether a given lemming will survive or not. If the fall is approximately 200 pixels (a bit less than two screens), do 4 updrafts suffice, are 5 needed or even 6 of them required?

Suggestions

Here are a few suggestions:
A) Extend the trigger area to the border of the visual part of the updraft. Then Problem 2) is solved.

B) Change Updraft mechanics as follows: If there is a updraft trigger area within the pixels covered by the faller during this frame, then set the fall distance back to 0. This rule is easy to understand and hopefully natural enough to find out, even when not explicitely told. Moreover there are no weird boundary effects and it is easy for the player to predict the outcome.

C) If suggestion B) is felt to change the game mechanics too drastically, then here is another suggestion: For each updraft trigger pixel among the pixels covered during the fall this frame, substract the appropriate number from the fall distance. Remove the special rule for overlapping trigger areas and terrain completely.
This would at least solve problems 1) and 3). Problem 4) would remain, but one could probably live with that.

PS: If all updraft mechanics are intended, then you will get an extremely evil entry in the current level contest. :lix-evil:

Simon

#2
Lovely edge cases! Enjoy enjoy enjoy! Yeah, I'd suggest some more consistency, too.

Busy right now, otherwise I'd look at the NL source right away. No matter what the source says, maybe namida should explain his design ideas behind the implementation.

I happen to like solution B, this was my first idea too while reading the 7 explanations.

-- Simon

namida

QuoteHere are a few suggestions:
A) Extend the trigger area to the border of the visual part of the updraft. Then Problem 2) is solved.

This will end up requiring changes to compiled level packs, as it's something set in the graphic sets. There was a reason for setting them the way they are; I believe it relates to how the lemming appears graphically. In regards to gaps between them, the solution is to somewhat overlap them when designing levels.

QuoteB) Change Updraft mechanics as follows: If there is a updraft trigger area within the pixels covered by the faller during this frame, then set the fall distance back to 0. This rule is easy to understand and hopefully natural enough to find out, even when not explicitely told. Moreover there are no weird boundary effects and it is easy for the player to predict the outcome.

I am open to doing this one, if there aren't too many levels that would be affected negatively by this.

QuoteC) If suggestion B) is felt to change the game mechanics too drastically, then here is another suggestion: For each updraft trigger pixel among the pixels covered during the fall this frame, substract the appropriate number from the fall distance. Remove the special rule for overlapping trigger areas and terrain completely.

There are definitely levels (mostly pre-dating anti-splat pads, mind you) that rely on this behaviour.
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

Quote from: namida on January 20, 2016, 09:22:37 PM
QuoteHere are a few suggestions:
A) Extend the trigger area to the border of the visual part of the updraft. Then Problem 2) is solved.

This will end up requiring changes to compiled level packs, as it's something set in the graphic sets. There was a reason for setting them the way they are; I believe it relates to how the lemming appears graphically. In regards to gaps between them, the solution is to somewhat overlap them when designing levels.
Could you please explain this a bit more in detail? Perhaps this is too naive, but I thought that level packs store the styles internally and thus would not be affected at all (but would not get this fix either). So changing the graphic set would only have a (positive) impact on newly created level.

Moreover I really don't believe that level designers will remember this and check the trigger area every time.

namida

Exactly - the fix would apply to all new content, but would not be applied to existing content without the user explicitly adding the new version of the styles to their pack and recompiling the NXP. Thus leading to an inconsistency between packs.
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

But wouldn't the very same inconsistency occur if level designers always add another overlapping updraft from now on?

IchoTolot

Quote from: Nepster on January 21, 2016, 08:33:23 AM
But wouldn't the very same inconsistency occur if level designers always add another overlapping updraft from now on?

As I have seen them (updrafts) so far:

Most updrafts are used for glider (rarely floater) interaction, a few of them are quite precise (like Mental 12 from Lemmings Plus Omega  [my stuff hasn't critical updraft interaction yet]). A trigger area change would be fatal. Maybe the animation can be altered to just the trigger area, but all tilesets would have to be edited aswell (and my motivation to do this to all my tilests just for this little thing is very limited ;))
If an updraft is used for the faller interaction, most of the time a single vertical updraft line is placed (or even just a single updraft). So the overlapp problem doesn't apply.
                                               

namida

For now, I'm not changing the trigger areas. Yes, inconsistencies can arise as a matter of level deisgn; but I see this as different from those arising because two different packs have different trigger areas for the same object. I may (ie: probably will) reconsider this once the file system is more majorly overhauled, such that for default sets a single set of data is used rather than each pack having to include a copy.

In regards to the behaviour, from the next update, the "decrease fallen distance by 1 pixel per pixel fallen" is repalced with "on any pixel where the lemming falls through an updraft, reset distance fallen to 0". This of course only applies to the determination of whether the lemming splats or not - just like is the case in previous versions, it doesn't affect, for example, how far a floater will fall when Exhaustion is in effect before he reverts to a faller.

This essentially means that, outside of the interaction with gliders, updrafts are just slightly more powerful anti-splat pads. (Although I guess in a way, they already were; they're just even stronger now.)

Since most (if not all) levels currently using updrafts for fallers do so in such a way that all falls through them end up survivable anyway, I doubt this would affect many (if any) levels. However, levels that use updrafts in combination with the Invert Fall Fatality gimmick may need to be altered.
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)