[NO-FIX] [DISCUSSION] [PLAYER] Relax assignment checks for platformers?

Started by Nepster, August 14, 2016, 05:56:40 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Nepster

Currently the following rule is used for deciding whether one can assign a platformer to a lemming:
(1) First brick needs to add at least one pixel
(2) At height 1 pixel above the platform, there are no solid pixels one and two pixels next to the lemming (i.e. both HasPixelAt(LemX + LemDx, LemY - 1) and HasPixelAt(LemX + 2*LemDx, LemY - 1) have to be FALSE).
(These are the rules for the current experimental version. V1.43-F is pretty similar, though there might be small differences regarding which pixels are checked precisely)
The same checks are used for determining whether to continue platforming after having placed a brick.

Problem: If one platforms against a vertical wall and mines there (see attached image), then lemmings may walk along the bridge and down the miner tunnel, but not the other way around. So far everything is intended and fits with the general rules.
But now assume you want to fill the small gap and allow lemmings from the miner tunnel to walk onto the bridge. If you want to use a platformer for this, then the game does not allow you to start him anywhere! In other words, it is impossible (without the help of other skills) to bridge the gap using platformers.

A possible change would be to require only (1) (i.e. that the brick adds pixels), but no longer (2) to be able to start a platformer. Note that this proposal only changes the assignment rules - whether a platformer continues walking would not change and still require (1) and (2) to hold.

So we have three basic questions to discuss and answer:
- Do we actually want to be able to fill the gap in the situation above using a platformer (who then places one brick and stops)?
- If we relax the assignment rules for platformers, do platformers get too powerful? In other words: Are there situations where we certainly don't want to place even one platformer brick?
- Is my proposal a good way to solve the problem?

IchoTolot

Hm that's though :-\

If this should change your proposal sounds good and easy as long as the lemming stops if he would be in terrain at this 1 pixel above. For the example solution this would mean placing 1 brick and then turn as he would go into the old platformer bricks.

I've taken the miner + platformer behavior for granted in that way that this setup with the one-way path is created, but never used the fact that this isn't able to seal with a platformer from the other side. I've wanted to do this only once actually in a Wafflem snow level which I tested a while ago, but don't know if this would create a backroute. So, I cannot really think of a breaking level if we were able to do this.

For me both behaviors would be fine :) as this isn't the biggest of change in general. The only thing is that you are now able to turn a Lem using a platformer in a few special cases, with the example as the most common case.


Nepster

Quote from: IchoTolot on August 14, 2016, 06:09:37 PM
If this should change your proposal sounds good and easy as long as the lemming stops if he would be in terrain at this 1 pixel above. For the example solution this would mean placing 1 brick and then turn as he would go into the old platformer bricks.
With the proposal above the platformer would do the following:
- Frame 1-8: Just animation
- Frame 9: Brick gets added to the terrain
- Frame 10-14: Again only animation
- Frame 15: Lemming would usually walk forward, but encounters terrain. So the platformer stops and turns around.

namida

QuoteA possible change would be to require only (1) (i.e. that the brick adds pixels), but no longer (2) to be able to start a platformer. Note that this proposal only changes the assignment rules - whether a platformer continues walking would not change and still require (1) and (2) to hold.

This sounds okay to me.
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)

Crane

Just a random idea, but what about the platforms being 2 pixels thick, with the 2nd layer below the one already present?  It will solve the issue of the gap in a miner's tunnel on a vertical wall, and won't cause any kind of elevation if a lemming is assigned the Platformer skill concurrently.

IchoTolot

Quote from: Crane on August 15, 2016, 01:22:51 AM
Just a random idea, but what about the platforms being 2 pixels thick, with the 2nd layer below the one already present?  It will solve the issue of the gap in a miner's tunnel on a vertical wall, and won't cause any kind of elevation if a lemming is assigned the Platformer skill concurrently.

I think this would be a too heavy cut in the physics and I would not call the platformer miner an issue. Then it would be possible for example to free blockers via digger + basher on top of a platform and other stuff as well which could lead to more unexpected backroutes.

I would prefer Nepster's solution for this.

namida

Crane's idea would've been viable if it were implemented at the time Platformers were introduced, or close to it. I think at this point, though, it'd be too big a change.
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)

IchoTolot

From the IRC logs:

<mobius1>I just discovered you can platform while building and cause the lemming to immediately turn around; is this intended?
<Nepster>This is a consequence of http://www.lemmingsforums.net/index.php?topic=2850.0
<Nepster>There is no final decision yet whether to keep the change or go back to the old behavior or try something else instead.
<Nepster>Currently I am waiting to see whether players like the change or not.
<namida42>yeah, definitely not possible on the old version. i don't think this should be possible, but i'm also not sure how one would go about fixing this without either (a) un-fixing the miner corner issue or (b) introducing a special case for assigning platformers to a builder
<SimonN>(b) *for assigning platformers while you are inside terrain, which won't happen for walkers, only for builders
<IchoTolot>wait platforming a builder  causes him to turn    that's not good in my opinion
<IchoTolot>yes I am with Simon here   (b)
<IchoTolot>I should probably post the log in the topic :P
<SimonN>except that I don't want to make the check particular to builder. I should have called this (c)


I think this should be hotfixed as turning lems while platforming on builders seems fishy.

Nepster

Proposals (b) and (c) have the big problem, that players will likely realize the rule "may assign whenever the first brick adds pixels" and then wonder why the skill assignment sometimes fails for builders. Remember, that it isn't ovbious at all that the builder stands within his own brick, so players may not even realize that this distinction even exists, nevermind that it is the cause for the difference.

As (from a game mechanics point of view) a builder stair looks pretty much like the miner situation in the first post, I see mainly two options:
- allow turning builders with platformers
- revert this change and use the V1.43 assignment checks.
Given that IchoTolot, namida and möbius seem to dislike turning builders with platformers, I will probably revert the change, unless other people here like this behavior.

Simon

The unwanted physics in 1.47 are: You can assign platformer to a builder, this turns the lemming.

Proposal (d) was to accept that the builder is faulty, not the 1.47 platformer.

Icho has rejected (d) in chat, because build-bash-build-bash-build creates a tower of aligned builder steps. Nepster hasn't mention (d) in the previous post. When the platformer reverts to 1.43, we accept these problems:

  • Left-walking lems fall through this, and it's unfixable with a platformer.
  • Builder sits inside terrain for a while, therefore it's hard to bash into a wall encountered during building.
...over this:

  • Build-bash-build-bash-build creates a tower of steps.
I haven't slept over anything. I don't like complex assignment-allowance checks. (d) simplifies the builder, but it changes the builder, a skill that doesn't have other problems right now. You can argue like this: Even though the builder inside its own brick is the problem root, the builder alone isn't sufficient to produce the unwanted physics.




I believe that shouldn't even be a problem in the first case. The left-walkers shouldn't fall through checkerboard-like terrain. I can write a longer post on that, but I doubt NL would ever change that. Walker physics are almost holy.

-- Simon

Nepster

For now I went back to the V1.34 platformer assignment checks.
If we find some nice rule to have relaxed assignment checks without the drawbacks, I am still willing to implement it.