Add L2 skills to NeoLemmix? [DISCUSSION]

Started by mobius, May 06, 2017, 02:19:25 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

geoo

Regarding the shimmier, even though I don't think that's exactly how it's handled in L2, a simple way to implement approximate 22.5 slopes would be if you check that it only moves down/up 2 pixels for every 4 pixels moved horizontally (and no more than one pixel vertically per pixel moved horizontally). Note the issue which L2 has, which kieran already mentioned: for certain terrain setups, depending on where you start horizontally (probably modulo some number), it might succeed or fail to move along the terrain. To ensure that doesn't happen, you should check every single frame (i.e. for every single x position) whether 4 pixels ahead the slope is gentle enough. This implementation should allow the shimmier to traverse miner tunnels.

Another behaviour in L2, which I'm not sure if it's desirable or not, is that the shimmier will stop if it encounters terrain under its feet. In particular, that means you cannot traverse basher tunnels. You'd have to use a second basher to make the basher tunnel taller and thus traversable.

Nepster

Quote from: geoo on September 09, 2017, 06:49:29 AM
Another behaviour in L2, which I'm not sure if it's desirable or not, is that the shimmier will stop if it encounters terrain under its feet. In particular, that means you cannot traverse basher tunnels. You'd have to use a second basher to make the basher tunnel taller and thus traversable.
I would love to have both features. Perhaps the way to go is to use a sprite with the legs pulled up a bit, so that they won't touch the ground of a basher tunnel? Or will this look too weird?

kieranmillar

If the shimmier is implemented another skill I'd like to see ported from L2 is the Slider. While this is yet another permanent skill that helps the lemming survive a long distance fall, it's actually so much more than that. The fact that it is entirely terrain based is really useful for a level designer, as is the way it comboes so well with the shimmier and even less obvious stuff like the builder. The fact it actually goes underneath an overhang is great too, let's you do stuff like bomb out a wall using a faller then have a slider go inside the bomber crater. The totally mind-bending way it constantly changes direction is also hilarious. There's a lot this skill can do if it's implemented well, as opposed to L2 where e.g. it won't dangle off the edge of a builder and so won't transition into a shimmier, ruining many of the grand plans I had for the Medieval Tribe.

Ryemanni

Quote from: Nepster on September 09, 2017, 10:58:55 AM
I would love to have both features. Perhaps the way to go is to use a sprite with the legs pulled up a bit, so that they won't touch the ground of a basher tunnel? Or will this look too weird?
I was trying to figure out how that would look and made an edit of the L2 shimmier sprite with the lemming's feet up. The difference is barely noticable because there are so few pixels. :D


ccexplore

#19
I did a quick test in L2 and the minimum shimmiable tunnel height appears to be 10 pixels*, which seems to match the animation as well (ie. during animation the feet pixels goes no lower than the 10 pixel so that it may touch (adjacent) the ground pixel but not actually go into one).  If you look at the sprite pixels, during shimmying the lowest pixel ranges from 8-10 pixels below ceiling.  I don't know what the actual y-position of the lemming is (though I strongly suspect it's constant when shimmying across perfectly flat horizontal ceiling).  Regardless, 10 pixels is close enough to the basher tunnel's 9 pixels, I'm pretty sure you can come up with something that will work and look okay for the basher tunnel.

*You can't start shimmying with just 10 pixels because L2 also enforces a kind of minimum "jumpable height" (which we don't need to do in NeoLemmix) that requires additional height to start, but once you start shimmying on a wider tunnel, the floor can go up until the tunnel height narrows to 10 pixels and still keep the lemming shimmying.

[edit: also confirm that L2 shimmier does support shimmying both up and down the miner tunnel's ceiling]

ccexplore

Not that I'm particularly pushing for the skill, but I feel compelled to clarify the confusion you seem to have over glue pourer, at least relative to DOS L2 behavior I've just re-tested.

Quote from: Nepster on May 06, 2017, 04:57:48 PMGlue-pourer: While very powerful, the exact mechanics are not easy to understand, especially when it comes to slopes: On a 30° slope the glue runs down without sticking anywhere. On a 45° slope it runs down for about 8 pixels and then sticks. I still don't know why exactly it does that? If it runs down big steps (like with vertical walls of 8 pixels or so) it never glues, as far as I can tell. At ledges the behavior of a single pixel of glue depends on whether the pixel below it is air, usual terrain or another glue-pixel that just got solid. Not to mention that when running along the glue is twice as fast as a lemming, but somehow slows down when sticking.

Your description seems to mention a lot of behavior that I just don't see when testing in DOS Lemmings 2 ???:

QuoteOn a 45° slope it runs down for about 8 pixels and then sticks.

Um, no?  The glue solidifies as soon as it hits the slope; it doesn't flow down for a bit and then sudden stops.  You do remember that the vertical stream of glue falling down from the bucket starts a few pixels away from where the pourer is standing, right?  The solidification spreads to the right starting from exactly where the stream landed, which will be a few pixels away from where the lemming stands.  It never flowed from the ground where the lemming is standing into the spot that it is sticking.

QuoteIf it runs down big steps (like with vertical walls of 8 pixels or so) it never glues, as far as I can tell

That's not exactly true either.  The key point is that when the pixel of glue lands and there is still a cliff to the left of it (for a right pourer), whether the step landed on is only 1 pixel wide horizontally versus more than 1.  It glues (ie. solidifies into terrain) for the former, but continue flowing right for the latter.

The behavior I just described is ultimately key for the glue's signature behavior, where it creates horizontal glue platform the same vertical thickness as the ledge it is falling off from.  That very same behavior also leads to the perhaps slightly surprising side effect of the glue solidifying while moving down slopes 45 degrees or steeper.  Removing the behavior would cause the glue to basically always solidify to 1-pixel thick horizontal platforms.

Quotewhen running along the glue is twice as fast as a lemming, but somehow slows down when sticking

Not sure how you are seeing any kind of slowdown.  Each glue pixel either moves 2x speed (or perhaps more accurately, glue movement is processed twice per physics update), or it stops and solidifies.  At no point does a glue pixel ever move at 1x speed.

One thing that does happen is that within a single physics update cycle, typically you'll wind up with a whole mass of glue pixels all solidifying into terrain all at once.  For example, when flowing down the ledge, none of the glue pixels are terrain until the leading glue pixel finally reaches the bottom of the ledge, and then all at once that whole vertical column of glue becomes solid terrain, causing the rest of the glue to starting falling one further to the right (ie. the new ledge resulted from the glue pixels that just became terrain).  Similarly, when glue is flowing flat horizontally towards a wall, none of the glue is terrain until the leading glue pixel hits the wall, then the entire layer of glue starting from where the glue stream landed to the leading glue all at once turn into terrain.

===================

So okay, I'll agree it's somewhat non-trivial, but I think the underlying rules are not that bad for the L2 glue pourer.  Here's my stab at it for a right-facing glue pourer (adjust accordingly for left), which I believe creates at least most of the common behaviors people would see:

glue pixel has a current direction of either DOWN or RIGHT.
when updating the glue pixel for movement, turn the glue to terrain in the following 4 cases (T = terrain, . = air, v = glue current direction DOWN, > = glue current direction RIGHT)

Tv
T.

Tv
..

vT
T

>T
T

In all other cases, move glue down one if pixel below is air, else move right one.  Update the current direction based on whether you moved down or moved right.


(I strongly suspect you might not even need the concept of current direction at all, but I haven't tested in enough details to confirm.)

Nepster

Thanks for the clarification about the glue-pourer. My post was written without any testing, just what I remembered from playing kieranmillar's pack.
In particular there was a (now-removed) level where one had to create a huge sand pyramid with sand-pourers and when I used a glue-pourer one top, I got very confusing and irregular results. Your explanation with sticking if there is at most one horizontal pixel might explain that, and I just guessed totally wrong. And I would have made (almost) every bet, that the glue does not become solid in a single frame... but again I never explicitely tested my assumptions on the glue-pourer physics.

mobius

Something I'd like to do, once/ or before any new skills get added is go through the original game's levels and try playing them with new skills.

Quote from: Nepster on September 08, 2017, 04:03:12 PM
Shimmier:
At the moment I lean towards always jumping, even if no ceiling is present. Perhaps we could use the same terrain checks as for climbers to detect problematic terrain in stomach-height?
And although I said in my first post, that we can't transition from climber to shimmier, there are actually ways to implement this now: All assignments are remembered for about half a second, if they cannot be assigned immediately to the lemming. This would be true for a shimmier-assignment to a climber as well. So whenever a climber hits the ceiling, they could check whether a shimmier assignment is remembered and if so, transition to a shimmier along the ceiling.

This sounds good. I realize there is another benefit to always jumping; the player can see how far the ceiling would need to be if it doesn't work. [I believe the lemming's hands should reach the exact height, spot where they would be to actually start shimmy-ing)
The climber/shimmy sounds good too. It makes sense, will be interesting to see it in action though.


Quote from: Nepster on September 08, 2017, 04:03:12 PM
Another issue that we have to discuss is: What slopes can a shimmer handle? It would be nice if a shimmier could move along the ceiling of a miner tunnel. But the ceiling there is far less regular than the bottom, so a simple rule like "may not move two pixels up or down within moving two pixels forward" would prevent that.

I don't really see any benefit to being able to shimmy along the ceiling of a miner's tunnel?* Although; changing the ceiling of the miner's tunnel doesn't seem like something that would be a major problem. How many levels are critical on the exact shape of the ceiling of the miner's tunnel?
<I have one such level that deals with this but the exact *shape* is not issue just the height.>

I think if the shimmier can shimmy on any kind of even jagged ceiling it may get too complicated to code and lead to many problematic issues/glitches. So I think I'm in favor of dealing only with smooth surfaces.

*Okay, I see one possibility in a set up like ISteve's "I am IS"
Spoiler
where many lemmings mine out a huge portion of terrain, you could somehow for some reason need a shimmier to get up along the newly made ceiling. Maybe there are other uses as well...




on the pourer skills, the more I think about it the more it seems like combining them into one isn't possible, at least to achieve the unique/useful effects of any one of them.
everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain


Nepster

QuoteI don't really see any benefit to being able to shimmy along the ceiling of a miner's tunnel?*
Please solve kieranmillar's sports tribe. There are some very ingenious uses for shimmiers contained there. I don't say, that it actually uses shimmying along a miner tunnel's ceiling, but you'll certainly find similar uses there.

QuoteAlthough; changing the ceiling of the miner's tunnel doesn't seem like something that would be a major problem. How many levels are critical on the exact shape of the ceiling of the miner's tunnel?
If I do that, then I will get major complains, because it will break thousands of replays. No way this is going to happen...

Strato Incendus

#24
I've always been wondering whether there was some way to implement an upward digger. This probably has also come up in the discussion about one-way upward arrows, since so far the only thing that goes upward is the fencer, which can't actually penetrate inverted one-way down arrows :D .

Funnily enough, L2 didn't have anything to go up, because the fencer's angle of movement was much flatter than in NeoLemmix. The only way to dig a slope upwards was the twister, which is as execution-y as it gets, and then there was the laser blaster which created a vertical corridor.

However, so far the laser blaster has still mostly been used to create a path down, as you have already mentined, usually getting the crowd right away to the exit. I wonder whether there is more potential hiding in that skill, like creating an upward path for climbers. Or really just some minor tasks somewhere along the route to the exit in levels that don't have diggers or miners.

The main difference between the laser blaster and other destructive skills so far is its range effect, similar to the bazooka. Miners, diggers, bashers, and fencers always move along with the tool they are using. For an actual upward digger (unless something like the gravity reversal from Lemmings Revolution gets implemented one day), one would have to use some kind of combination with a climber.

I just imagined a modified version of the twister, not with that fiddly ventilator tool from L2, but simply a skill that would go straight up through terrain and then attempt to move a couple of pixels into the direction the lemming is facing (so that it doesn't drop down the newly made tunnel again right away). A bit like the "flame fist" in Worms, if you remember that one.
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

Nepster

It is possible to create new custom L2 levels and try out the potential for alternative uses of laser blasters there. kieranmillar has done so recently, so he is probably the best person to ask how versatile the laster blaster really is.

GigaLem

Personally I think we should just limit the amount of new skills we add, We shouldn't have too many

If you ask me, the jumper seems mostly impossible without making it a fixed jump

I think the number of skills we should either be limited to like 8 more (7 if you don't count fencer)
but if we want a huge roster of L2 skills in Neolemmix then I ask this

Why not just make an engine that can be totted as "Neolemmix for Lemmings 2"?

in all honestly I don't want to be overwhelmed

Proxima

Quote from: GigaLem on September 14, 2017, 03:11:58 AMbut if we want a huge roster of L2 skills in Neolemmix

You don't need to worry; it's abundantly clear that no-one wants this. We're talking about the possibility of adding only a very small number of skills, the ones we think will most improve puzzle possibilities, like the fencer.

GigaLem

Quote from: Proxima on September 14, 2017, 03:19:23 AM
Quote from: GigaLem on September 14, 2017, 03:11:58 AMbut if we want a huge roster of L2 skills in Neolemmix

You don't need to worry; it's abundantly clear that no-one wants this. We're talking about the possibility of adding only a very small number of skills, the ones we think will most improve puzzle possibilities, like the fencer.
That sounds good for me

ccexplore

Quote from: Strato Incendus on September 13, 2017, 10:27:08 AMI've always been wondering whether there was some way to implement an upward digger. <snip>

Well it's not too surprising there hasn't really been one.  The path blazed out by all the other directional tunneling skills are all naturally traversable by plain walking (or falling in the case of digger) lemmings, which is kind of important since most solutions end up with a path that the remaining walking-only lemmings can go through to reach an exit.  Like you mentioned, a perfectly vertical or even very steep upward path would require more specialized lemmings like climbers to move up along the blazed path, else they'd have to fall down from it instead--thus the typical "free the crowd" case.

All that being said, it might still be a form of skill worth exploring.  I can imagine depicting a lemming with spinning helicopter-like blades bringing it upwards tunneling through overhead terrain.  I would also suggest that it might be good to have some natural way for the lemming to transition to another tunneling skill like basher in the middle of tunneling vertically upwards, just like how it is possible for all the other tunneling skills.