[DISC.][PLAYER] Jumper physics

Started by namida, February 26, 2020, 12:59:56 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Dullstar

Namida's point regarding floaters made me think of something additional: would the fall distance for the purposes of splatting be measured from the top of the jump, or the end up the jump? I'd say the top would make sense; ignoring what's happening under the hood and just using intuition, the jumper is falling from the moment it's no longer going up (well, besides the instant where it has zero velocity). On the other hand, that would make the splat ruler harder to use with jumpers.

I would definitely say instant for bombers/stoners. It would make this skill combination more useful since you could use it to gain height with a lemming before it uses the skill. An OhNoer transition would basically only be able to explode on the ground, making the combination near useless outside of some finicky garbage involving pits.

As for Climber -> Jumper: I would like to elaborate on why I like this idea and don't feel it is problematic when considering skill combinations that are disallowed. It would be pretty difficult to operate digging/construction tools without falling off of the wall, so we don't allow it. Jumping is actually not all that difficult to do while climbing. The hard part is continuing after a jump and not just falling, but it's certainly doable, and you don't have to be a top-tier rock climber to do it.

Swimmer -> Jumper: Unrealistic and I doubt it would have much puzzle or movement potential.

Jumper -> Walker: I don't think it's inconsistent with the shimmier to disallow walker cancellation (unless you can use a walker to cancel an shimmier that's still trying to grab the ceiling? Though I doubt that would be very useful). Intuitively, it's easy for a shimmier to stop - all it has to do is let go. How does a jumper stop?

WillLem

Jumper->Glider: at first I agreed with DireKrow that in all other cases a Glider starts after a fall. But then I also agree that both the Jumper and Glider skill are "ready for action" as apposed to, say, the more reactive Floater. This being the case though, why don't Gliders immediately glide in all other cases?

Jumpers->Climbers: again, at first I agreed with DireKrow - if a Jumper can do it, why not a Glider? But then I thought - the Glider is holding onto the gliding frame with their hands, whereas a Jumper is ready for action and could grab onto a wall...

Climbers being able to jump away from a wall is a great idea, definitely should be implemented! Very Mario. ;P I can see the possibilities for making very action-based levels.

Jumpers->Shimmiers: an obvious one really, as the "reacher" phase of the Shimmier skill is, essentially, a short vertical jumper.

Jumpers->Bombers: another vote for this being instant (as with fallers).

Jumper->Walker: this could maybe be used to shorten a jump. Let's say, for example, the Jumper has 3 'stages' - ascension, top of the arc where they're airborne, and then descension. Each phase would form part of a parabolic arc. Applying the walker skill could make the animation transition straight to the descension stage from wherever the Jumper is. If the Jumper has already started to descend, the Jump would essentially become a double-jump because the descension stage would be activated again.

Better still, the Walker could be used to make the Lemming do some sort of acrobatic twist in midair which extends the jump range. There are all sorts of possibilities here. As others have said though, the Jumper simply falling immediately from wherever it is in the jump stage is something I'm definitely not in favour of; is makes very little sense even in videogame logic.

Swimmer->Jumper: again, I'm thinking that the Jumper skill in water could make the Lemming perform a twist in the water which would turn them around, or maybe accelerate them forward. It could have some function, I guess is what I'm saying. Jumping out of the water seems a bit silly unless they suddenly get a Dolphin suit. :crylaugh:

Basically, I'm generally in favour of thinking real-world physics, as Lemmings usually adheres to this. I do like the occasional videogame logic application of a skill, though, and there are possibilities here for the Jumper to become quite a useful modifier for the other skills beyond simply skill-cancelling.

namida

QuoteJumper->Walker: this could maybe be used to shorten a jump. Let's say, for example, the Jumper has 3 'stages' - ascension, top of the arc where they're airborne, and then descension. Each phase would form part of a parabolic arc. Applying the walker skill could make the animation transition straight to the descension stage from wherever the Jumper is. If the Jumper has already started to descend, the Jump would essentially become a double-jump because the descension stage would be activated again.

Better still, the Walker could be used to make the Lemming do some sort of acrobatic twist in midair which extends the jump range. There are all sorts of possibilities here. As others have said though, the Jumper simply falling immediately from wherever it is in the jump stage is something I'm definitely not in favour of; is makes very little sense even in videogame logic.

Swimmer->Jumper: again, I'm thinking that the Jumper skill in water could make the Lemming perform a twist in the water which would turn them around, or maybe accelerate them forward. It could have some function, I guess is what I'm saying. Jumping out of the water seems a bit silly unless they suddenly get a Dolphin suit.

I'm ruling out both of these proposals right now. The walker has two functions: "Cancel a skill; or turn around a lemming that's already just walking". It is not going to do anything other than those to a Jumper (and the Jumper isn't "just walking", so it won't turn him around either - it'll either cancel the jump, or not be an accepted assignment). Likewise, there's no reason whatsoever to expect such a case from a Swimmer->Jumper combo; it comes down to either "assigning a Jumper to a Swimmer makes him jump as normal", or else "you can't assign a Jumper to a Swimmer".

I'll look at the rest of the feedback (from everyone) a bit later and see if there's anything so far that most people are in agreement about. (My instinctive reaction is to say "yes, they were" about some things, but I'd rather go through and properly check that this really is the case - but I can't be bothered right now.)
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)

Proxima

My thoughts on all the edge cases and interactions. I'll start with the ones I think are most clear-cut, and move on to ones where I haven't made up my mind....

Jumper -> Bomber/Stoner: Definitely instant. At the moment, bombers are instant if they are in mid-air (fallers, floaters/gliders, shimmiers), so there is a straightforward consistency argument for making jumpers bomb instantly.

Non-climber Jumper hitting a wall: Fall facing the other way. As namida said, this is a normal way for a lemming to interact with a wall in front of them, and there's a lot of potential for situations where it's hard to turn a lemming around and the architect doesn't want to give a builder or walker because of backroutes, or situations where the player just has to decide which skill is least needed elsewhere. (Indeed, I remember using this to solve a Lemmings 2 level on one of the very few times I've played that game :P )

Swimmer -> Jumper: Forbid assignment. Jumping out of the water is unrealistic, but making the skill do something completely different, as WillLem suggested, would be a weird edge case where a skill has two unrelated effects in different circumstances. These are hard for new players to discover and internalise, and should be avoided where possible. [EDIT: Namida posted with basically the same response while I was typing this.]

Jumper -> Walker: Forbid assignment.

Jumper -> Glider: Start gliding from the top of the jump. The only reason a glider normally has to go through the falling animation before starting to glide is that it takes time to pull the glider out; the start of a jump would also give the lemming time to do this. This would make the jumper/glider combination more powerful, and there is a lot of potential in making the combination of two skills able to access places neither skill can alone. (This is not like the above two cases -- in this case each skill is doing what it normally does, we are just considering how they combine.)

To respond to Strato, this is not inconsistent because there is currently no other skill that jumps. Sure, we can look at the behaviour of a lemming walking off an edge to make comparisons -- such as my point above that a mid-air jumper should explode instantly -- but there are going to be differences as well as similarities. Jumping is jumping; falling is falling.

Regardless of what decision is made here, I would urge that if the lemming is already a glider, then the jumper skill shadow should show the full jump + glide trajectory.

Jumper -> Climber: Could go either way on this one. It works in Lix and has a lot of puzzle potential and I generally enjoy it. But there could also be a lot of puzzle potential in forbidding it, so that the player has to do more work to get into a position to climb. Forbidding it would provide a way for a climber lemming to turn, which is often hard; the flip side is that allowing jumper -> climber would mean the player has to work to find a way for the climber to turn.

Climber -> Jumper (wall jump): This is intriguing because Lix never had this, so it would be distinctly new to Lemmings-like games (although familiar from many platformers, of course). However, if it ends up forbidden, you can still do a climb-bomber to make terrain for a later climber to jump from -- and having to weigh in the cost of the extra skill usage and lost lemming has puzzle potential in itself. I would strongly urge that we consider this one purely on the basis of whether we prefer allowing or forbidding it as a puzzle element and not for "consistency"; no other skill jumps; there is no reason at the moment why a new player would expect this to go one way or the other.

namida

QuoteTo respond to Strato, this is not inconsistent because there is currently no other skill that jumps. Sure, we can look at the behaviour of a lemming walking off an edge to make comparisons -- such as my point above that a mid-air jumper should explode instantly -- but there are going to be differences as well as similarities. Jumping is jumping; falling is falling.

The Shimmier's "reacher" phase, which after a failed reach, the reacher turns to a faller from which he transitions at the normal time to Glider (this can still be useful to gain extra height, of course). However, there's valid grounds to argue for a difference here: The Reacher expects to find terrain to cling onto and shimmy across (and is indeed trying to grab onto it). The Jumper is not; he's jumping and could either land or fall at the end, and thus it could be expected he'd "get ready" to glide.
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

I was really thinking in "categories" in terms of "what do I see when I hover the cursor over the lemming?" While he is on the parabolic curve of the Jumper's trajectory, I'd expect to read "Jumper", not "Faller". When I assign a Jumper at the edge of a cliff, the label "Faller" would be applied to that lemming as soon as the parabolic trajectory is completed, when the animation also switches back to the Faller sprite. Since Fallers can only fall vertically, it would be weird to consider a Jumper on his way down, meaning the downward slope of the curve, a "Faller" already. And only Fallers can get out their Glider/Floater parachutes.

Although, as I said, I do agree that it would be very useful to have a Jumper start gliding on an updraft that is at the same level as the ground the lemming is walking on.


How does this work in L2? The L2 equivalent of the Glider would be the Hang Glider, in my book. I guess it is possible to assign a Hang Glider to a Jumper in mid-air? The only difference is that there are no updrafts in L2, only that obnoxious fanning tool. So you probably won't have time to switch to the fanning tool and hold it beneath the Hang Glider after that initial jump before the lemming hits the ground again.
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

Proxima

Quote from: Strato Incendus on March 02, 2020, 11:43:28 AMAnd only Fallers can get out their Glider/Floater parachutes.

Only Fallers can at the moment. That says nothing about whether a Jumper should be able to or not. And your entire argument is based on that flimsy piece of straw.

ccexplore

Quote from: Strato Incendus on March 02, 2020, 11:43:28 AMHow does this work in L2? The L2 equivalent of the Glider would be the Hang Glider, in my book. I guess it is possible to assign a Hang Glider to a Jumper in mid-air?

No, I tested it, L2 does not allow assigning hang glider to basically any mid-air lemmings, be it from jumping, falling or whatever else can take the lemming off the ground.  The L2 hang glider starts with a small, mostly vertical jump when assigned.  Given that, it rather makes sense that the assignment would be prohibited if the lemming wasn't already on the ground.

Of course, it's still very different from NeoLemmix's glider.  For one thing, NeoLemmix glider is designed as a permanent skill, which are expected to be assignable to the lemming at basically any time.  So from that alone, you should certainly be able to assign glider to a mid-air jumper.  Of course, when exactly does the glider movements actually take effect in this case is a whole other matter.

------

Finally for reference, I attached some screenshots showing the trajectory of the L2 jumper, in particular the height and width of the arc.  I purposely had left the screenshots unscaled so it's easier to measure the exact number of pixels; you probably want to use a 200% or 400% zoom when working with the images.

IchoTolot

I agree with Proxima for the most parts:

Quote
Jumper -> Bomber/Stoner: Definitely instant. At the moment, bombers are instant if they are in mid-air (fallers, floaters/gliders, shimmiers), so there is a straightforward consistency argument for making jumpers bomb instantly.

Swimmer -> Jumper: Forbid assignment. Jumping out of the water is unrealistic, but making the skill do something completely different, as WillLem suggested, would be a weird edge case where a skill has two unrelated effects in different circumstances. These are hard for new players to discover and internalise, and should be avoided where possible. [EDIT: Namida posted with basically the same response while I was typing this.]

Jumper -> Walker: Forbid assignment.

Jumper -> Glider: Start gliding from the top of the jump. The only reason a glider normally has to go through the falling animation before starting to glide is that it takes time to pull the glider out; the start of a jump would also give the lemming time to do this. This would make the jumper/glider combination more powerful, and there is a lot of potential in making the combination of two skills able to access places neither skill can alone. (This is not like the above two cases -- in this case each skill is doing what it normally does, we are just considering how they combine.)

For the other cases:

Non-climber Jumper hitting a wall:

I would say only turn after landing and walking against it, but not on the jumper hitting it. It feels weird to me that after faceplanting into a wall you turn your back against it. He did not either: https://www.youtube.com/watch?v=L6j274eePZw    :XD:  He just fell to the ground. As Lemmings are more resiliant they simply land walk gently into it this time and turn normally. :P

Jumper -> Climber:

I would vote for the lix method here. Jumping against and climbing up the wall just feel statisfies and is proven to result in quite a few good levels.

Climber -> Jumper (wall jump):

My instinct would say no here, as this just feel very weird to me. Walkers don't work on climbers as well.

namida

#24
Okay so, after reading and considering responses, I'm going to make my decisions on a few of these now. Some will remain open.

Jumper -> Glider This one will remain open. I'm not completely convinced either way yet. I may need to implement and try out both options re: when the jumper starts gliding.

Splat distance This was a good point - it makes logical sense to count from the top of the jump, but it's much more practical for the player if it counts from the end of the jump. So this needs more consideration.

Jumper -> Hitting wall There are some good points for that the lemming should turn around and fall. But I'm not 100% convinced.

Climber -> Jumper (Wall-jumping) I'm leaning towards allowing this, but again, not completely convinced.




Jumper -> Climber (Jump onto a wall and climb it) Sounds to me like Lix has shown Jumper->Climber to be a worthwhile feature, so let's go for it.

Jumper -> Shimmier Surprisingly little input on this, so I'll go with my original thought (allow it). To be clear - this wouldn't be a doublejump; it would be like the Climber->Shimmier case, in that the jumper must already be near a ceiling to receive the assignment.

Jumper -> Walker Not allowed.

Swimmer -> Jumper Not allowed.

Jumper -> Bomber / Stoner Instant explosion.
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)

namida

#25
This is obviously a very early, rough implementation but...

https://www.youtube.com/watch?v=TX0b-8DQitk

(Since this, I've implemented a foot check, though still no head check or wall check. EDIT: Now it has a wall check too, including for the jumper->climber transition.)

EDIT: And another one!

https://www.youtube.com/watch?v=qc9TA_7SOh8

Read after watching
Please note this does NOT confirm the Climber -> Jumper will definitely happen. It wasn't much work to implement it, so I didn't mind doing it for now with the possibility of it being reverted later.
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)

WillLem

#26
Some penny-thoughts which may or may not help with decision making on the undecided stuff:

Quote from: namida on March 05, 2020, 07:14:14 PM
Jumper -> Glider This one will remain open. I'm not completely convinced either way yet. I may need to implement and try out both options re: when the jumper starts gliding.

I was thinking about this earlier... if the glider has already been assigned before the jump, then it makes sense for the jumper to start transitioning to a glider at the top of the jump arc, as the lem would be ready to become a glider. If the glider is assigned during a jump, then normal fall-then-glide physics ought to apply.

Quote from: namida on March 05, 2020, 07:14:14 PM
Jumper -> Hitting wall There are some good points for that the lemming should turn around and fall. But I'm not 100% convinced.

If the lem falls without turning, there are options to then assign any skill that involves interaction with a wall: e.g. climbing, bashing, etc. If they turn around before falling, it limits the options to simply walking away from the wall. If a player wants to be facing the wall after a jump, they then have to assign a walker (and the level designer has to make sure they include an extra walker for this purpose) whereas if the player/level designer wants the lem to turn around, they simply wait until they have fallen and then walked into the wall. For this reason, I would add 1 vote for falling first then turning. EDIT: there could even be a fun animation of them sliding down the wall: consider this an offer to create such an animation, if needed. :thumbsup:

Quote from: namida on March 05, 2020, 07:14:14 PM
Climber -> Jumper (Wall-jumping) I'm leaning towards allowing this, but again, not completely convinced.

I'm glad you're leaning towards this. If there are any of these options I feel most strongly about, it's this one: wall jumping would be a great feature to implement. It would open up a lot of possibilities for both gameplay and level design. Definitely, definitely do this one! Also: if there needs to be a more convincing argument other than "it would be cool", I would also point towards it being a fairly reasonable real-world-physics case: climbers are physically able to leap away from a wall.

Hope these comments help. :)

ccexplore

Quote from: WillLem on March 05, 2020, 09:46:19 PMI was thinking about this earlier... if the glider has already been assigned before the jump, then it makes sense for the jumper to start transitioning to a glider at the top of the jump arc, as the lem would be ready to become a glider. If the glider is assigned during a jump, then normal fall-then-glide physics ought to apply.

This feels a little unusual, in that I don't remember any other permanent skills producing different behaviors based on the detailed timing specifics of when the skill is assigned relative to the actions of another skill being carried out.  Ultimately if there is clear advantage in terms of gameplay or level design then fine, special case, but otherwise I would advise not to introduce such extra complexities into the skill.

At the moment I have no preference either way.  There's only so far one can go with comparing to real-life physics, since there are already plenty of movements in Lemmings that are decided not like real-life physics (can you squeeze through a 1-pixel gap or tunnel? :P).  I mean, if you really want to talk about real-life physics, the jumper wouldn't just fall straight down at the end, and a glider who's jumping would probably have a different jump trajectory arc altogether compared to a regular jumper, due to presumed extra air resistance from their gliding position and/or gear.

namida

QuoteI was thinking about this earlier... if the glider has already been assigned before the jump, then it makes sense for the jumper to start transitioning to a glider at the top of the jump arc, as the lem would be ready to become a glider. If the glider is assigned during a jump, then normal fall-then-glide physics ought to apply.

Faller behaviour: If the glider / floater is assigned to a faller, before the point at which the faller would begin gliding / floating, the faller transitions at the normal time. If it's assigned after that point, the lemming transitions immediately when the skill is assigned.

If the glider activates mid-jump, then I would expect the same rule to apply here - transition at the normal time if assigned before the gliding point, or immediately if assigned after the gliding point. Of course, this is irrelevant if the glider activates at the end of the jump.
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)

namida

On the "jumper hits wall" scenario - I do get the feeling many people are only considering the case in the left in the attached pic. However, the case on the right is likely where the difference could lead to some interesting situations - so don't forget to consider that too.
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)