[Suggestion][Skill] Some proposals for Shimmier mechanics/checks

Started by IchoTolot, September 28, 2017, 12:19:22 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

IchoTolot

While meeting up with Simon yesterday, we had a short discussion about the shimmier and I've came up with some easy to understand mechanics/rules for it, that I find are share worthy and maybe lead to an interesting discussion.

The starting/ceiling catching part, as it was discussed earlier, was pretty clear: A jump that goes straight up for a few pixels and catches up to a ceiling if it hits one. Otherwise it could also be used as a delaying skill. The only thing left here is the jump height. Maybe 1 or 2 times stacker/basher etc height or something in that region would be reasonable.

The main discussion I want to start here are the ceiling checks! 

My simple and intuitive rule I popose for the top check:  The Shimmier can go forward if the ceiling height changes <= 1 pixels going forward.

This would lead to the Shimmier being able to go up/down to 45 degree slopes. This feels a bit steep, but still reasonable. Also it's very easy to understand even for new players: If they see a 2 pixel high step on the ceiling -- this means a stop.
Allowing only a not so steep slope would need something like a counter that counts the up/down height changes: Only X steps up/down allowed in the last X moves. This is not as intuitive and can also lead to weird cloner interactions where a cloner could be able to cheat itself further forward if the counter goes on incorrectly.

The most reasonable proposal for a milder slope would maybe be miner tunnel  ---> only 1 pixel ceiling height difference allowed every 2 pixels.

As I said I would prefer the steeper variation as it may seem a bit more extreme, but easier to understand.
It also allows the Shimmier to do more things and therefore being easier to implement into a solution, leading to more usage.

There would still be the question of the bottom check: Through how narrow tunnels can the shimmier go on?

1 pixel, as it is the case with walkers, floaters and climbers (even though it would be somewhat consistent) wouldn't be a great choice here I feel. It would seem weird seing the Shimmier go throw a 1 pixel high tunnel.
What what height to choose otherwise?
Maybe 5 pixels high as a minimum as a bashers that want to go on? I don't know, but this seems like a somewhat reasonable line to draw. We need more ideas and opinions here.

So let's here more about this topic: Do you agree with me? If not why not and do you have a better proposal? Let's hear it! :)

Nepster

Quote from: IchoTolot on September 28, 2017, 12:19:22 PM
The starting/ceiling catching part, as it was discussed earlier, was pretty clear: A jump that goes straight up for a few pixels and catches up to a ceiling if it hits one. Otherwise it could also be used as a delaying skill. The only thing left here is the jump height. Maybe 1 or 2 times stacker/basher etc height or something in that region would be reasonable.
I definitely want to catch a ceiling that is 16 pixels above the ground and have a few pixels spare to make it obvious that whit will work. So the total height to cover will most likely be around 18-20 pixels.
With a lemming height of 9 pixels, this means jumping 9-11 pixels above the ground. Perhaps slighly less if we count the arms reaching upwards.

Quote from: IchoTolot on September 28, 2017, 12:19:22 PM
My simple and intuitive rule I popose for the top check:  The Shimmier can go forward if the ceiling height changes <= 1 pixels going forward.
This might work, though I worry slightly about the graphics, when they have to work both for 45° upwards and 45° downwards slope.

Quote from: IchoTolot on September 28, 2017, 12:19:22 PM
Allowing only a not so steep slope would need something like a counter that counts the up/down height changes: Only X steps up/down allowed in the last X moves. This is not as intuitive and can also lead to weird cloner interactions where a cloner could be able to cheat itself further forward if the counter goes on incorrectly.
Cloners will not be a problem, if I don't make a mess with the implementation.

Quote from: IchoTolot on September 28, 2017, 12:19:22 PM
The most reasonable proposal for a milder slope would maybe be miner tunnel  ---> only 1 pixel ceiling height difference allowed every 2 pixels.
We will have to relax this a little bit to allow shimmying along the top of miner slopes.

Quote from: IchoTolot on September 28, 2017, 12:19:22 PM
There would still be the question of the bottom check: Through how narrow tunnels can the shimmier go on?

1 pixel, as it is the case with walkers, floaters and climbers (even though it would be somewhat consistent) wouldn't be a great choice here I feel. It would seem weird seing the Shimmier go throw a 1 pixel high tunnel.
What what height to choose otherwise?
Maybe 5 pixels high as a minimum as a bashers that want to go on? I don't know, but this seems like a somewhat reasonable line to draw. We need more ideas and opinions here.
I want the shimmier to stop if his feet touch ground. As Raymanni's test sprite is 7 pixels high and looks pretty neat, I don't think 5 pixels space should be enough. My current idea is:
- If >7 pixels air: Continue shimmying.
- If 5-7 pixels air: Transition to walker on the terrain.
- If 4-1 pixels air: Transition to a hoister (i.e. the final animation of a climber). I don't know whether this will look good, but jumping 6 pixels higher with the whole body within one frame will certainly not look good.
And of course transition to faller if one hits terrain.

Simon

Quote- If >7 pixels air: Continue shimmying.
- If 5-7 pixels air: Transition to walker on the terrain.
- If 4-1 pixels air: Transition to a hoister (i.e. the final animation of a climber). I don't know whether this will look good, but jumping 6 pixels higher with the whole

How would you tiebreak when you reach this comb-like terrain?

###################
..|./..............
..O/.......########
..|..==>...........
..|........########
./.\...............
...........########

-- Simon

Nepster

I would search for the lowest pixel (within the 7 pixels of the lemming sprite) that satisfies the following condition: The pixel itself is solid, but the pixel above is air.

Another edge case is the following:

............#####
############.....
..|./.......#####
..O/.............
..|..==>.........
..|..............
./.\.............
.................

In that situation I propose to continue shimmying along the lower part of the ceiling.

Nice ASCI-Art, btw. :)

Simon

I agree with the comb proposal. That leaves you with 4 cases: Continue shimmying, hit solid wall, walk onto ledge, hoist onto ledge. This is a lot of possible outcomes, but when we know that he scans from the bottom upwards, it should be reasonably easy to guess the behavior.

I also agree with preferring the lower path when checkerboarding. This doesn't seem consistent with the walker's checkerboarding, who sticks inside his surface and ignores bumps when there are gaps. But I consider the walker's checkerboarding problematic in the first place, it may well be good to decide this freely for the shimmier, ignoring the walker.

-- Simon

IchoTolot

Quote from: Nepster on September 28, 2017, 04:02:19 PM
I want the shimmier to stop if his feet touch ground. As Raymanni's test sprite is 7 pixels high and looks pretty neat, I don't think 5 pixels space should be enough. My current idea is:
- If >7 pixels air: Continue shimmying.
- If 5-7 pixels air: Transition to walker on the terrain.
- If 4-1 pixels air: Transition to a hoister (i.e. the final animation of a climber). I don't know whether this will look good, but jumping 6 pixels higher with the whole body within one frame will certainly not look good.
And of course transition to faller if one hits terrain.

This seems like a good reasonable rule. :)

Quote from: Nepster on September 28, 2017, 04:16:32 PM
I would search for the lowest pixel (within the 7 pixels of the lemming sprite) that satisfies the following condition: The pixel itself is solid, but the pixel above is air.

Another edge case is the following:

............#####
############.....
..|./.......#####
..O/.............
..|..==>.........
..|..............
./.\.............
.................

In that situation I propose to continue shimmying along the lower part of the ceiling.

Nice ASCI-Art, btw. :)

I also agree with both corner cases: The lowest pixel to stand on counts and continue going along the lowest ceiling.


I still like the easy 45 degree up/downwards rule, but I have no idea about the resulting animation though. ;P
16-20 pixels upwards reach seems also great...I already see cases where this jump can be used to get onto a currently build platform 8-)

nin10doadict

I also agree with the 'comb' case. Ending up walking on the lowest ledge seems to be the thing that makes the most sense there.
I'm guessing there's gonna have to be some messing around with stuff to figure out what looks and feels good. After all, it's not that often that a person codes everything just right on their first try anyway. ;)

Colorful Arty

I propose that the shimmier should jump straight up until it reaches the ceiling, or dies by jumping off the top of the screen.

Kingshadow3

Quote from: Colorful Arty on September 28, 2017, 05:27:35 PM
I propose that the shimmier should jump straight up until it reaches the ceiling, or dies by jumping off the top of the screen.

No. That would be far too overpowered.
Also, Neolemmix's ceiling boundary is actually solid. I personally believe lemmings should not be allowed to shimmy on the top boundary.

I also like to ask about if there will be shimmier to climber transitions or not.

Nepster

Quote from: Colorful Arty on September 28, 2017, 05:27:35 PM
I propose that the shimmier should jump straight up until it reaches the ceiling, or dies by jumping off the top of the screen.
Yeah, the solid ceiling is somewhat of a problem. It currently behaves exactly like steel, so it would make sense to be able to shimmy along the top border, as weird as this would look.
The main problem with disallowing shimmying on the top border is: How should a lemming react who is currently jumping upwards to reach a ceiling, but hits instead to top level border?

Quote from: Kingshadow3 on September 28, 2017, 07:56:17 PM
I also like to ask about if there will be shimmier to climber transitions or not.
Climber -> Shimmier: Yes.
Shimmier -> Climber: No.
Can you describe a situation where you would expect a shimmier to change into a climber?

Kingshadow3

Quote from: Nepster on September 28, 2017, 08:24:32 PM
Can you describe a situation where you would expect a shimmier to change into a climber?

Something like this...

If the shimmier is also a climber, it turns around and climbs up a wall if the wall is climbable.

mobius

Quote from: Nepster on September 28, 2017, 08:24:32 PM
Quote from: Colorful Arty on September 28, 2017, 05:27:35 PM
I propose that the shimmier should jump straight up until it reaches the ceiling, or dies by jumping off the top of the screen.
Yeah, the solid ceiling is somewhat of a problem. It currently behaves exactly like steel, so it would make sense to be able to shimmy along the top border, as weird as this would look.
The main problem with disallowing shimmying on the top border is: How should a lemming react who is currently jumping upwards to reach a ceiling, but hits instead to top level border?

Quote from: Kingshadow3 on September 28, 2017, 07:56:17 PM
I also like to ask about if there will be shimmier to climber transitions or not.
Climber -> Shimmier: Yes.
Shimmier -> Climber: No.
Can you describe a situation where you would expect a shimmier to change into a climber?

this is why the ceiling should be death; as in Lix :P :lix-evil:

I will add more feedback later. Also I hope Arty is joking.
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


Colorful Arty

I was joking, but if that was the way it was implemented, I'd be cool with it.

In all seriousness, I think the shimmier should immediately stop walking when assigned the skill and jump straight up around 8-16 pixels (not a random amount, just a constant value in that range). After he jumps, one of three things can happen:

1) He touches a ceiling, in which case he starts climbing across the ceiling. Much like moving on the floor, if a ceiling shimmier hits a part of the ceiling that dips up or down more than 6 pixels, he will stop shimmying and fall down.

2) He hits the top level border, in which case we need to decide if he A: dies, B: immediately falls down, or C: keeps moving up off screen until he reaches the peak of his jump and then falls down. (I have no preference, but if the top border is not deadly normally, it should not be deadly in this case.

3) Neither of the above happens, and the shimmier falls down after reaching his peak.

I'm not sure how shimmier + climber should work, but I like Kingshadow's idea.

And yes, I did just assume that Lemming's gender. ;)

ccexplore

Although I haven't tested it myself, I believe L2's shimmier will not continue through any comb-like terrain, I think it requires the entire vertical space spanning the height of the lemming (plus maybe one or two pixel further bottom, up to whatever the narrowest shimmiable tunnel height is) to all be cleared of terrain.

I seem to recall L2's shimmier simply stops right before moving into a position that would be too narrow or obstructed.  Then it will hang on the ceiling at the same position for a few seconds and then finally transition to a faller.  (It is unclear whether during the wait, it could continue shimmying again if the tunnel is widen or the obstructing terrain removed; will need to test out.)  That said, I'm not opposed to the current suggestion where it stops at (rather than before) the position that is too narrow/obstructed and then does a potential transition to walker or hoister instead.

GigaLem

Relative to what Arty and Ccexplore said

A shimmier would only jump upon assignment near a ceiling, if not near a ceiling then it'll just be given the skill like normal.